Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var SteamCommunity = require('steamcommunity');
- var fs = require('fs');
- var SteamTotp = require('steam-totp');
- var community = new SteamCommunity();
- var TradeOfferManager = require('steam-tradeoffer-manager');
- var io = require('socket.io-client');
- var socket = io.connect('http://luckyshots.pl:3000');
- //var socket = io.connect('http://localhost:3000');
- var config = require('config.json')('./config.json');
- var xssEscape = require('xss-escape');
- var request = require("request");
- var async = require("async");
- var ready = false;
- socket.on('connect', function () { console.log("socket connected"); });
- setTimeout(function(){
- console.log("Restart bota");
- process.exit(1);
- }, 3600000);
- var mysql = require('mysql');
- var connection = mysql.createConnection({
- host : config.mysql.host,
- user : config.mysql.user,
- password : config.mysql.pass,
- database : config.mysql.db
- });
- var twofactor = JSON.parse(fs.readFileSync(config.bots[process.argv[2]].twofactor, 'utf8')); //Tutaj Zmienic na wlasne
- var code = SteamTotp.generateAuthCode(twofactor.shared_secret);
- var manager = new TradeOfferManager({
- "domain": config.domain,
- "language": "en",
- "pollInterval": 5000
- });
- if(fs.existsSync('polldata_'+config.bots[process.argv[2]].login+'.json')) {
- manager.pollData = JSON.parse(fs.readFileSync('polldata_'+config.bots[process.argv[2]].login+'.json'));
- }
- community.login({
- "accountName": config.bots[process.argv[2]].login, //Tutaj Zmienic na wlasne
- "password": config.bots[process.argv[2]].pass, //Tutaj Zmienic na wlasne
- "twoFactorCode": code,
- }, function(err, sessionID, cookies, steamguard) {
- if(err) {
- console.log("Steam login fail: " + err.message);
- process.exit(1);
- }
- //fs.writeFile('steamguard.txt', steamguard);
- console.log("Logged into Steam");
- manager.setCookies(cookies, function(err){
- if(err) {
- console.log(err);
- process.exit(1); // Fatal error since we couldn't get our API key
- return;
- }
- console.log("Got API key: " + manager.apiKey);
- });
- community.setCookies(cookies);
- community.getSteamGroup("csluckyshots", function(err, group){
- if(err) console.log(err);
- group.join();
- });
- var id = parseInt(process.argv[2]);
- id++;
- community.editProfile({name: "[BOT] LuckyShots.pl #"+id,
- country: "PL",
- summary: "Jestem jedynie botem, nie człowiekiem. Nie dodam Cię do znajomych, nie wymienię się z Tobą, nie zrobię nic ludzkiego. \
- \
- Kontakt jedynie przez Support na stronie!",
- customURL: "luckyshots_bot_"+id});
- community.profileSettings({tradeConfirmation: true,
- profile: 3,
- inventory: 3,
- comments: 3});
- community.uploadAvatar("http://luckyshots.pl/avatar2.png");
- community.getSteamUser('aragog1994', function(err, user){
- user.addFriend();
- });
- community.chatLogon();
- // var time = Math.floor(Date.now() / 1000);
- // var key = SteamTotp.getConfirmationKey(twofactor.identity_secret, time, 'conf');
- // community.getConfirmations(time, key, function(err, confirmations){
- // if(confirmations != undefined){
- // for(i=0; i<confirmations.length; i++){
- // var timekey2=Math.round(Date.now() / 1000);
- // var confirmationkey2 = SteamTotp.getConfirmationKey(twofactor.identity_secret, timekey2, "allow");
- // community.respondToConfirmation(confirmations[i].id, confirmations[i].key, timekey2, confirmationkey2, true, function(err){
- // if(err){console.log(err);}
- // });
- // }
- // }
- // });
- ready = true;
- });
- community.on('chatMessage', function(sender, txt){
- if(sender == 76561198054531172){
- community.chatMessage(sender, config.bots[process.argv[2]].login +" -> "+SteamTotp.generateAuthCode(twofactor.shared_secret));
- }else{
- community.chatMessage(sender, "Jestem jedynie botem, nie człowiekiem. Nie dodam Cię do znajomych, nie wymienię się z Tobą, nie zrobię nic ludzkiego. Kontakt jedynie przez Support na stronie! ");
- }
- });
- /**
- * Tworzymy nową ofertę wymiany
- *
- * @public
- * @param msg Dane
- */
- socket.on('create offer', function (msg) {
- // Jesteśmy zalogowani na konto Steam
- if (ready == true) {
- // Stwórz asynchroniczny task wysyłający ofertę Steam
- async.series([
- function (callback) {
- // Zablokuj użytkownika na 20 sekund
- // Zabezpiecza przed floodowaniem ofertami
- // Może się przydać w przyszłości, jeśli jeszcze będą problemy z ofertami
- connection.query("UPDATE `users` SET `lock` = UNIX_TIMESTAMP() + 20 WHERE `steam_id_2` = '" + xssEscape(msg.steam) + "' LIMIT 1", function (err, rows, fields) {
- if (err) {
- // Błąd
- callback(err.message, {});
- } else {
- // Przejdź do kolejnego etapu
- callback(false, {});
- }
- });
- },
- function (callback) {
- //
- // Sprawdź czy użytkownik nie ma blokady czasowej
- // @todo
- //
- // Przejdź do kolejnego etapu
- callback(false, {});
- },
- function (callback) {
- // Przygotujmy itemy
- var i;
- var _items = [];
- var _checked = {};
- // Dodaj itemy do listy
- for (i = 0; i < msg.items.length; ++i) {
- // Jeśli item należy do tego bota
- if (msg.items[i].bot == process.argv[2]) {
- _checked[msg.items[i].item] = false;
- }
- }
- // Sprawdź każdy item po kolei
- for (i = 0; i < msg.items.length; ++i) {
- // Jeśli item należy do tego bota
- if (msg.items[i].bot == process.argv[2]) {
- // Oferta wybierania skinów
- if (parseInt(msg.my) === 132) {
- // Pobierz dane o skinie
- connection.query("SELECT * FROM `items` WHERE `item_id` = '" + parseInt(msg.items[i].item) + "' LIMIT 1", function (err, rows, fields) {
- if (err) {
- // Błąd MySQL
- callback(err.message, {});
- } else {
- var item = {
- assetid: parseInt(rows[0].item_id),
- appid: 730,
- contextid: 2,
- amount: 1
- };
- // Sprawdź czy użytkownik nie chce wybrać skina którego już nie posiada
- if (parseInt(rows[0].prowizja) === 0 && parseInt(rows[0].game_id) === 0) {
- _items.push(item);
- }
- // Usuń item z kolejki
- delete _checked[parseInt(rows[0].item_id)];
- // Wszystkie skiny zostały sprawdzone
- if (Object.keys(_checked).length === 0) {
- // Przejdź to tworzenia oferty
- callback(false, {
- my : msg.my,
- direction : 'toMe',
- message : 'Item prep task finished',
- items : _items
- });
- }
- }
- });
- }
- // Oferta depozytu
- else {
- var item = {
- assetid: msg.items[i].item,
- appid: 730,
- contextid: 2,
- amount: 1
- };
- _items.push(item);
- delete _checked[msg.items[i].item];
- // Wszystkie skiny zostały sprawdzone
- if (Object.keys(_checked).length === 0) {
- // Przejdź to tworzenia oferty
- callback(false, {
- my : msg.my,
- direction : 'toMe',
- message : 'Item prep task finished',
- items : _items
- });
- }
- }
- }
- }
- }
- ], function (error, result) {
- // W procesie przygotowywania danych do wymiany wystąpił błąd.
- // Wymiana nie może zostać wysłana.
- if (error) {
- console.log('Fatal error -> create offer');
- console.log(error);
- return false;
- }
- /**
- * Objaśnienie dotyczące zmiennej "result"
- *
- * result[0] = dane dotyczące blokady użytkownika
- * result[1] = czy użytkownik jest zablokowany?
- * result[2] = skiny do wysłania w danej ofercie
- */
- console.log('Send Steam Trade offer');
- //console.log(JSON.stringify(msg));
- //console.log(JSON.stringify(result));
- // Stwórz ofertę
- var offer = manager.createOffer((msg.steam).toString());
- var i;
- var query = [];
- var token = randomString();
- var offerMessage = config.domain + ' - Token zabezpieczający oferty: ' + token;
- // Itemy do oferty
- var items = result[2].items;
- // Mamy co najmniej jeden prawidłowy item
- if (Object.keys(items).length > 0) {
- items.forEach(function (item) {
- // Wybieranie skinów
- // console.log(JSON.stringify(msg));
- // console.log(JSON.stringify(item));
- if (parseInt(msg.my) === 132) {
- console.log('Uzytkownik chce wybrac itemy.');
- offer.addMyItem(item);
- query.push('`item_id` = ' + parseInt(item.assetid));
- }
- // Depozyt
- else {
- console.log('Uzytkownik chce wyslac itemy.');
- offer.addTheirItem(item);
- }
- });
- // Wyślij powyższą ofertę (lokalną) na serwery Steam
- offer.send(offerMessage, msg.token, function (error, status) {
- if (error) {
- // Wystąpił błąd
- // Wybieranie skinów
- if (parseInt(msg.my) === 132) {
- var bot_id = process.argv[2];
- var max = config.bots.length - 1;
- if (process.argv[2] < max) {
- bot_id++;
- } else {
- bot_id = 0;
- }
- for (i = 0; i < msg.items.length; ++i) {
- msg.items[i].bot = bot_id;
- }
- if (msg.count > 0) {
- msg.count++;
- } else {
- msg.count = 1;
- }
- if (msg.count < 6) {
- socket.emit('create offer', msg);
- } else {
- socket.emit('user-info', {
- msg: 'Nie możemy wysłać chwilowo oferty wymiany. Spróbuj ponownie później.<br/>(' + error + ")",
- user: msg.steam,
- type: 'danger',
- dimiss: true,
- delay: 10000
- });
- }
- } else {
- socket.emit('user-info', {
- msg: 'Nie możemy wysłać chwilowo oferty wymiany. Spróbuj ponownie później.<br/>(' + error + ")",
- user: msg.steam,
- type: 'danger',
- dimiss: true,
- delay: 10000
- });
- }
- socket.emit('new_items');
- } else {
- // Oferta została wysłana
- console.log('Oferta została wysłana ' + offer.id);
- socket.emit('user-info', {
- msg: '<p class="text-center">Oferta została wysłana.<br/><a target="_blank" href="https://steamcommunity.com/tradeoffer/' + offer.id + '/">Przyjmij ofertę.</a><br/>\
- Token zabezpieczający oferty: ' + token + '</p>',
- user: msg.steam,
- type: 'success',
- dimiss: true,
- delay: 30000
- });
- socket.emit('new_items');
- // Wybieranie skinów
- if (parseInt(msg.my) === 132) {
- var sql = "UPDATE `items` SET `status`='1' WHERE " + query.join(' OR ');
- connection.query(sql, function (err, rows, fields) {
- if (err) {
- throw err;
- }
- });
- socket.emit('new_items');
- connection.query("INSERT INTO `offers` SET `status`='0', `offer_id`='"+offer.id+"', `bot_id`='"+process.argv[2]+"', `hash`='"+token+"', `user_steam`='"+msg.steam+"', `type`='1'", function (err, rows, fields) {
- if (err) {
- throw err;
- }
- });
- } else {
- connection.query("INSERT INTO `offers` SET `status`='0', `offer_id`='"+offer.id+"', `bot_id`='"+process.argv[2]+"', `hash`='"+token+"', `user_steam`='"+msg.steam+"', `type`='0'", function (err, rows, fields){
- if (err) {
- throw err;
- }
- });
- }
- }
- });
- // ???
- connection.query("UPDATE `bots` SET `time` = UNIX_TIMESTAMP(NOW()) WHERE `num` = '" + process.argv[2] + "'", function (error, rows, fields) {
- if (error) {
- throw error;
- }
- });
- }
- // Brak itemów
- else {
- socket.emit('user-info', {
- msg: 'Brak itemów do wysłania. Nie możemy wysłać oferty wymiany.',
- user: msg.steam,
- type: 'danger',
- dimiss: true,
- delay: 10000
- });
- }
- });
- // END
- return false;
- console.log('Create offer');
- var offer = manager.createOffer((msg.steam).toString());
- var i;
- var query = [];
- var ile = 0;
- for (i = 0; i < msg.items.length; ++i){
- if (msg.items[i].bot == process.argv[2]) {
- var item = {
- assetid: msg.items[i].item,
- appid: 730,
- contextid: 2,
- amount: 1
- };
- if (msg.my == 132) {
- // Sprawdź item
- console.log('Sprawdz item');
- connection.query("SELECT * FROM `items` WHERE `item_id` = '" + parseInt(item.assetid) + "' LIMIT 1", function (err, rows, fields) {
- console.log(err);
- console.log(rows);
- if (err) {
- throw err;
- }
- rows.forEach(function (row, callback) {
- console.log('addMyItem #1');
- if (parseInt(row.prowizja) === 0 && parseInt(row.game_id) === 0) {
- // Wygląda na to, że możemy wysłać ten item
- console.log('addMyItem #2');
- offer.addMyItem(item);
- query.push('`item_id`=\'' + parseInt(row.item_id) + '\'');
- ile++;
- } else {
- popup = true;
- }
- });
- });
- } else {
- offer.addTheirItem(item);
- ile++;
- }
- // ile++;
- }
- }
- var token = randomString();
- var text = config.domain+' - Token zabezpieczający oferty: '+ token;
- console.log('Prep finished');
- console.log('ile = ' + ile);
- if(ile > 0){
- console.log('Send trade offer');
- offer.send(text, msg.token, function(err, status){
- if(err){
- console.log(err);
- if(msg.my != 132){
- var bot_id = process.argv[2];
- var max = config.bots.length-1;
- if(process.argv[2] < max){
- bot_id++;
- }else{
- bot_id = 0;
- }
- for (i = 0; i < msg.items.length; ++i){
- msg.items[i].bot = bot_id;
- }
- if(msg.count > 0){
- msg.count++;
- }else{
- msg.count = 1;
- }
- if(msg.count < 6){
- socket.emit('create offer', msg);
- }else{
- socket.emit('user-info', {msg: 'Nie możemy wysłać chwilowo oferty wymiany. Spróbuj ponownie później.<br/>('+err+")",
- user: msg.steam,
- type: 'danger',
- dimiss: true,
- delay: 10000});
- }
- }else{
- socket.emit('user-info', {msg: 'Nie możemy wysłać chwilowo oferty wymiany. Spróbuj ponownie później.<br/>('+err+")",
- user: msg.steam,
- type: 'danger',
- dimiss: true,
- delay: 10000});
- }
- socket.emit('new_items');
- }else{
- console.log('Oferta pobrania skinów wyslana... '+offer.id);
- socket.emit('user-info', {
- msg: '<p class="text-center">Oferta została wysłana.<br/>\
- <a target="_blank" href="https://steamcommunity.com/tradeoffer/'+offer.id+'/">Przyjmij ofertę.</a><br/>\
- Token zabezpieczający oferty: '+token+'</p>',
- user: msg.steam,
- type: 'success',
- dimiss: true,
- delay: 30000
- });
- socket.emit('new_items');
- if(msg.my == 132){
- var sql = "UPDATE `items` SET `status`='1' WHERE "+query.join(' OR ');
- console.log(sql);
- connection.query(sql, function(err, rows, fields){
- if (err) throw err;
- });
- socket.emit('new_items');
- connection.query("INSERT INTO `offers` SET `status`='0', `offer_id`='"+offer.id+"', `bot_id`='"+process.argv[2]+"', `hash`='"+token+"', `user_steam`='"+msg.steam+"', `type`='1'", function(err, rows, fields){
- if (err) throw err;
- });
- }else{
- connection.query("INSERT INTO `offers` SET `status`='0', `offer_id`='"+offer.id+"', `bot_id`='"+process.argv[2]+"', `hash`='"+token+"', `user_steam`='"+msg.steam+"', `type`='0'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- connection.query("UPDATE `bots` SET `time`=UNIX_TIMESTAMP(NOW()) WHERE `num`='"+process.argv[2]+"'", function(err, rows, fields){
- if (err) throw err;
- });
- });
- }
- console.log('popup = ' + popup);
- }
- });
- socket.on('refresh_offer', function(data){
- if(data.bot_id == process.argv[2]){
- console.log(data.offer_id);
- manager.getOffer(data.offer_id, function(err, offer){
- if(err){console.log(err);}
- offer.getReceivedItems(function(err, items){
- if(err){console.log(err);}
- if(items.length > 0){
- var items2 = [];
- for(var k=0; k<items.length; k++){
- items2.push(items[k].assetid);
- }
- request({
- uri: "http://luckyshots.pl/ajax.php?s=refresh_offer&bot_id="+data.bot_id+"&user="+data.user+"&items="+JSON.stringify(items2),
- }, function(error, response, body){
- if(error){console.log(error);}
- console.log(body);
- socket.emit('refresh_offer_return', body);
- socket.emit('new_items');
- });
- }
- });
- });
- }
- });
- setInterval(function(){
- if(ready == true){
- var time = Math.floor(Date.now() / 1000);
- var key = SteamTotp.getConfirmationKey(twofactor.identity_secret, time, 'conf');
- community.getConfirmations(time, key, function(err, confirmations){
- if(err){console.log("Confimration error: "+err);}
- if(confirmations != undefined){
- if(confirmations.length > 0){
- for(i=0; i<confirmations.length; i++){
- potwierdz_wymiane(confirmations[i].id, confirmations[i].key);
- }
- }
- }
- });
- }
- }, 5000);
- function potwierdz_wymiane(id, key){
- var timekey2=Math.round(Date.now() / 1000);
- var confirmationkey2 = SteamTotp.getConfirmationKey(twofactor.identity_secret, timekey2, "allow");
- community.respondToConfirmation(id, key, timekey2, confirmationkey2, true, function(err){
- if(err){
- console.log("Confirmation #"+id+" : "+err);
- setTimeout(potwierdz_wymiane(id, key), 5000);
- }
- });
- }
- var timer = setInterval(function(){
- if(ready == true){
- var game;
- var user;
- var items = [];
- connection.query("SELECT * FROM `offers` WHERE `status`='0' AND `bot_id`='"+process.argv[2]+"' ORDER BY `time` LIMIT 1", function(err, rows, fields){
- if (err) throw err;
- rows.forEach(function(row, callback){
- manager.getOffer(row.offer_id, function(err, offer){
- if (err) console.log(err);
- if(offer != undefined){
- //console.log(offer.id+" "+TradeOfferManager.getStateName(offer.state));
- if(offer.state == TradeOfferManager.ETradeOfferState.Accepted){
- var user_id = '';
- connection.query('SELECT * FROM `users` WHERE `steam_id`=\''+offer.partner.accountid+'\' LIMIT 1', function(err, rows, fields){
- if (err) throw err;
- rows.forEach(function(row, callback){
- user_id = row.id;
- });
- });
- offer.getReceivedItems(function(err, items){
- if(err){
- console.log("Couldn't get received items: " + err);
- }else{
- if(items.length > 0){
- for(var k=0; k<items.length; k++){
- var temp_item = {user: user_id, item: items[k]};
- connection.query("SELECT * FROM `items` WHERE `item_id`='"+items[k].id+"'", (function(temp_item){
- return function(err, rows, fields) {
- if(rows.length == 0){
- connection.query("INSERT INTO `items` SET `user_id`='"+temp_item.user+"', `item_id`='"+temp_item.item.id+"', `name`='"+temp_item.item.market_hash_name+"', `image`='"+temp_item.item.icon_url+"', `bot_id`='"+process.argv[2]+"'", function(err, rows, fields){
- if (err) throw err;
- });
- console.log(temp_item.item.market_hash_name);
- socket.emit('new_items', temp_item.user);
- }
- };
- })(temp_item));
- }
- socket.emit('new_items', user_id);
- connection.query("UPDATE `offers` SET `status`='1', `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("DELETE FROM `items` WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- socket.emit('new_items', user_id);
- }
- connection.query("UPDATE `offers` SET `status`='1', `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }else if((offer.state == 1) || (offer.state == 4) || (offer.state == 5) || (offer.state == 6) || (offer.state == 7) || (offer.state == 8) || (offer.state == 10)){
- connection.query("UPDATE `offers` SET `status`='2', `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("UPDATE `items` SET `status`='0' WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- socket.emit('new_items');
- }else if(offer.state == 11){
- connection.query("UPDATE `offers` SET `time`=UNIX_TIMESTAMP(NOW()), `status`='4' WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("UPDATE `items` SET `status`='0' WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- socket.emit('new_items');
- }else{
- if((Date.parse(offer.created) / 1000) + 300 < Math.floor(Date.now() / 1000)){
- offer.cancel();
- console.log('Anulowanie oferty #'+offer.id+' (ponad 15 min)');
- connection.query("UPDATE `offers` SET `time`=UNIX_TIMESTAMP(NOW()), `status`='3' WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("UPDATE `items` SET `status`='0' WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- socket.emit('new_items');
- }else{
- connection.query("UPDATE `offers` SET `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- // var time = Math.floor(Date.now() / 1000);
- // var key = SteamTotp.getConfirmationKey(twofactor.identity_secret, time, 'conf');
- // community.getConfirmations(time, key, function(err, confirmations){
- // if(confirmations != undefined){
- // for(i=0; i<confirmations.length; i++){
- // var timekey2=Math.round(Date.now() / 1000);
- // var confirmationkey2 = SteamTotp.getConfirmationKey(twofactor.identity_secret, timekey2, "allow");
- // community.respondToConfirmation(confirmations[i].id, confirmations[i].key, timekey2, confirmationkey2, true, function(err){
- // if(err){console.log(err);}
- // });
- // }
- // }
- // });
- }
- }
- }
- });
- });
- });
- }
- }, 2500);
- var timer2 = setInterval(function(){
- if(ready == true){
- var game;
- var user;
- var items = [];
- connection.query("SELECT * FROM `offers` WHERE `status`='4' AND `bot_id`='"+process.argv[2]+"' ORDER BY `time` LIMIT 1", function(err, rows, fields){
- if (err) throw err;
- rows.forEach(function(row, callback){
- manager.getOffer(row.offer_id, function(err, offer){
- if (err) console.log(err);
- if(offer != undefined){
- console.log(offer.id+" "+TradeOfferManager.getStateName(offer.state));
- if(offer.state == TradeOfferManager.ETradeOfferState.Accepted){
- var user_id = '';
- connection.query('SELECT * FROM `users` WHERE `steam_id`=\''+offer.partner.accountid+'\' LIMIT 1', function(err, rows, fields){
- if (err) throw err;
- rows.forEach(function(row, callback){
- user_id = row.id;
- });
- });
- offer.getReceivedItems(function(err, items){
- if(err){
- console.log("Couldn't get received items: " + err);
- }else{
- if(items.length > 0){
- for(var k=0; k<items.length; k++){
- var temp_item = {user: user_id, item: items[k]};
- connection.query("SELECT * FROM `items` WHERE `item_id`='"+items[k].id+"'", (function(temp_item){
- return function(err, rows, fields) {
- if(rows.length == 0){
- connection.query("INSERT INTO `items` SET `user_id`='"+temp_item.user+"', `item_id`='"+temp_item.item.id+"', `name`='"+temp_item.item.market_hash_name+"', `image`='"+temp_item.item.icon_url+"', `bot_id`='"+process.argv[2]+"'", function(err, rows, fields){
- if (err) throw err;
- });
- console.log(temp_item.item.market_hash_name);
- socket.emit('new_items', temp_item.user);
- }
- };
- })(temp_item));
- }
- socket.emit('new_items', user_id);
- connection.query("UPDATE `offers` SET `status`='1', `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("DELETE FROM `items` WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- socket.emit('new_items', user_id);
- }
- connection.query("UPDATE `offers` SET `status`='1', `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }else if((offer.state == 1) || (offer.state == 4) || (offer.state == 5) || (offer.state == 6) || (offer.state == 7) || (offer.state == 8) || (offer.state == 10)){
- connection.query("UPDATE `offers` SET `status`='2', `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("UPDATE `items` SET `status`='0' WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- socket.emit('new_items');
- }else if(offer.state == 11){
- connection.query("UPDATE `offers` SET `time`=UNIX_TIMESTAMP(NOW()), `status`='4' WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("UPDATE `items` SET `status`='0' WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- socket.emit('new_items');
- }else{
- if((Date.parse(offer.created) / 1000) + 300 < Math.floor(Date.now() / 1000)){
- offer.cancel();
- console.log('Anulowanie oferty #'+offer.id+' (ponad 15 min)');
- connection.query("UPDATE `offers` SET `time`=UNIX_TIMESTAMP(NOW()), `status`='3' WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- if(offer.itemsToGive.length > 0){
- for(var it = 0; it<offer.itemsToGive.length; it++){
- connection.query("UPDATE `items` SET `status`='0' WHERE `item_id`='"+offer.itemsToGive[it].id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- socket.emit('new_items');
- }else{
- connection.query("UPDATE `offers` SET `time`=UNIX_TIMESTAMP(NOW()) WHERE `offer_id`='"+offer.id+"'", function(err, rows, fields){
- if (err) throw err;
- });
- }
- }
- }
- });
- });
- });
- }
- }, 60000);
- manager.on('pollData', function(pollData) {
- fs.writeFile('polldata_'+config.bots[process.argv[2]].login+'.json', JSON.stringify(pollData));
- });
- // manager.on('newOffer', function(offer) {
- // console.log("New offer #" + offer.id + " from " + offer.partner.getSteam3RenderedID());
- // offer.cancel();
- // });
- function randomString(){
- var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
- var string_length = 10;
- var randomstring = '';
- for (var i=0; i<string_length; i++) {
- var rnum = Math.floor(Math.random() * chars.length);
- randomstring += chars.substring(rnum,rnum+1);
- }
- return randomstring;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement