Advertisement
Guest User

fsdfssdfs

a guest
Mar 19th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. /*
  2. Initalizing packages
  3. */
  4. const SteamUser = require('steam-user');
  5. const TradeOfferManager = require('steam-tradeoffer-manager');
  6. const SteamTotp = require('steam-totp');
  7. const SteamCommunity = require('steamcommunity');
  8. const fs = require('fs');
  9. const request = require('request');
  10. const config = require('./config.json');
  11.  
  12. const community = new SteamCommunity();
  13. const client = new SteamUser();
  14. const manager = new TradeOfferManager({
  15. steam: client,
  16. domain: 'example.com',
  17. language: 'en'
  18. });
  19.  
  20. /*
  21. Polling Steam and Logging On
  22. */
  23. client.logOn({
  24. accountName: config.username,
  25. password: config.password,
  26. twoFactorCode: SteamTotp.generateAuthCode(config.sharedSecret)
  27. });
  28.  
  29. /*
  30. Getting prices
  31. */
  32. const priceUrl = 'https://api.csgofast.com/price/all';
  33.  
  34. function getPriceList() {
  35. request(priceUrl, (error, response, body) => {
  36. if (error || response.statusCode !== 200) return console.log(`Error: ${error} - Status Code: ${response.statusCode}`);
  37. fs.writeFile('prices.json', body);
  38. });
  39. }
  40.  
  41. function priceItemsInOffer(offer) {
  42. let offerValue = 0;
  43. if (offer) {
  44. const prices = require('./prices.json'); //Requiring price file
  45. //Loop through offer and get total price
  46. offerValue += offer.reduce((total, item) => total + prices[item.market_hash_name]);
  47. }
  48. return offerValue;
  49. }
  50.  
  51. //Make the first price request
  52. getPriceList();
  53. //Auto Refresh price
  54. setInterval(getPriceList, config.options.priceRefreshInterval * 1000);
  55.  
  56. /*
  57. Friend requests and chat
  58. */
  59. client.on('friendRelationship', (steamid, relationship) => {
  60. if (relationship === 2 && config.options.acceptRandomFriendRequests) {
  61. client.addFriend(steamid);
  62. client.chatMessage(steamid, config.options.chatResponse.newFriend);
  63. }
  64. });
  65.  
  66. client.on('friendMessage', (steamID, message) => {
  67. console.log(config.options.chatResponse.commands[message]);
  68. if (config.options.chatResponse.commands[message]) {
  69. client.chatMessage(steamID, config.options.chatResponse.commands[message]);
  70. }
  71. });
  72.  
  73. /*
  74. Offer handling
  75. */
  76. function isInArray(value, array) {
  77. return array.indexOf(value) > -1;
  78. }
  79. function acceptOffer(offer) {
  80. offer.accept((err) => {
  81. if (err) console.log(`Unable to accept offer: ${err.message}`);
  82. community.checkConfirmations();
  83. });
  84. }
  85.  
  86. function declineOffer(offer) {
  87. offer.decline((err) => {
  88. if (err) return console.log(`Unable to decline offer: ${err.message}`);
  89. });
  90. }
  91.  
  92. manager.on('newOffer', function(offer) {
  93. const partnerid = offer.partner.getSteamID64();
  94.  
  95. offer.getUserDetails((err, me, them) => {
  96. if(err) return console.log(err);
  97.  
  98. if(them.escrowDays > 0) {
  99. console.log('Trade is in escrow. Declining.');
  100. declineOffer(offer);
  101. }
  102. });
  103.  
  104. console.log(`New offer # ${offer.id} from ${partnerid}`);
  105.  
  106. if (isInArray(partnerid, config.adminIDs)) {
  107. client.chatMessage(partnerid, config.options.chatResponse.adminTrade);
  108. acceptOffer(offer);
  109.  
  110. } else if (!offer.itemsToGive.length) {
  111. console.log(`${partnerid} just donated us items.`);
  112.  
  113. client.chatMessage(partnerid, config.options.chatResponse.donation); //Sending message for donations
  114. acceptOffer(offer);
  115.  
  116. } else if (priceItemsInOffer(offer.itemsToReceive) < config.options.minimumprice) {
  117. client.chatMessage(partnerid, config.options.chatResponse.junk); //Sending message for donations
  118. declineOffer(offer);
  119.  
  120. } else if (priceItemsInOffer(offer.itemsToGive) > priceItemsInOffer(offer.itemsToReceive) * config.options.percentamount) {
  121. client.chatMessage(partnerid, config.options.chatResponse.tradeDeclined); //Sending message when trade declined
  122. declineOffer(offer);
  123. } else {
  124. client.chatMessage(partnerid, config.options.chatResponse.tradeAccepted); //Sending message for accepting offer
  125. acceptOffer(offer);
  126. }
  127. });
  128.  
  129.  
  130.  
  131. //Refresh polldata.json
  132. manager.on('pollData', function(pollData) {
  133. fs.writeFile('polldata.json', JSON.stringify(pollData));
  134. });
  135.  
  136. if (fs.existsSync('polldata.json')) {
  137. manager.pollData = JSON.parse(fs.readFileSync('polldata.json'));
  138. }
  139.  
  140. client.on('loggedOn', function(details) {
  141. console.log(`Logged into Steam as ${client.steamID.getSteam3RenderedID()}`);
  142. client.setPersona(SteamUser.Steam.EPersonaState.Online,config.botname);
  143. });
  144.  
  145. client.on('webSession', function(sessionID, cookies) {
  146. manager.setCookies(cookies, function(err) {
  147. if (err) return console.log(err);
  148. console.log(`Got API key: ${manager.apiKey}`);
  149. });
  150.  
  151. community.setCookies(cookies);
  152. community.startConfirmationChecker(config.options.confirmationInterval, config.identitySecret);
  153. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement