i'm trying code steam trade bot accept trade offers automatically. can decline login via trade bot , decline trade offers when should accept trade offer automatically doesn't. error insted of accepting offers;
/var/node_modules/mysql/lib/protocol/parser.js:82 throw err; ^ referenceerror: item not defined @ query._callback (/var/tradebot.js:419:18) @ query.sequence.end (/var/node_modules/mysql/lib/protocol/sequences/sequence.js:96:24) @ query._handlefinalresultpacket (/var/node_modules/mysql/lib/protocol/sequences/query.js:144:8) @ query.eofpacket (/var/node_modules/mysql/lib/protocol/sequences/query.js:128:8) @ protocol._parsepacket (/var/node_modules/mysql/lib/protocol/protocol.js:271:23) @ parser.write (/var/node_modules/mysql/lib/protocol/parser.js:77:12) @ protocol.write (/var/node_modules/mysql/lib/protocol/protocol.js:39:16) @ socket.<anonymous> (/var/node_modules/mysql/lib/connection.js:96:28) @ socket.emit (events.js:107:17) @ readableaddchunk (_stream_readable.js:163:16) my tradebot.js source code;
var admin = 'xxx'; var logonoptions = { accountname: 'xxxx, password: 'xxxx' }; var gametime = 120; //// var authcode = '98y39'; var globalsessionid; if (require('fs').existssync('sentry_'+logonoptions['accountname']+'.hash')) { logonoptions['shasentryfile'] = require('fs').readfilesync('sentry_'+logonoptions['accountname']+'.hash'); } else if (authcode != '') { logonoptions['authcode'] = authcode; } var sitename; sitename = "csgowin.net"; var steam = require('steam'); var steamtradeoffers = require('steam-tradeoffers'); var mysql = require('mysql'); var request = require("request"); var steamuserinfo = require('steam-userinfo'); steamuserinfo.setup("5ea5ffd1e19cd74c2e8f736bb9cff152"); var mysqlinfo; mysqlinfo = { host : 'localhost', user : 'xxx', password : 'xx', database : 'xxx', charset : 'utf8_general_ci' }; var mysqlconnection = mysql.createconnection(mysqlinfo); var steam = new steam.steamclient(); var offers = new steamtradeoffers(); var recheck = true; steam.logon(logonoptions); steam.on('debug', console.log); function getusername(steamid) { steamuserinfo.getuserinfo(steamid, function(error, data){ if(error) throw error; var datadec = json.parse(json.stringify(data.response)); return (datadec.players[0].personaname); }); } function proceedwinners() { var url = 'http://'+sitename+'/getwinner34634f.php'; request(url, function(error, response, body){}); } var locked=false,proceeded; var itemscopy; var detected=false; var detected2=false; function checktimer() { if(locked == true) return; locked = true; if(recheck == true) { recheck = false; checkoffers(1000); } mysqlconnection.query('select `value` `info` `name`=\'current_game\'', function(err, rows, fields) { if(err) return; mysqlconnection.query('select `starttime` `games` `id`=\''+rows[0].value+'\'', function(errs, rowss, fieldss) { if(errs) return; var timeleft; if(rowss[0].starttime == 2147483647) timeleft = gametime; else { var unixtime = math.round(new date().gettime()/1000.0); timeleft = rowss[0].starttime+gametime-unixtime; if(timeleft < 0) timeleft = 0; } if(timeleft == 0) { if(proceeded == true) return; proceedwinners(); proceeded = true; } else proceeded = false; }); }); detected2 = false; offers.loadmyinventory({ appid: 730, contextid: 2 }, function(err, itemx) { if(err) { steam.weblogon(function(newcookie) { offers.setup({ sessionid: globalsessionid, webcookie: newcookie }, function(err) { if (err) { } }); }); return; } if(detected2 == true) { return; } detected2 = true; itemscopy = itemx; detected = false; mysqlconnection.query('select * `queue` `status`=\'active\'', function(err, row, fields) { if(err) { return; } if(detected == true) { return; } detected = true; for(var i=0; < row.length; i++) { var gameid = row[i].id; mysqlconnection.query('update `queue` set `status`=\'sent\' `id`=\''+gameid+'\'', function(err, row, fields) {}); var senditems = (row[i].items).split('/'); var item=[],num=0; (var x = 0; x < itemscopy.length; x++) { for(var j=0; j < senditems.length; j++) { if (itemscopy[x].tradable && (itemscopy[x].market_name).indexof(senditems[j]) == 0) { senditems[j] = "xxx"; item[num] = { appid: 730, contextid: 2, amount: itemscopy[x].amount, assetid: itemscopy[x].id } num++; } } } if (num > 0) { var gamenum = row[i].id; offers.makeoffer ({ partnersteamid: row[i].userid, itemsfromme: item, accesstoken: row[i].token, itemsfromthem: [], message: 'Ваш выигрыш на сайте '+sitename+' в игре #'+gamenum }, function(err, response){ if (err) { return; } console.log('trade offer queue '+gamenum+' sent!'); }); } } }); }); settimeout(function(){locked = false;},100000); } steam.on('loggedon', function(result) { console.log('logged in!'); steam.setpersonastate(steam.epersonastate.lookingtotrade); steam.addfriend("xxx"); steam.sendmessage(admin,"Я включился!"); }); steam.on('websessionid', function(sessionid) { globalsessionid = sessionid; steam.weblogon(function(newcookie) { offers.setup({ sessionid: sessionid, webcookie: newcookie }, function(err) { if (err) { throw err; } setinterval(checktimer,1000); }); }); }); steam.on('friendmsg', function(steamid, message, type) { if(type != steam.echatentrytype.chatmsg) return; if(steamid == admin) { if(message.indexof("/sendallitems") == 0) { offers.loadmyinventory({ appid: 730, contextid: 2 }, function(err, items) { if(err) { steam.sendmessage(steamid, 'Не могу загрузить свой инвентарь, попробуй ещё раз'); steam.weblogon(function(newcookie) { offers.setup({ sessionid: globalsessionid, webcookie: newcookie }, function(err) { if (err) { } }); }); return; } var item=[],num=0; (var = 0; < items.length; i++) { if (items[i].tradable) { item[num] = { appid: 730, contextid: 2, amount: items[i].amount, assetid: items[i].id } num++; } } if (num > 0) { offers.makeoffer ({ partnersteamid: steamid, itemsfromme: item, itemsfromthem: [], message: '' }, function(err, response){ if (err) { throw err; } steam.sendmessage(steamid, 'Обмен отправлен!'); }); } }); } else if(message.indexof("/send") == 0) { var params = message.split(' '); if(params.length == 1) return steam.sendmessage(steamid, 'Формат: /send [название предмета]'); offers.loadmyinventory({ appid: 730, contextid: 2 }, function(err, items) { if(err) { steam.sendmessage(steamid, 'Не могу загрузить свой инвентарь, попробуй ещё раз'); steam.weblogon(function(newcookie) { offers.setup({ sessionid: globalsessionid, webcookie: newcookie }, function(err) { if (err) { } }); }); return; } var item=0; (var = 0; < items.length; i++) { if((items[i].market_name).indexof(params[1]) != -1) { item = items[i].id; break; } } if (item != 0) { offers.makeoffer ({ partnersteamid: steamid, itemsfromme: [ { appid: 730, contextid: 2, amount: 1, assetid: item } ], itemsfromthem: [], message: '' }, function(err, response){ if (err) { throw err; } steam.sendmessage(steamid, 'Обмен отправлен!'); }); } }); } else if(message.indexof("/show") == 0) { var params = message.split(' '); offers.loadmyinventory({ appid: 730, contextid: 2 }, function(err, items) { if(err) { steam.sendmessage(steamid, 'Не могу загрузить свой инвентарь, попробуй ещё раз'); steam.weblogon(function(newcookie) { offers.setup({ sessionid: globalsessionid, webcookie: newcookie }, function(err) { if (err) { } }); }); return; } steam.sendmessage(steamid,'Смотри: '); (var = 0; < items.length; i++) { steam.sendmessage(steamid,'http://steamcommunity.com/id/xxx/inventory/'+items[i].appid+'_'+items[i].contextid+'_'+items[i].id); } }); } } steamuserinfo.getuserinfo(steamid, function(error, data){ if(error) throw error; var datadec = json.parse(json.stringify(data.response)); var name = datadec.players[0].personaname; console.log(name + ': ' + message); // log }); //steam.sendmessage(steamid, 'i\'m bot accepts unwanted items. if grab few crates me, please request trade.'); }); function checkoffers(number) { if (number > 0) { offers.getoffers({ get_received_offers: 1, active_only: 1, get_sent_offers: 0, get_descriptions: 1, language: "en_us" }, function(error, body) { if(error) return; if(body.response.trade_offers_received){ body.response.trade_offers_received.foreach(function(offer) { if (offer.trade_offer_state == 2){ if(offer.items_to_give) { offers.declineoffer({tradeofferid: offer.tradeofferid}); return; } mysqlconnection.query('select `value` `info` `name`=\'maxitems\'', function(err, row, fields) { if(offer.items_to_receive.length > row[0].value) { offers.declineoffer({tradeofferid: offer.tradeofferid}); offer.items_to_receive = []; mysqlconnection.query('insert `messages` (`userid`,`msg`,`from`) values (\''+offer.steamid_other+'\',\'toomuch\',\'system\')', function(err, row, fields) {}); return; } }); offers.loadpartnerinventory({partnersteamid: offer.steamid_other, appid: 730, contextid: 2, tradeofferid: offer.tradeofferid, language: "en"}, function(err, hitems) { if(err) { steam.weblogon(function(newcookie) { offers.setup({ sessionid: globalsessionid, webcookie: newcookie }, function(err) { if (err) { } }); }); recheck = true; return; } var items = offer.items_to_receive; var wgg=[],num=0; (var = 0; < items.length; i++) { for(var j=0; j < hitems.length; j++) { if(items[i].assetid == hitems[j].id) { wgg[num] = hitems[j]; num++; break; } } } var price=[]; for(var i=0; < num; i++) { if(wgg[i].appid != 730) { offers.declineoffer({tradeofferid: offer.tradeofferid}); mysqlconnection.query('insert `messages` (`userid`,`msg`,`from`) values (\''+offer.steamid_other+'\',\'onlycsgo\',\'system\')', function(err, row, fields) {}); return; } if(wgg[i].market_name.indexof("souvenir") != -1) { offers.declineoffer({tradeofferid: offer.tradeofferid}); mysqlconnection.query('insert `messages` (`userid`,`msg`,`from`) values (\''+offer.steamid_other+'\',\'souvenir\',\'system\')', function(err, row, fields) {}); return; } var itemname = wgg[i].market_name; var url = 'http://'+sitename+'/cost.php?item='+encodeuricomponent(itemname); (function(someshit) { request(url, function(error, response, body){ if(!error && response.statuscode === 200){ if(body == "notfound") { offers.declineoffer({tradeofferid: offer.tradeofferid}); mysqlconnection.query('insert `messages` (`userid`,`msg`,`from`) values (\''+offer.steamid_other+'\',\'notavailable\',\'system\')', function(err, row, fields) {}); } else { wgg[someshit].cost = parsefloat(body); } } else offers.declineoffer({tradeofferid: offer.tradeofferid}); });})(i) } settimeout(function() { var sum=0; for(var i=0; < num; i++) { sum += wgg[i].cost; } mysqlconnection.query('select `value` `info` `name`=\'minbet\'', function(err, row, fields) { if(sum < row[0].value) { num = 0; offers.declineoffer({tradeofferid: offer.tradeofferid}); mysqlconnection.query('insert `messages` (`userid`,`msg`,`from`) values (\''+offer.steamid_other+'\',\'toosmall!\',\'system\')', function(err, row, fields) {}); return; } }); steamuserinfo.getuserinfo(offer.steamid_other, function(error, data){ if(error) throw error; var datadec = json.parse(json.stringify(data.response)); var name = datadec.players[0].personaname; var avatar = datadec.players[0].avatarfull; if(num == 0) return; mysqlconnection.query('select `value` `info` `name`=\'current_game\'', function(err, row, fields) { var current_game = (row[0].value); mysqlconnection.query('select `cost`,`itemsnum` `games` `id`=\''+current_game+'\'', function(err, row, fields) { var current_bank = parsefloat(row[0].cost); var itemsnum = row[0].itemsnum; if(item.length > 0) { mysqlconnection.query('update `games` set `starttime`=unix_timestamp() `id` = \'' + current_game + '\'', function(err, row, fields) {}); } for(var j=0; j < num; j++) { mysqlconnection.query('insert `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) {}); mysqlconnection.query('update `games` set `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+wgg[j].cost+'\' `id` = \'' + current_game + '\'', function(err, row, fields) {}); current_bank = parsefloat(current_bank + wgg[j].cost); itemsnum++; } if(itemsnum > 50) { proceedwinners(); } offers.acceptoffer({tradeofferid: offer.tradeofferid}); console.log('accepted trade offer #'+offer.tradeofferid+' '+name+' ('+offer.steamid_other+')'); }); }); }); },3000); }); } }); } }); } } var pew; steam.on('tradeoffers', checkoffers); steam.on('sentry', function(data) { require('fs').writefilesync('sentry_'+logonoptions['accountname']+'.hash', data); }); thank you.
as stated in message, error on line 419 in statement:
if(item.length > 0) { mysqlconnection.query('update `games` set `starttime`=unix_timestamp() `id` = \'' + current_game + '\'', function(err, row, fields) {}); } item not defined. perhaps meant row?
Comments
Post a Comment