Advertisement
Guest User

Untitled

a guest
Sep 8th, 2016
2,953
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. /**
  2. * STOREHOUSE - node-steam
  3. *
  4. * Uses node-steam-user for notifications and accepts all incoming trade offers,
  5. * node-steamcommunity for confirming trades,
  6. * node-steam-totp to generate 2FA codes
  7. */
  8.  
  9. var SteamUser = require('steam-user');
  10. var SteamCommunity = require('steamcommunity');
  11. var SteamTotp = require('steam-totp');
  12. var TradeOfferManager = require('steam-tradeoffer-manager') ; // use require('steam-tradeoffer-manager') in production
  13. var fs = require('fs');
  14.  
  15. var client = new SteamUser();
  16. var manager = new TradeOfferManager({
  17. "steam": client, // Polling every 30 seconds is fine since we get notifications from Steam
  18. "domain": "sparkkz.xyz", // Our domain is example.com
  19. "language": "en" // We want English item descriptions
  20. });
  21. var community = new SteamCommunity();
  22.  
  23. // Steam logon options
  24. var logOnOptions = {
  25. "accountName": "micke_hedman88@hotmail.com",
  26. "password": "Demopanmvm19992",
  27. "twoFactorCode": SteamTotp.getAuthCode("5o+mGnHmURTZCYcIMHr+DvuMmjs=")
  28. };
  29.  
  30. if (fs.existsSync('polldata.json')) {
  31. manager.pollData = JSON.parse(fs.readFileSync('polldata.json'));
  32. }
  33.  
  34. client.logOn(logOnOptions);
  35.  
  36. client.on('loggedOn', function() {
  37. console.log("Logged into Steam");
  38. });
  39.  
  40. client.on('webSession', function(sessionID, cookies) {
  41. manager.setCookies(cookies, function(err) {
  42. if (err) {
  43. console.log(err);
  44. process.exit(1); // Fatal error since we couldn't get our API key
  45. return;
  46. }
  47.  
  48. console.log("Got API key: " + manager.apiKey);
  49. });
  50.  
  51. community.setCookies(cookies);
  52. community.startConfirmationChecker(30000, "IiwkZEuUEnDqNthABa34gaqLT2c="); // Checks and accepts confirmations every 30 seconds
  53. });
  54.  
  55. manager.on('newOffer', function(offer) {
  56. console.log("New offer #" + offer.id + " from " + offer.partner.getSteam3RenderedID());
  57. offer.accept(function(err) {
  58. if (err) {
  59. console.log("Unable to accept offer: " + err.message);
  60. } else {
  61. community.checkConfirmations(); // Check for confirmations right after accepting the offer
  62. console.log("Offer accepted");
  63. }
  64. });
  65. });
  66.  
  67. manager.on('receivedOfferChanged', function(offer, oldState) {
  68. console.log(`Offer #${offer.id} changed: ${TradeOfferManager.ETradeOfferState[oldState]} -> ${TradeOfferManager.ETradeOfferState[offer.state]}`);
  69.  
  70. if (offer.state == TradeOfferManager.ETradeOfferState.Accepted) {
  71. offer.getReceivedItems(function(err, items) {
  72. if (err) {
  73. console.log("Couldn't get received items: " + err);
  74. } else {
  75. var names = items.map(function(item) {
  76. return item.name;
  77. });
  78. if (offer.itemsToGive.length < 0 && offer.itemsToReceive.length > 0 ) {
  79. offer.accept();
  80. }
  81. console.log("Received: " + names.join(', '));
  82. }
  83. });
  84. }
  85. });
  86.  
  87. manager.on('pollData', function(pollData) {
  88. fs.writeFile('polldata.json', JSON.stringify(pollData));
  89. });
  90.  
  91. /*
  92. * Example output:
  93. *
  94. * Logged into Steam
  95. * Got API key: <key>
  96. * New offer #474127822 from [U:1:46143802]
  97. * Offer accepted
  98. * Offer #474127822 changed: Active -> Accepted
  99. * Received: Reinforced Robot Humor Suppression Pump, Reinforced Robot Humor Suppresion Pump
  100. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement