Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- __ _________ ________ ____ _____ _
- \ \ / / ____\ \ / / ____| _ \ | __ \| |
- \ \_/ / | __ \ \ /\ / /| |__ | |_) || |__) | |
- \ /| | |_ | \ \/ \/ / | __| | _ < | ___/| |
- | | | |__| | \ /\ / | |____| |_) || | | |____
- |_| \_____| \/ \/ |______|____(_)_| |______|
- */
- var SteamTotp = require('steam-totp');
- var Steam = require('steam');
- var SteamTradeOffers = require('steam-tradeoffers');
- var request = require("request");
- var SteamConfirm = require('steamcommunity-mobile-confirmations');
- var mysql = require('mysql');
- var io = require('socket.io')(9182);
- require('events').EventEmitter.defaultMaxListeners = Infinity;
- /*
- Konfiguracja skryptu
- */
- var admin = '76561198084673749'; // SteamID64 administratora
- var botsteamid = '76561198096932160'; // SteamID64 bota
- var shared_secret ='x='; // Shared secret konta bota
- var identity_secret='x='; // Identity secret konta bota
- var pooling_interval = 100000; // Częstotliwość akceptowania wymian w ms (10000ms to 10s)
- var apik = 'x'; // APIKey Steam konta bota -> http://steamcommunity.com/dev/apikey
- var sitename = 'ygpot.com'; // Adres strony WWW bez protokołu (np. ygpot.com)
- var GameTime = 90; // Czas trwania rundy
- //var souvenir = 1; // Przedmioty pamiątki (0 - nie, 1 - tak)
- var logOnOptions = {
- accountName: 'x', // Login steam do konta bota
- password: 'x', // Hasło steam do konta bota
- twoFactorCode: SteamTotp.generateAuthCode(shared_secret) // Generowanie mobilnego tokenu
- }
- var mysqlInfo = {
- host : 'localhost', // Host bazy danych
- user : 'x', // Nazwa użytkownika bazy danych
- password : 'x', // Hasło do bazy danych
- database : 'x', // Nazwa bazy danych
- charset : 'utf8_general_ci' // Kodowanie bazy danych
- };
- /*
- Koniec konfiguracji skryptu
- Edycja poniższego kodu wiąże się z utratą pomocy technicznej na skrypt
- */
- function getDateTime() {
- var date = new Date();
- var hour = date.getHours();
- hour = (hour < 10 ? "0" : "") + hour;
- var min = date.getMinutes();
- min = (min < 10 ? "0" : "") + min;
- var sec = date.getSeconds();
- sec = (sec < 10 ? "0" : "") + sec;
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- month = (month < 10 ? "0" : "") + month;
- var day = date.getDate();
- day = (day < 10 ? "0" : "") + day;
- return year + ":" + month + ":" + day + ":" + hour + ":" + min + ":" + sec;
- }
- var mysqlConnection = mysql.createConnection(mysqlInfo, {multipleStatements: true});
- var Entities = require('html-entities').AllHtmlEntities;
- entities = new Entities();
- var steam = new Steam.SteamClient();
- var offers = new SteamTradeOffers();
- var hash = require('crypto').createHash('sha1');
- var express = require("express");
- hash.update(Math.random().toString());
- hash = hash.digest('hex');
- var device_id = 'android:' + hash;
- var globalSessionID;
- var locked = false, proceeded;
- var itemscopy;
- var detected = false;
- var detected2 = false;
- var endtimer = -1;
- var authCode = '';
- var userCount = 0;
- var actual_time = null;
- var lasted = getDateTime();
- io.on('connection', function(socket) {
- //var login = '<span style="color: red;">System</span>';
- //var system = 'http://blodhren.pl/img/system.png';
- //io.emit('message', { avatar: system, login: login, message: '<b>Welcome to YGPot!</b>' });
- mysqlConnection.query("SELECT `value` FROM `info` WHERE `name`=\'current_game\'", function(err, row) {
- var round = row[0].value;
- var lastgame = row[0].value - 1;
- mysqlConnection.query("SELECT SUM(value) AS value FROM `game"+lastgame+"`", function(err, row) {
- var lastpot = row[0].value;
- mysqlConnection.query("SELECT `cost` FROM `games` ORDER BY `cost` DESC", function(err, row) {
- if(lastpot == null) {
- lastpot = "0.00";
- } else {
- lastpot = parseFloat(lastpot).toFixed(2);
- }
- var biggestwin = parseFloat(row[0].cost).toFixed(2);
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
- var current_bank2 = row[0].cost;
- var current_bank = parseFloat(current_bank2).toFixed(2);
- var itemsnum = row[0].itemsnum;
- socket.emit('gameinfo', { current_money: current_bank, itemsnum: itemsnum });
- // io.emit('gameinfo', { current_money: current_bank, itemsnum: itemsnum });
- });
- });
- socket.emit('info', { round: round, biggestwin: biggestwin, lastpot: lastpot });
- });
- });
- });
- socket.on('message', function(data){
- var last_chat = lasted;
- var date = getDateTime();
- if(date != last_chat){
- var steamid = data.steamid;
- if(steamid != undefined && data.hash != undefined){
- mysqlConnection.query('SELECT `admin` FROM `users` WHERE `steamid`=\''+steamid+'\'', function(errss, rowsss, fieldsss) {
- mysqlConnection.query('SELECT `hash` FROM `users` WHERE `steamid`=\''+steamid+'\'', function(errs, rowss, fieldss) {
- if(data.admin == rowsss[0].admin){
- if(errs) console.log(errs);
- if(rowss[0].hash != undefined) var hash = rowss[0].hash;
- if(hash == data.hash){
- if(data.admin == 1) {
- var login = '<span style="color: red;">'+data.login+'</span>';
- } else if(data.admin == 2) {
- var login = '<span style="color: green;">'+data.login+'</span>';
- } else if(data.admin == 3) {
- var login = '<span style="color: orange;">[STREAMER] '+data.login+'</span>';
- } else {
- var login = data.login;
- }
- if(data.admen != 4).e
- davar message = entities.encode(data.message);
- lasted = getDateTime();
- io.emit('message', { avatar: data.avatar, login: login, message: message });
- }
- } else {
- console.log("[YGWEB] ERROR HASH CHAT");
- }
- }
- });
- });
- }
- } else {
- console.log("[YGWEB] TOO LATE CHAT");
- }
- });
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields){
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT * FROM `game'+current_game+'` ORDER BY `value` DESC', function(err, row) {
- if(err) {
- console.log('[YGWEB] ERROR: '+err);
- // throw err;
- } else {
- for(var i in row) {
- io.to(socket.id).emit('item', { userid: row[i].userid, username: row[i].username, item: row[i].item, color: row[i].color, value: row[i].value, avatar: row[i].avatar, image: row[i].image });
- }
- }
- });
- });
- userCount++;
- io.sockets.emit('userCount', { userCount: userCount });
- socket.on('disconnect', function() {
- userCount--;
- io.sockets.emit('userCount', { userCount: userCount });
- });
- setInterval(function() {
- request({
- uri: "http://"+sitename+"/game_info.php?info=timeleft",
- }, function(error, response, body) {
- var timeleft = body;
- if(timeleft < 0 || timeleft == 0 || timeleft == 1) {
- timeleft = 0;
- var url = 'http://'+sitename+'/inc/winner.php';
- request(url, function(error, response, body){});
- EndGame();
- io.emit('time', { timeleft: timeleft });
- io.emit('end', { end: 66 });
- } else {
- io.emit('time', { timeleft: timeleft });
- }
- });
- }, 1000);
- });
- if (require('fs').existsSync('sentry_'+logOnOptions['accountName']+'.hash')) {
- logOnOptions['shaSentryfile'] = require('fs').readFileSync('sentry_'+logOnOptions['accountName']+'.hash');
- } else if(require('fs').existsSync('ssfn_'+logOnOptions['accountName'])) {
- var sha = require('crypto').createHash('sha1');
- sha.update(require('fs').readFileSync('ssfn_'+logOnOptions['accountName']));
- var sentry = new Buffer(sha.digest(), 'binary');
- logOnOptions['shaSentryfile'] = sentry;
- require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', sentry);
- } else if (authCode != '') {
- logOnOptions['authCode'] = authCode;
- }
- var recheck = true;
- steam.logOn(logOnOptions);
- function getUserName(steamid) {
- getUserInfo(steamid, function(error, data) {
- // if(error) throw error;
- if(error) console.log('[YGWEB] ERROR: '+error);
- var datadec = JSON.parse(JSON.stringify(data.response));
- return (datadec.players[0].personaname);
- });
- }
- function is_float(mixed_var) {
- return +mixed_var === mixed_var && (!isFinite(mixed_var) || !! (mixed_var % 1));
- }
- function proceedWinners() {
- var url = 'http://'+sitename+'/inc/winner.php';
- request(url, function(error, response, body){});
- }
- function getUserInfo(steamids,callback) {
- var url = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+apik+'&steamids='+ steamids + '&format=json';
- request({
- url: url,
- json: true
- }, function(error, response, body) {
- if(!error && response.statusCode === 200) {
- callback(null, body);
- } else if (error) {
- getUserInfo(steamids,callback);
- }
- });
- }
- function addslashes(str) {
- str=str.replace(/\\/g,'\\\\');
- str=str.replace(/\'/g,'\\\'');
- str=str.replace(/\"/g,'\\"');
- str=str.replace(/\0/g,'\\0');
- return str;
- }
- function weblogon() {
- steam.webLogOn(function(newCookie) {
- COOKIE = newCookie;
- offers.setup({
- sessionID: globalSessionID,
- webCookie: newCookie,
- APIKey: apik
- }, function(err){
- if(err){
- console.log(err);
- }
- var steamapi=apik;
- var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
- var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
- {
- steamid: botsteamid,
- identity_secret: identity_secret,
- device_id: "android:" + require('crypto').randomBytes(16).toString('hex'),
- webCookie: newCookie
- });
- setInterval(function(){
- steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations)
- {
- if (err)
- {
- console.log(err);
- return;
- }
- if(confirmations.length>0)
- {
- console.log('[YGWEB] Potwierdzono ' + confirmations.length + ' wymian!');
- }
- if ( ! confirmations.length)
- {
- return;
- }
- steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result)
- {
- if (err) {
- console.log(err);
- return;
- }
- }).bind(this));
- }).bind(this));
- }, pooling_interval);
- if (err)
- {
- }
- });
- });
- }
- weblogon();
- function sendoffers(){
- detected2 = false;
- offers.loadMyInventory({
- appId: 730,
- contextId: 2,
- APIKey: apik
- }, function(err, itemx) {
- if(err) {
- weblogon();
- setTimeout(sendoffers,1000);
- return;
- }
- if(detected2 == true) {
- return;
- }
- detected2 = true;
- itemscopy = itemx;
- detected = false;
- mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
- if(err) {
- return;
- }
- if(detected == true) {
- return;
- }
- detected = true;
- for(var i=0; i < row.length; i++) {
- var gameid = row[i].id;
- var sendItems = (row[i].items).split('/');
- var item=[],num=0;
- for (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] = "hgjhgnhgjgnjghjjghjghjghjhgjghjghjghngnty";
- itemscopy[x].market_name = "fgdfgdfgdfgdfgfswfewefewrfewrewrewr";
- 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: 'Congratulation! This is your winning from '+sitename+''
- }, function(err, response){
- if (err) {
- mysqlConnection.query('UPDATE `queue` SET `status`=\'sent '+err+'\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
- return;
- } else {
- // mysqlConnection.query('UPDATE `queue` SET `status`=\'sent '+response+'\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
- mysqlConnection.query('UPDATE `queue` SET `status`=\'sent '+response+'\'', function(err, row, fields) {});
- console.log('[YGWEB] Nagroda z rundy '+gamenum+' wyslana do zwycięzcy!');
- confirmS();
- }
- });
- }
- }
- });
- })}
- (function() {
- /**
- * Decimal adjustment of a number.
- *
- * @param {String} type The type of adjustment.
- * @param {Number} value The number.
- * @param {Integer} exp The exponent (the 10 logarithm of the adjustment base).
- * @returns {Number} The adjusted value.
- */
- function decimalAdjust(type, value, exp) {
- if (typeof exp === 'undefined' || +exp === 0) {
- return Math[type](value);
- }
- value = +value;
- exp = +exp;
- if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
- return NaN;
- }
- value = value.toString().split('e');
- value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
- value = value.toString().split('e');
- return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
- }
- if (!Math.round10) {
- Math.round10 = function(value, exp) {
- return decimalAdjust('round', value, exp);
- };
- }
- if (!Math.floor10) {
- Math.floor10 = function(value, exp) {
- return decimalAdjust('floor', value, exp);
- };
- }
- if (!Math.ceil10) {
- Math.ceil10 = function(value, exp) {
- return decimalAdjust('ceil', value, exp);
- };
- }
- })();
- function EndGame() {
- endtimer = -1;
- proceedWinners();
- setTimeout(sendoffers,1000);
- }
- steam.on('loggedOn', function(result) {
- console.log('[YGWEB] Steam bot - Zalogowano');
- steam.setPersonaState(Steam.EPersonaState.LookingToTrade);
- });
- steam.on('webSessionID', function(sessionID) {
- globalSessionID = sessionID;
- weblogon();
- setTimeout(function(){
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, rows, fields) {
- if(err) return;
- mysqlConnection.query('SELECT `starttime` FROM `games` WHERE `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 != GameTime) {
- setTimeout(EndGame,timeleft*1000);
- endtimer = setTimeout(EndGame,GameTime*1000);
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields){
- var current_game = (row[0].value);
- mysqlConnection.query('UPDATE IGNORE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
- console.log('[YGWEB] Przywracamy gre z '+timeleft+' sekund!');
- });
- }
- });
- });
- },1500);
- });
- 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,
- APIKey: apik
- }, function(err, items) {
- if(err) {
- steam.sendMessage(steamID, '[YGWEB] Próbujemy wysłać przedmioty...');
- weblogon();
- return;
- }
- var item=[],num=0;
- for (var i = 0; i < 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, '[YGWEB] Oferta została wysłana z wszystkimi przedmiotami!');
- });
- }
- });
- } else if(message.indexOf("/send") == 0) {
- var params = message.split(' ');
- if(params.length == 1) return steam.sendMessage(steamID, 'Używaj /send [nazwa_przedmiotu]');
- offers.loadMyInventory({
- appId: 730,
- contextId: 2
- }, function(err, items) {
- if(err) {
- steam.sendMessage(steamID, 'Błąd z ładowaniem ekwipunku...');
- weblogon();
- return;
- }
- var item=0;
- for (var i = 0; i < 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, '[YGWEB] Oferta wysłana z przedmiotem '+item);
- });
- }
- });
- } else if(message.indexOf("/end") == 0) {
- steam.sendMessage(steamID,'Gra została zakończona!');
- if(endtimer != -1) clearTimeout(endtimer);
- EndGame();
- } else if(message.indexOf("/code") == 0) {
- var code = SteamTotp.generateAuthCode(shared_secret);
- steam.sendMessage(steamID,'Twój kod do logowania: ' +code+'');
- } else if(message.indexOf("/so") == 0) {
- steam.sendMessage(steamID,'Nagroday wysylamy natychmiastowo!');
- sendoffers();
- }
- }
- });
- function in_array(needle, haystack, strict) {
- var found = false, key, strict = !!strict;
- for (key in haystack) {
- if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
- found = true;
- break;
- }
- }
- return found;
- }
- function checkoffers(number) {
- if (number > 0) {
- offers.getOffers({
- get_received_offers: 1,
- active_only: 1,
- get_sent_offers: 0,
- get_descriptions: 1,
- time_historical_cutoff: Math.round(Date.now() / 1000),
- 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) {
- console.log('[YGWEB] Anulujemy oferte '+offer.tradeofferid);
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- }
- if(offer.items_to_receive == undefined) return;
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) {
- if(offer.items_to_receive.length > row[0].value) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- offer.items_to_receive = [];
- var unixtime = Math.round(new Date().getTime()/1000.0);
- console.log('[YGWEB] Oferta #'+offer.tradeofferid+' wyslana przez: '+offer.steamid_other+' anulowana! Zbyt duzo przedmiotow!');
- return;
- }
- });
- var delock = false;
- offers.loadPartnerInventory({partnerSteamId: offer.steamid_other, appId: 730, contextId: 2, tradeOfferId: offer.tradeofferid, language: "en"}, function(err, hitems) {
- if(err) {
- weblogon();
- recheck = true;
- return;
- }
- if(delock == true) return;
- delock = true;
- var items = offer.items_to_receive;
- var wgg=[],num=0;
- for (var i = 0; i < 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; i < num; i++) {
- if(wgg[i].appid != 730) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('[YGWEB] Items is not CSGO skins.');
- var unixtime = Math.round(new Date().getTime()/1000.0);
- return;
- }
- /* if(souvenir == 0){
- if(wgg[i].market_name.indexOf("Souvenir") != -1) {
- var unixtime = Math.round(new Date().getTime()/1000.0);
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: User sent a souvenir skin');
- return;
- }
- }*/
- var itemname = wgg[i].market_name;
- var url = 'http://'+sitename+'/inc/cost.php?item='+encodeURIComponent(itemname);
- (function(someshit) {
- request(url, function(error, response, body){
- if(!error && response.statusCode === 200){
- var unixtime = Math.round(new Date().getTime()/1000.0);
- if(body == "notfound"){
- console.log('[YGWEB] Oferta wyslana przez '+offer.steamid_other+' anulowana! nie mozna pobrac ceny przedmiotow!');
- } else {
- wgg[someshit].cost = parseFloat(body);
- }
- } else {
- console.log('[YGWEB] Oferta wyslana przez '+offer.steamid_other+' anulowana! nie mozna pobrac ceny przedmiotow!');
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- }
- });
- })(i)
- }
- setTimeout(function() {
- var sum=0;
- for(var i=0; i < num; i++) {
- sum += wgg[i].cost;
- }
- var tradelink;
- mysqlConnection.query('SELECT tlink FROM `users` WHERE `steamid`=\''+offer.steamid_other+'\'', function(err, row, fields)
- {
- tradelink= row[0].tlink;
- if(!tradelink)
- {
- var unixtime = Math.round(new Date().getTime()/1000.0);
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('[YGWEB] Oferta wyslana przez '+offer.steamid_other+' anulowana, poniewaz nie uzupelnil on tradelinku!')
- return;
- }
- var token = tradelink.slice(-8);
- offers.getHoldDuration({partnerSteamId: offer.steamid_other, accessToken: token}, function(err, response){
- if (err) {
- console.log('[YGWEB] Oferta wyslana przez '+offer.steamid_other+' anulowana, error!')
- var unixtime = Math.round(new Date().getTime()/1000.0);
- console.log(err);
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- }
- if(response.their==0)
- {
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields){
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT COUNT(value) as citems FROM `game'+current_game+'` WHERE `userid`=\''+offer.steamid_other+'\'', function(err, row, fields){
- citems = row[0].citems;
- citems=citems+offer.items_to_receive.length;
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields)
- {
- var mi=row[0].value;
- if(citems > mi)
- {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- offer.items_to_receive = [];
- console.log('[YGWEB] Oferta wyslana przez '+offer.steamid_other+' anulowana, poniewaz wyslal on za duzo skinow!');
- return;
- }
- });
- mysqlConnection.query('SELECT SUM(value) as cmoney FROM `game'+current_game+'` WHERE `userid`=\''+offer.steamid_other+'\'', function(err, row, fields){
- /*cmoney = row[0].cmoney;
- cmoney=cmoney+sum;
- for(var k=0; k < num; k++){
- if(!is_float(wgg[k].cost)){
- if(err){
- console.log('err float');
- }
- //console.log('float');
- //offers.declineOffer({tradeOfferId: offer.tradeofferid});
- // return;
- }
- }*/
- getUserInfo(offer.steamid_other, function(error, data){
- // if(error) throw error;
- if(error) console.log('[YGWEB] ERROR: '+error);
- var datadec = JSON.parse(JSON.stringify(data.response));
- var name = addslashes(datadec.players[0].personaname);
- var avatar = (datadec.players[0].avatarfull);
- if(num == 0) return;
- offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, response) {
- if(err != null) return;
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
- var current_bank2 = parseFloat(row[0].cost);
- //var current_bank = parseFloat(row[0].cost).toFixed(2);
- var itemsnum = row[0].itemsnum;
- for(var j=0; j < num; j++) {
- var itemn = addslashes(wgg[j].market_name);
- mysqlConnection.query('INSERT IGNORE INTO `game' + current_game + '` (`userid`,`username`,`item`,`color`,`value`,`avatar`,`image`,`from`,`to`) VALUES (\'' + offer.steamid_other + '\',\'' + name + '\',\'' + itemn + '\',\'' + wgg[j].name_color + '\',\'' + wgg[j].cost + '\',\'' + avatar + '\',\'' + wgg[j].icon_url + '\',\''+current_bank+'\'+\'0\',\''+current_bank+'\'+\''+wgg[j].cost+'\')', function(err, row, fields) {});
- io.emit('item', { userid: offer.steamid_other, username: name, item: itemn, color: wgg[j].name_color, value: wgg[j].cost, avatar: avatar, image: wgg[j].icon_url });
- mysqlConnection.query('UPDATE IGNORE `games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+wgg[j].cost+'\' WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
- // current_bank = current_bank + wgg[j].cost;
- var current_bank3 = current_bank2 + wgg[j].cost;
- itemsnum++;
- }
- var current_bank = parseFloat(current_bank3).toFixed(2);
- io.emit('gameinfo', { current_money: current_bank, itemsnum: itemsnum });
- mysqlConnection.query('SELECT COUNT(DISTINCT userid) AS playersCount FROM `game' + current_game + '`', function(err, rows){
- someVar = rows[0].playersCount;
- console.log('[YGWEB] Graczy w puli: ' +someVar);
- if(someVar == 2 && items.length > 0 && endtimer==-1) {
- console.log('[YGWEB] Odliczanie rozpoczete!');
- endtimer = setTimeout(EndGame,GameTime*1000);
- mysqlConnection.query('UPDATE IGNORE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
- }
- });
- console.log('[YGWEB] Zaakceptowano oferte #'+offer.tradeofferid+' wysylajacy '+name+'');
- });
- });
- });
- });
- });
- });
- });
- } else {
- console.log('[YGWEB] Gracz wysylajacy nie posiada aktywowanego ESCROW!');
- var unixtime = Math.round(new Date().getTime()/1000.0);
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- }
- });
- });
- },2000);
- });
- }
- });
- }
- });
- }
- }
- setInterval(sendoffers,30000);
- var pew;
- steam.on('tradeOffers', checkoffers);
- setInterval(function(){
- steam.on('tradeOffers', checkoffers);
- }, 30000);
- steam.on('sentry', function(data) {
- require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', data);
- });
- console.log("[YGWEB] Potwierdzanie ofert - Zalogowano");
- function confirmS(){
- var SteamCommunity = require('steamcommunity');
- var SteamTotp = require('steam-totp');
- var code = SteamTotp.generateAuthCode('nlyt3AbVvNrBQILanB6r4QrVmlQ=');
- //console.log(code);
- var client = new SteamCommunity();
- client.login({
- "accountName": "bartek4176",
- "password": "zarzecze",
- "twoFactorCode": code
- }, function(err, sessionId, cookies, steamguard) {
- var hash = require('crypto').createHash('sha1');
- hash.update(Math.random().toString());
- hash = hash.digest('hex');
- device_id2 = 'android:' + hash;
- //console.log(this.device_id2);
- var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
- var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
- {
- steamid: "76561198096932160",
- identity_secret: "0sOKooSZwarTfmGQwP8W8BgscNY=",
- device_id2: this.device_id2,
- webCookie: cookies,
- });
- steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations){
- if (err){
- console.log(err);
- return;
- }
- if(confirmations.length != 0){
- console.log('[YGWEB] Potwierdzono ' + confirmations.length + ' wymian');
- }
- if (!confirmations.length){
- return;
- }
- steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result){
- if (err){
- console.log(err);
- return;
- }
- console.log('[YGWEB] Wynik: ' + result);
- }).bind(this));
- }).bind(this));
- })
- }
- setInterval(confirmS,60000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement