SHARE
TWEET

Untitled

a guest Dec 13th, 2016 106 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var fs = require('fs');
  2. var crypto = require('crypto');
  3. var console = process.console;
  4. var config = require('./config.js');
  5. var Steam = require('steam');
  6. var SteamWebLogOn = require('steam-weblogon');
  7. var getSteamAPIKey = require('steam-web-api-key');
  8. var SteamTradeOffers = require('steam-tradeoffers');
  9. var SteamCommunity = require('steamcommunity');
  10. var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
  11. var SteamTotp = require('steam-totp');
  12. var mysql = require('mysql');
  13. var url = require('url');
  14.  
  15. var details = {
  16.     account_name: config.bot.username,
  17.     password: config.bot.password,
  18.     two_factor_code: generatekey(config.bot.secret)
  19. };
  20.  
  21.  
  22.  
  23. var steamClient = new Steam.SteamClient();
  24. var steamUser = new Steam.SteamUser(steamClient);
  25. var steamFriends = new Steam.SteamFriends(steamClient);
  26. var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
  27. var offers = new SteamTradeOffers();
  28.  
  29. // Generation Device_ID
  30. var hash = require('crypto').createHash('sha1');
  31. hash.update(Math.random().toString());
  32. hash = hash.digest('hex');
  33. var device_id = 'android:' + hash;
  34.  
  35. var checkingOffers = [],
  36.     WebCookies = [],
  37.     WebSession = false,
  38.     globalSession;
  39.  
  40.  
  41.  
  42. function steamBotLogger(log) {
  43.     console.tag('SteamBot').log(log);
  44. }
  45.  
  46. function EscrowLogger(log) {
  47.     console.tag('EscrowBot').info(log);
  48. }
  49.  
  50. function generatekey(secret) {
  51.     code = SteamTotp.generateAuthCode(secret);
  52.     EscrowLogger('Generated Code : ' + code);
  53.     return code;
  54. }
  55.  
  56. var db = mysql.createConnection({
  57.     supportBigNumbers: true,
  58.     bigNumberStrings: true,
  59.     host: ' ',
  60.     user: ' ',
  61.     password: ' ',
  62.     database: ' '
  63. });
  64.  
  65.  
  66.  
  67. steamClient.connect();
  68. steamClient.on('debug', steamBotLogger);
  69. steamClient.on('connected', function () {
  70.     steamUser.logOn(details);
  71. });
  72.  
  73. steamClient.on('logOnResponse', function (logonResp) {
  74.     if (logonResp.eresult === Steam.EResult.OK) {
  75.         steamBotLogger('Подключен');
  76.         steamFriends.setPersonaState(Steam.EPersonaState.Online);
  77.  
  78.         steamWebLogOn.webLogOn(function (sessionID, newCookie) {
  79.             getSteamAPIKey({
  80.                 sessionID: sessionID,
  81.                 webCookie: newCookie
  82.             }, function (err, APIKey) {
  83.                 offers.setup({
  84.                     sessionID: sessionID,
  85.                     webCookie: newCookie,
  86.                     APIKey: APIKey
  87.                 }, function (err) {
  88.                     WebSession = true;
  89.                     globalSession = sessionID;
  90.                     WebCookies = newCookie;                  
  91.                     steamBotLogger('Функция принятия трейдов включена!');
  92.                     var checkDropInterval = setInterval(checkDrop, 10000);
  93.                     AcceptMobileOffer();
  94.                 });
  95.  
  96.             });
  97.         });
  98.     }
  99. });
  100.  
  101.  
  102. function checkDrop() {          
  103.     db.query("SELECT * FROM drops WHERE status = '1' ORDER BY id DESC", function(err, items) {
  104.         if (err) throw err;
  105.         AcceptMobileOffer();
  106.         if (items.length > 0) {
  107.             items.forEach(function(item, i, items) {
  108.                 var user = db.query("SELECT * FROM users WHERE id = '" + item.user + "'", function(err, data) {
  109.                     if (!err) {
  110.                         data = data[0];
  111.                         if (typeof data.tradelink != "undefined" && data.tradelink != "") {
  112.                             var tradeLink = url.parse(data.tradelink, true);
  113.                             if (tradeLink.query.partner != "" && tradeLink.query.token != "") {
  114.                                 offers.makeOffer({
  115.                                     partnerAccountId: tradeLink.query.partner,
  116.                                     accessToken: tradeLink.query.token,
  117.                                     itemsFromMe: [{
  118.                                         appid: 730,
  119.                                         contextid: 2,
  120.                                         amount: 1,
  121.                                         assetid: item.weaponid
  122.                                     }],
  123.                                     itemsFromThem: [],
  124.                                     message: 'Выигрыш с сайта: GDROP.RU!'
  125.                                 }, function(err, response) {
  126.                                     if (err) {
  127.                                        console.log(err);
  128.                                         db.query("UPDATE drops SET status = '4', message = 'Ошибка! Больше информации узнайте у администрации.' WHERE id = '" + item.id + "'");
  129.                                     } else {
  130.                                         db.query("UPDATE drops SET status = '3' WHERE id = '" + item.id + "'");
  131.                                     }
  132.                                 });
  133.                             } else {
  134.                                 db.query("UPDATE drops SET status = '4', message = 'Ошибка! Не корректная ссылка обмена.' WHERE id = '" + item.id + "'");
  135.                             }
  136.                         } else {
  137.                             db.query("UPDATE drops SET status = '4', message = 'Ошибка! Не корректная ссылка обмена.' WHERE id = '" + item.id + "'");
  138.                         }
  139.                     }
  140.                 });
  141.             });
  142.         }
  143.     });
  144. }
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. var checkArrGlobal = [];
  152.  
  153.  
  154.  
  155. function AcceptMobileOffer() {
  156.     // Информация для мобильных подтверждений
  157.     var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
  158.         {
  159.             steamid: config.bot.steamid,
  160.             identity_secret: config.bot.identity_secret,
  161.             device_id: device_id,
  162.             webCookie: WebCookies,
  163.         });
  164.  
  165.     steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations) {
  166.         if (err) {
  167.             console.log(err);
  168.             return;
  169.         }
  170.         console.tag('SteamBot', 'MobileTrades').log('Wait Offers: ' + confirmations.length);
  171.         if (!confirmations.length) {
  172.             return;
  173.         }
  174.         steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result) {
  175.             if (err) {
  176.                 console.log(err);
  177.                 return;
  178.             }
  179.             console.tag('SteamBot', 'MobileTrades').log('Accept result: ' + result);
  180.         }).bind(this));
  181.     }).bind(this));
  182. }
  183.  
  184.  
  185.  
  186. function getErrorCode(err, callback) {
  187.     var errCode = 0;
  188.     var match = err.match(/\(([^()]*)\)/);
  189.     if (match != null && match.length == 2) errCode = match[1];
  190.     callback(errCode);
  191. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top