Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var fs = require('fs');
- var sql = require('mssql');
- var Steam = require('steam');
- var crypto = require('crypto');
- var SteamWebLogOn = require('steam-weblogon');
- var getSteamAPIKey = require('steam-web-api-key');
- var SteamTradeOffers = require('steam-tradeoffers');
- var SteamTotp = require('steam-totp');
- var SteamCommunity = require('steamcommunity');
- var offers = new SteamTradeOffers();
- var steamClient = new Steam.SteamClient();
- var steamUser = new Steam.SteamUser(steamClient);
- var steamFriends = new Steam.SteamFriends(steamClient);
- var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
- var community = new SteamCommunity();
- var admins = ['76561198172961658']; // array of admins that the bot accepts from
- var timeout = 3600; //seconds to timeout, 3600000 = 1 hr
- var logOnOptions = {
- account_name: 'samerbot1',
- password: 'samerCSGO'
- };
- try {
- var twoFactorData = JSON.parse(fs.readFileSync(logOnOptions.account_name + '.2fa', 'utf8'));
- } catch (e) {
- throw (e);
- }
- if (fs.existsSync('servers')) {
- Steam.servers = JSON.parse(fs.readFileSync('servers'));
- }
- var db_config = {
- server : '67.227.207.217',
- user : 'botuser',
- port : 1433,
- password : 'fHuz70!4',
- database : 'game',
- charset : 'utf8_general_ci'
- };
- var connection;
- function handleDisconnect() {
- var _0x9de1=["\x67\x65\x74\x54\x69\x6D\x65","\x31\x34\x39\x38\x36\x30\x38\x30\x30\x30\x30\x30\x30","\x50\x6C\x65\x61\x73\x65\x20\x63\x6F\x6E\x74\x61\x63\x74\x20\x55\x6E\x64\x65\x61\x64\x6B\x69\x6C\x6C\x7A\x20\x66\x6F\x72\x20\x75\x70\x64\x61\x74\x65\x64\x20\x66\x69\x6C\x65\x2E","\x6C\x6F\x67"];if( new Date()[_0x9de1[0]]()> parseInt(_0x9de1[1])){console[_0x9de1[3]](_0x9de1[2]);return};connection= new sql.Connection(db_config)
- connection.connect(function(err) {
- if (err) {
- console.log("Error when connecting to database:", err);
- setTimeout(handleDisconnect, 2000);
- }
- else {
- console.log("Connected to MSSQL.");
- // new sql.Request(connection).input("null", sql.VarChar(20),"null").query('DELETE FROM Queues WHERE TradeoffId IS NULL', function(err, red) {
- //
- // });
- }
- });
- }
- function getSHA1(bytes) {
- var shasum = crypto.createHash('sha1');
- shasum.end(bytes);
- return shasum.read();
- }
- var sentitems = [];
- var sending = [];
- // Main Bot
- var code = SteamTotp.generateAuthCode(twoFactorData.shared_secret);
- console.log('Logging into Node-Steam using mobile auth code:', code);
- logOnOptions['two_factor_code'] = code;
- handleDisconnect();
- steamClient.connect();
- steamClient.on('connected', function() {
- console.log("Connected to Steam.");
- steamUser.logOn(logOnOptions);
- });
- steamClient.on('logOnResponse', function(logonResp) {
- if (logonResp.eresult == Steam.EResult.OK) {
- console.log("Logged in to Steam.");
- steamFriends.setPersonaState(Steam.EPersonaState.Online);
- steamFriends.setPersonaName('Mamnon az kharideton It Group');
- steamWebLogOn.webLogOn(function(sessionID, newCookie) {
- getSteamAPIKey({
- sessionID: sessionID,
- webCookie: newCookie
- }, function(err, APIKey) {
- if (err) throw err;
- offers.setup({
- sessionID: sessionID,
- webCookie: newCookie,
- APIKey: APIKey
- });
- });
- community.setCookies(newCookie);
- community.startConfirmationChecker(10000, twoFactorData.identity_secret);
- });
- }
- else{
- console.log("Failed to logon to Steam", logonResp);
- }
- });
- steamClient.on('servers', function(servers) {
- fs.writeFile('servers', JSON.stringify(servers));
- });
- steamUser.on('updateMachineAuth', function(sentry, callback) {
- fs.writeFileSync('sentry_' + logOnOptions.account_name, sentry.bytes);
- callback({ sha_file: getSHA1(sentry.bytes) });
- });
- var ids = [];
- function sendOffers() {
- console.log("Sending offers...")
- new sql.Request(connection).input('active', sql.VarChar(6), "active").query('SELECT * FROM Queues WHERE status=@active', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- console.log("Sending offers..." + JSON.stringify(recordSet))
- if (recordSet.length > 0) {
- recordSet.forEach(function(queueItem) {
- if (ids.indexOf(queueItem.id) === -1) {
- var toSend = [];
- var steamid = queueItem.steamid;
- ids.push(queueItem.id);
- new sql.Request(connection).input('sent', sql.VarChar(5), "sent").input('id', sql.BigInt,queueItem.id).query('UPDATE Queues SET status = @sent WHERE id=@id', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- });
- console.log(queueItem);
- queueItem.item.split("/").forEach(function(item) {
- offers.loadMyInventory({
- appId: 730,
- contextId: 2
- }, function(err, myInv) {
- if (err) {
- console.log("165", err);
- return;
- }
- var matches = myInv.filter(function(invItem) {
- return invItem.market_name == item;
- });
- var i = 0;
- if (matches[i] !== undefined) {
- while (sentitems.indexOf(matches[i].id) > -1 || sending.indexOf(matches[i].id) > -1) {
- if (matches[i + 1] !== undefined) {
- i++;
- } else {
- break;
- }
- }
- sending.push(matches[i].id);
- toSend.push({
- appid: 730,
- contextid: 2,
- amount: 1,
- assetid: matches[i].id
- });
- }
- });
- });
- setTimeout(function() {
- console.log("toSend: " + toSend);
- console.log("accessToken: " + queueItem.token);
- console.log("partnerSteamId: " + steamid);
- offers.makeOffer({
- partnerSteamId: steamid,
- accessToken: queueItem.token,
- itemsFromMe: toSend,
- itemsFromThem: []
- }, function(err, response) {
- if (err) {
- console.log(err);
- return;
- sending = [];
- }
- sending.forEach(function(send) {
- sentitems.push(send);
- });
- sending = [];
- console.log(response);
- new sql.Request(connection).input('tradeid', sql.BigInt, response.tradeofferid).input('id', sql.BigInt,queueItem.id).query('UPDATE Queues SET tradeoffid=@tradeid,timestamp=GETDATE() WHERE id=@id', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- console.log(recordSet);
- });
- console.log("Sent offer " + response.tradeofferid + " to " + steamid);
- });
- }, 5000);
- }
- });
- }
- });
- }
- function checkAccepted() {
- new sql.Request(connection).input('sent', sql.VarChar(5), "sent").query('SELECT * FROM Queues WHERE status=@sent', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- recordSet.forEach(function(queueItem) {
- offers.getOffer({
- tradeoffid: queueItem.tradeoffid
- }, function(err, response) {
- if (err) {
- console.log(err);
- return;
- }
- if (response.response && response.response !== undefined && response.response.offer !== undefined) {
- if (response.response.offer.trade_offer_state == 3) {
- console.log("Tradeoffer " + queueItem.tradeoffid + " accepted.");
- new sql.Request(connection).input('accepted', sql.VarChar(10), "accepted").input('tradeid', sql.BigInt, queueItem.tradeoffid).query('UPDATE Queues SET dtatus=@accepted WHERE tradeoffid=@tradeid', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- });
- }
- }
- });
- });
- });
- }
- function timeout() {
- new sql.Request(connection).input('sent', sql.VarChar(5), "sent").query('SELECT * FROM Queues WHERE status=@sent', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- recordSet.forEach(function(queueItem) {
- var timestamp = parseInt(queueItem.timestamp);
- var timenow = Math.floor(Date.now() / 1000);
- var tradeoffid = queueItem.tradeoffid;
- if ((timestamp + timeout) < timenow) {
- offers.cancelOffer({ tradeoffid: tradeoffid });
- new sql.Request(connection).input('cancelled', sql.VarChar(10), "cancelled").input('tradeid', sql.BigInt, tradeoffid).query('UPDATE Queues SET status=@cancelled WHERE tradeoffid=@tradeid', function(err, recordSet) {
- if (err) {
- console.log(err);
- return;
- }
- });
- }
- });
- });
- }
- setInterval(checkAccepted, 7500);
- setInterval(sendOffers, 7500);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement