Advertisement
Tretlenz

part1 bot

Mar 11th, 2018
675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var fs = require('fs');
  2. var SteamTotp = require('steam-totp');
  3. var Steam = require('steam');
  4. var crypto = require('crypto');
  5. var SteamTradeOffers = require('steam-tradeoffers');
  6. var steamClient = new Steam.SteamClient();
  7. var steamUser = new Steam.SteamUser(steamClient);
  8. var offers = new SteamTradeOffers();
  9. var SteamWebLogOn = require('steam-weblogon');
  10. var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
  11. var getSteamAPIKey = require('steam-web-api-key');
  12. var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
  13. var config  = require('./config.js');
  14. var connection = undefined;
  15. var log4js = require('log4js');
  16. var logger = log4js.getLogger();
  17.  
  18. var admin = '76561198165791199';
  19.  
  20. var logOnOptions = {
  21.     accountName: 'chpokpokbot1',
  22.     password: '14qf9j@jnAdnf'
  23. };
  24. var GameTime = 120;
  25.  
  26.  
  27. ////
  28.  
  29. var authCode = SteamTotp.generateAuthCode(config.bot.shared);
  30.  
  31. var globalSessionID;
  32.  
  33. if (require('fs').existsSync('sentry_'+logOnOptions['accountName']+'.hash')) {
  34.     logOnOptions['shaSentryfile'] = require('fs').readFileSync('sentry_'+logOnOptions['accountName']+'.hash');
  35. } else if (authCode != '') {
  36.     logOnOptions['authCode'] = authCode;
  37. }
  38.  
  39. var sitename;
  40.  
  41. sitename = "82.146.49.243";
  42. var mysql = require('mysql');
  43. var request = require("request");
  44. var steamuserinfo = require('steam-userinfo');
  45.  
  46. steamuserinfo.setup("4367395AE2503101E5012CA7C9188A8C")
  47.  
  48. var mysqlInfo;
  49. mysqlInfo = {
  50.   host     : '82.146.49.243',
  51.   user     : 'root',
  52.   password : 'jf4ACHGJ3FBl',
  53.   database : 'over',
  54.   charset  : 'utf8_general_ci'
  55. };
  56.  
  57. var mysqlConnection = mysql.createConnection(mysqlInfo);
  58.  
  59. var steam = new Steam.SteamClient();
  60. var offers = new SteamTradeOffers();
  61.  
  62. var recheck = true;
  63.  
  64. var steam.logOn (logOnOptions);
  65.  
  66. var steam.on('debug', console.log);
  67.  
  68. function getUserName(steamid) {
  69.     steamuserinfo.getUserInfo(steamid, function(error, data){
  70.         if(error) throw error;
  71.         var datadec = JSON.parse(JSON.stringify(data.response));
  72.         return (datadec.players[0].personaname);
  73.     });
  74. }
  75.  
  76. function proceedWinners() {
  77.     var url = 'http://'+sitename+'/getwinner34634f.php';
  78.     request(url, function(error, response, body){});
  79. }
  80.  
  81. var locked=false,proceeded;
  82. var itemscopy;
  83. var detected=false;
  84. var detected2=false;
  85. function CheckTimer() {
  86.     if(locked == true) return;
  87.     locked = true;
  88.     if(recheck == true) {
  89.         recheck = false;
  90.         checkoffers(1000);
  91.     }
  92.     mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, rows, fields) {
  93.         if(err) return;
  94.         mysqlConnection.query('SELECT `starttime` FROM `games` WHERE `id`=\''+rows[0].value+'\'', function(errs, rowss, fieldss) {
  95.             if(errs) return;
  96.             var timeleft;
  97.             if(rowss[0].starttime == 2147483647) timeleft = GameTime;
  98.             else {
  99.                 var unixtime = Math.round(new Date().getTime()/1000.0);
  100.                 timeleft = rowss[0].starttime+GameTime-unixtime;
  101.                 if(timeleft < 0) timeleft = 0;
  102.             }
  103.             if(timeleft == 0) {
  104.                 if(proceeded == true) return;
  105.                 proceedWinners();
  106.                 proceeded = true;
  107.             } else proceeded = false;
  108.         });
  109.     });
  110.     detected2 = false;
  111.     offers.loadMyInventory({
  112.         appId: 730,
  113.         contextId: 2
  114.     }, function(err, itemx) {
  115.         if(err) {
  116.             steam.webLogOn(function(newCookie) {
  117.                 offers.setup({
  118.                     sessionID: globalSessionID,
  119.                     webCookie: newCookie
  120.                 }, function(err) {
  121.                     if (err) {
  122.                     }
  123.                 });
  124.             });
  125.             return;
  126.         }
  127.         if(detected2 == true) {
  128.             return;
  129.         }
  130.         detected2 = true;
  131.         itemscopy = itemx;
  132.         detected = false;
  133.         mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
  134.             if(err) {
  135.                 return;
  136.             }
  137.             if(detected == true) {
  138.                 return;
  139.             }
  140.             detected = true;
  141.             for(var i=0; i < row.length; i++) {
  142.                 var gameid = row[i].id;
  143.                 mysqlConnection.query('UPDATE `queue` SET `status`=\'sent\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
  144.                 var sendItems = (row[i].items).split('/');
  145.                 var item=[],num=0;
  146.                 for (var x = 0; x < itemscopy.length; x++) {
  147.                     for(var j=0; j < sendItems.length; j++) {
  148.                         if (itemscopy[x].tradable && (itemscopy[x].market_name).indexOf(sendItems[j]) == 0) {
  149.                             sendItems[j] = "FASGASFHGASFHGFasdasdasd";
  150.                             item[num] = {
  151.                                 appid: 730,
  152.                                 contextid: 2,
  153.                                 amount: itemscopy[x].amount,
  154.                                 assetid: itemscopy[x].id
  155.                             }
  156.                             num++;
  157.                         }
  158.                     }
  159.                 }
  160.                 if (num > 0) {
  161.                     var gamenum = row[i].id;
  162.                     offers.makeOffer ({
  163.                         partnerSteamId: row[i].userid,
  164.                         itemsFromMe: item,
  165.                         accessToken: row[i].token,
  166.                         itemsFromThem: [],
  167.                         message: 'Ваш выигрыш на сайте '+sitename+' в игре #'+gamenum
  168.                     }, function(err, response){
  169.                         if (err) {
  170.                             return;
  171.                         }
  172.                         console.log('Trade offer for queue '+gamenum+' sent!');
  173.                     });
  174.                 }
  175.             }
  176.         });
  177.     });
  178.     setTimeout(function(){locked = false;},100000);
  179. }
  180.  
  181. steam.on('loggedOn', function(result) {
  182.     console.log('Logged in!');
  183.     steam.setPersonaState(Steam.EPersonaState.LookingToTrade);
  184.     steam.addFriend("76561198133226853");
  185.     steam.sendMessage(admin,"Я включился!");
  186. });
  187.  
  188. steam.on('webSessionID', function(sessionID) {
  189.     globalSessionID = sessionID;
  190.     steam.webLogOn(function(newCookie) {
  191.         offers.setup({
  192.             sessionID: sessionID,
  193.             webCookie: newCookie
  194.         }, function(err) {
  195.             if (err) {
  196.                 throw err;
  197.             }
  198.             setInterval(CheckTimer,1000);
  199.         });
  200.     });
  201. });
  202.  
  203. steam.on('friendMsg', function(steamID, message, type) {
  204.     if(type != Steam.EChatEntryType.ChatMsg) return;
  205.     if(steamID == admin) {
  206.         if(message.indexOf("/sendallitems") == 0) {
  207.             offers.loadMyInventory({
  208.                 appId: 730,
  209.                 contextId: 2
  210.             }, function(err, items) {
  211.                 if(err) {
  212.                     steam.sendMessage(steamID, 'Не могу загрузить свой инвентарь, попробуй ещё раз');
  213.                     steam.webLogOn(function(newCookie) {
  214.                         offers.setup({
  215.                             sessionID: globalSessionID,
  216.                             webCookie: newCookie
  217.                         }, function(err) {
  218.                             if (err) {
  219.                             }
  220.                         });
  221.                     });
  222.                     return;
  223.                 }
  224.                 var item=[],num=0;
  225.                 for (var i = 0; i < items.length; i++) {
  226.                     if (items[i].tradable) {
  227.                         item[num] = {
  228.                             appid: 730,
  229.                             contextid: 2,
  230.                             amount: items[i].amount,
  231.                             assetid: items[i].id
  232.                         }
  233.                         num++;
  234.                     }
  235.                 }
  236.                 if (num > 0) {
  237.                     offers.makeOffer ({
  238.                         partnerSteamId: steamID,
  239.                         itemsFromMe: item,
  240.                         itemsFromThem: [],
  241.                         message: ''
  242.                     }, function(err, response){
  243.                         if (err) {
  244.                             throw err;
  245.                         }
  246.                         steam.sendMessage(steamID, 'Обмен отправлен!');
  247.                     });
  248.                 }
  249.             });
  250.         } else if(message.indexOf("/send") == 0) {
  251.             var params = message.split(' ');
  252.             if(params.length == 1) return steam.sendMessage(steamID, 'Формат: /send [название предмета]');
  253.             offers.loadMyInventory({
  254.                 appId: 730,
  255.                 contextId: 2
  256.             }, function(err, items) {
  257.                 if(err) {
  258.                     steam.sendMessage(steamID, 'Не могу загрузить свой инвентарь, попробуй ещё раз');
  259.                     steam.webLogOn(function(newCookie) {
  260.                         offers.setup({
  261.                             sessionID: globalSessionID,
  262.                             webCookie: newCookie
  263.                         }, function(err) {
  264.                             if (err) {
  265.                             }
  266.                         });
  267.                     });
  268.                     return;
  269.                 }
  270.                 var item=0;
  271.                 for (var i = 0; i < items.length; i++) {
  272.                         if((items[i].market_name).indexOf(params[1]) != -1) {
  273.                             item = items[i].id;
  274.                             break;
  275.                         }
  276.                     }
  277.                 if (item != 0) {
  278.                     offers.makeOffer ({
  279.                         partnerSteamId: steamID,
  280.                         itemsFromMe: [
  281.                         {
  282.                             appid: 730,
  283.                             contextid: 2,
  284.                             amount: 1,
  285.                             assetid: item
  286.                         }
  287.                         ],
  288.                         itemsFromThem: [],
  289.                         message: ''
  290.                     }, function(err, response){
  291.                         if (err) {
  292.                             throw err;
  293.                         }
  294.                         steam.sendMessage(steamID, 'Обмен отправлен!');
  295.                     });
  296.                 }
  297.             });
  298.         } else if(message.indexOf("/show") == 0) {
  299.             var params = message.split(' ');
  300.             offers.loadMyInventory({
  301.                 appId: 730,
  302.                 contextId: 2
  303.             }, function(err, items) {
  304.                 if(err) {
  305.                     steam.sendMessage(steamID, 'Не могу загрузить свой инвентарь, попробуй ещё раз');
  306.                     steam.webLogOn(function(newCookie) {
  307.                         offers.setup({
  308.                             sessionID: globalSessionID,
  309.                             webCookie: newCookie
  310.                         }, function(err) {
  311.                             if (err) {
  312.                             }
  313.                         });
  314.                     });
  315.                     return;
  316.                 }
  317.                 steam.sendMessage(steamID,'Смотри: ');   
  318.                 for (var i = 0; i < items.length; i++) {
  319.                     steam.sendMessage(steamID,'http://steamcommunity.com/id/tretlenz/inventory/'+items[i].appid+'_'+items[i].contextid+'_'+items[i].id);   
  320.                 }
  321.             });
  322.         }
  323.     }
  324.     steamuserinfo.getUserInfo(steamID, function(error, data){
  325.         if(error) throw error;
  326.         var datadec = JSON.parse(JSON.stringify(data.response));
  327.         var name = datadec.players[0].personaname;
  328.         console.log(name + ': ' + message); // Log it
  329.     });
  330.     //steam.sendMessage(steamID, 'I\'m a bot that accepts all your unwanted items.  If you would like to grab a few crates from me, please request a trade.');
  331. });
  332.  
  333. function checkoffers(number) {
  334.     if (number > 0) {
  335.         offers.getOffers({
  336.             get_received_offers: 1,
  337.             active_only: 1,
  338.             get_sent_offers: 0,
  339.             get_descriptions: 1,
  340.             language: "en_us"
  341.         }, function(error, body) {
  342.             if(error) return;
  343.             if(body.response.trade_offers_received){
  344.                 body.response.trade_offers_received.forEach(function(offer) {
  345.                     if (offer.trade_offer_state == 2){
  346.                         if(offer.items_to_give) {
  347.                             offers.declineOffer({tradeOfferId: offer.tradeofferid});
  348.                             return;
  349.                         }
  350.                         mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) {
  351.                             if(offer.items_to_receive.length > row[0].value) {
  352.                                 offers.declineOffer({tradeOfferId: offer.tradeofferid});
  353.                                 offer.items_to_receive = [];
  354.                                 mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'toomuch\',\'System\')', function(err, row, fields) {});
  355.                                 return;
  356.                             }
  357.                         });
  358.                         offers.loadPartnerInventory({partnerSteamId: offer.steamid_other, appId: 730, contextId: 2, tradeOfferId: offer.tradeofferid, language: "en"}, function(err, hitems) {
  359.                             if(err) {
  360.                                 steam.webLogOn(function(newCookie) {
  361.                                     offers.setup({
  362.                                         sessionID: globalSessionID,
  363.                                         webCookie: newCookie
  364.                                     }, function(err) {
  365.                                         if (err) {
  366.                                         }
  367.                                     });
  368.                                 });
  369.                                 recheck = true;
  370.                                 return;
  371.                             }
  372.                             var items = offer.items_to_receive;
  373.                             var wgg=[],num=0;
  374.                             for (var i = 0; i < items.length; i++) {
  375.                                 for(var j=0; j < hitems.length; j++) {
  376.                                     if(items[i].assetid == hitems[j].id) {
  377.                                         wgg[num] = hitems[j];
  378.                                         num++;
  379.                                         break;
  380.                                     }
  381.                                 }
  382.                             }
  383.                             var price=[];
  384.                             for(var i=0; i < num; i++) {
  385.                                 if(wgg[i].appid != 730) {
  386.                                     offers.declineOffer({tradeOfferId: offer.tradeofferid});
  387.                                     mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'onlycsgo\',\'System\')', function(err, row, fields) {});
  388.                                     return;
  389.                                 }
  390.                                 if(wgg[i].market_name.indexOf("Souvenir") != -1) {
  391.                                     offers.declineOffer({tradeOfferId: offer.tradeofferid});
  392.                                     mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'souvenir\',\'System\')', function(err, row, fields) {});
  393.                                     return;
  394.                                 }
  395.                                 var itemname = wgg[i].market_name;
  396.                                 var url = 'http://'+sitename+'/cost.php?item='+encodeURIComponent(itemname);
  397.                                 (function(someshit) {
  398.                                 request(url, function(error, response, body){
  399.                                     if(!error && response.statusCode === 200){
  400.                                         if(body == "notfound") { offers.declineOffer({tradeOfferId: offer.tradeofferid}); mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'notavailable\',\'System\')', function(err, row, fields) {}); }
  401.                                         else {
  402.                                             wgg[someshit].cost = parseFloat(body);
  403.                                         }
  404.                                     } else offers.declineOffer({tradeOfferId: offer.tradeofferid});
  405.                                 });})(i)
  406.                             }
  407.                             setTimeout(function() {
  408.                                 var sum=0;
  409.                                 for(var i=0; i < num; i++) {
  410.                                     sum += wgg[i].cost;
  411.                                 }
  412.                                 mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'minbet\'', function(err, row, fields) {
  413.                                     if(sum < row[0].value) {
  414.                                         num = 0;
  415.                                         offers.declineOffer({tradeOfferId: offer.tradeofferid});
  416.                                         mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'toosmall!\',\'System\')', function(err, row, fields) {});
  417.                                         return;
  418.                                     }
  419.                                 });
  420.                                                 steamuserinfo.getUserInfo(offer.steamid_other, function(error, data){
  421.                                                     if(error) throw error;
  422.                                                     var datadec = JSON.parse(JSON.stringify(data.response));
  423.                                                     var name = datadec.players[0].personaname;
  424.                                                     var avatar = datadec.players[0].avatarfull;
  425.                                                    
  426.                                                     if(num == 0) return;
  427.                                                    
  428.                                                     mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  429.                                                         var current_game = (row[0].value);
  430.                                                         mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
  431.                                                             var current_bank = parseFloat(row[0].cost);
  432.                                                             var itemsnum = row[0].itemsnum;
  433.                                                            
  434.                                                         if(item.length > 0)     {
  435.                                                                  mysqlConnection.query('UPDATE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
  436.                                                             }
  437.                            
  438.                                                             for(var j=0; j < num; j++) {
  439.                                                                 mysqlConnection.query('INSERT INTO `game' + current_game + '` (`userid`,`username`,`item`,`color`,`value`,`avatar`,`image`,`from`,`to`) VALUES (\'' + offer.steamid_other + '\',\'' + name + '\',\'' + wgg[j].market_name + '\',\'' + wgg[j].name_color + '\',\'' + wgg[j].cost + '\',\'' + avatar + '\',\'' + wgg[j].icon_url + '\',\''+current_bank+'\'+\'0\',\''+current_bank+'\'+\''+wgg[j].cost+'\')', function(err, row, fields) {});
  440.                                                                 mysqlConnection.query('UPDATE `games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+wgg[j].cost+'\' WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
  441.                                                                 current_bank = parseFloat(current_bank + wgg[j].cost);
  442.                                                                 itemsnum++;
  443.                                                             }
  444.                                                            
  445.                                                            
  446.                                                             if(itemsnum > 50) {
  447.                                                                 proceedWinners();
  448.                                                             }
  449.                                                             steamClient.on('logOnResponse', function(logonResp) {
  450.     console.log(logonResp);
  451.     if (logonResp.eresult === Steam.EResult.OK) {
  452.         steamBotLogger('Logged in!',false);
  453.         steamWebLogOn.webLogOn(function(webSessionID, cookies){
  454.             function trademobile(){
  455.                 var hash = require('crypto').createHash('sha1');
  456.                 hash.update(Math.random().toString());
  457.                 hash = hash.digest('hex');
  458.                 device_id = 'android:' + hash;
  459.                 var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
  460.                 {
  461.                     steamid: config.bot.steamid,
  462.                     identity_secret: config.bot.identity,
  463.                     device_id: this.device_id,
  464.                     webCookie:  cookies,
  465.                 });
  466.                 steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations)
  467.                 {
  468.                         if (err)
  469.                         {
  470.                             steamBotLogger(err,true);
  471.                             return;
  472.                         }
  473.                         if(confirmations.length != 0){
  474.                             steamBotLogger('Трейдов: ' + confirmations.length,false);
  475.                         }
  476.                         if ( ! confirmations.length)
  477.                         {
  478.                             return;
  479.                         }
  480.                         console.log(confirmations[0]);
  481.                         steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result)
  482.                         {
  483.                             steamBotLogger(result,false);
  484.                             if (err)
  485.                             {
  486.                                 steamBotLogger(err,true);
  487.                                 return;
  488.                             }
  489.                             console.log('Результат: ' + result);
  490.                         }).bind(this));
  491.                 }).bind(this));
  492.                 setTimeout(function(){ trademobile()}, 1000);
  493.             }
  494.             trademobile();
  495.             getSteamAPIKey({sessionID: webSessionID,webCookie: cookies},function(err, APIKey){
  496.                 if(APIKey == undefined){
  497.                     APIKey = '4367395AE2503101E5012CA7C9188A8C';
  498.                 }
  499.                 console.log(err);
  500.                 steamBotLogger('APIKEY: '+APIKey,false);
  501.                 offers.setup({
  502.                   sessionID: webSessionID,
  503.                   webCookie: cookies,
  504.                   APIKey: APIKey
  505.                 });
  506.                 initInventory();
  507.                 updSess();
  508.                 tradeManager.tradeTimer();
  509.                 tradeAllItems();
  510.             });
  511.         });
  512.  
  513.     }
  514. });
  515.                                                             console.log('Accepted trade offer #'+offer.tradeofferid+' by '+name+' ('+offer.steamid_other+')');
  516.                                                         });
  517.                                                     });
  518.                                                 });
  519.                                 },3000);
  520.                         });
  521.                     }
  522.                 });
  523.             }
  524.         });
  525.     }
  526. }
  527.  
  528. var pew;
  529. steam.on('tradeOffers', checkoffers);
  530.  
  531. steam.on('sentry', function(data) {
  532.     require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', data);
  533. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement