Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var fs = require('fs');
- var crypto = require('crypto');
- var console = process.console;
- var config = require('./config.js');
- var Steam = require('steam');
- var SteamWebLogOn = require('steam-weblogon');
- var getSteamAPIKey = require('steam-web-api-key');
- var SteamTradeOffers = require('steam-tradeoffers');
- var SteamCommunity = require('steamcommunity');
- var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
- var SteamTotp = require('steam-totp');
- var mysql = require('mysql');
- var url = require('url');
- var details = {
- account_name: config.bot.username,
- password: config.bot.password,
- two_factor_code: generatekey(config.bot.secret)
- };
- var steamClient = new Steam.SteamClient();
- var steamUser = new Steam.SteamUser(steamClient);
- var steamFriends = new Steam.SteamFriends(steamClient);
- var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
- var offers = new SteamTradeOffers();
- // Generation Device_ID
- var hash = require('crypto').createHash('sha1');
- hash.update(Math.random().toString());
- hash = hash.digest('hex');
- var device_id = 'android:' + hash;
- var checkingOffers = [],
- WebCookies = [],
- WebSession = false,
- globalSession;
- function steamBotLogger(log) {
- console.tag('SteamBot').log(log);
- }
- function EscrowLogger(log) {
- console.tag('EscrowBot').info(log);
- }
- function generatekey(secret) {
- code = SteamTotp.generateAuthCode(secret);
- EscrowLogger('Generated Code : ' + code);
- return code;
- }
- var db = mysql.createConnection({
- supportBigNumbers: true,
- bigNumberStrings: true,
- host: ' ',
- user: ' ',
- password: ' ',
- database: ' '
- });
- steamClient.connect();
- steamClient.on('debug', steamBotLogger);
- steamClient.on('connected', function () {
- steamUser.logOn(details);
- });
- steamClient.on('logOnResponse', function (logonResp) {
- if (logonResp.eresult === Steam.EResult.OK) {
- steamBotLogger('Подключен');
- steamFriends.setPersonaState(Steam.EPersonaState.Online);
- steamWebLogOn.webLogOn(function (sessionID, newCookie) {
- getSteamAPIKey({
- sessionID: sessionID,
- webCookie: newCookie
- }, function (err, APIKey) {
- offers.setup({
- sessionID: sessionID,
- webCookie: newCookie,
- APIKey: APIKey
- }, function (err) {
- WebSession = true;
- globalSession = sessionID;
- WebCookies = newCookie;
- steamBotLogger('Функция принятия трейдов включена!');
- var checkDropInterval = setInterval(checkDrop, 10000);
- AcceptMobileOffer();
- });
- });
- });
- }
- });
- function checkDrop() {
- db.query("SELECT * FROM drops WHERE status = '1' ORDER BY id DESC", function(err, items) {
- if (err) throw err;
- AcceptMobileOffer();
- if (items.length > 0) {
- items.forEach(function(item, i, items) {
- var user = db.query("SELECT * FROM users WHERE id = '" + item.user + "'", function(err, data) {
- if (!err) {
- data = data[0];
- if (typeof data.tradelink != "undefined" && data.tradelink != "") {
- var tradeLink = url.parse(data.tradelink, true);
- if (tradeLink.query.partner != "" && tradeLink.query.token != "") {
- offers.makeOffer({
- partnerAccountId: tradeLink.query.partner,
- accessToken: tradeLink.query.token,
- itemsFromMe: [{
- appid: 730,
- contextid: 2,
- amount: 1,
- assetid: item.weaponid
- }],
- itemsFromThem: [],
- message: 'Выигрыш с сайта: GDROP.RU!'
- }, function(err, response) {
- if (err) {
- console.log(err);
- db.query("UPDATE drops SET status = '4', message = 'Ошибка! Больше информации узнайте у администрации.' WHERE id = '" + item.id + "'");
- } else {
- db.query("UPDATE drops SET status = '3' WHERE id = '" + item.id + "'");
- }
- });
- } else {
- db.query("UPDATE drops SET status = '4', message = 'Ошибка! Не корректная ссылка обмена.' WHERE id = '" + item.id + "'");
- }
- } else {
- db.query("UPDATE drops SET status = '4', message = 'Ошибка! Не корректная ссылка обмена.' WHERE id = '" + item.id + "'");
- }
- }
- });
- });
- }
- });
- }
- var checkArrGlobal = [];
- function AcceptMobileOffer() {
- // Информация для мобильных подтверждений
- var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
- {
- steamid: config.bot.steamid,
- identity_secret: config.bot.identity_secret,
- device_id: device_id,
- webCookie: WebCookies,
- });
- steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations) {
- if (err) {
- console.log(err);
- return;
- }
- console.tag('SteamBot', 'MobileTrades').log('Wait Offers: ' + confirmations.length);
- if (!confirmations.length) {
- return;
- }
- steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result) {
- if (err) {
- console.log(err);
- return;
- }
- console.tag('SteamBot', 'MobileTrades').log('Accept result: ' + result);
- }).bind(this));
- }).bind(this));
- }
- function getErrorCode(err, callback) {
- var errCode = 0;
- var match = err.match(/\(([^()]*)\)/);
- if (match != null && match.length == 2) errCode = match[1];
- callback(errCode);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement