Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- var SteamUser = require('steam-user');
- var CMClient = require('steam-client').CMClient;
- var SteamCommunity = require('steamcommunity');
- var SteamTotp = require('steam-totp');
- var TradeOfferManager = require('steam-tradeoffer-manager');
- var fs = require('fs');
- var request = require('request');
- var ip = require('ip');
- botAccount.prototype.__proto__ = require('events').EventEmitter.prototype;
- function botAccount(accountDetails) {
- var self = this;
- self.CMClient = new CMClient();
- self.CMClient.bind(accountDetails.ipAddress);
- self.steamClient = new SteamUser(self.CMClient);
- self.steamCommunity = new SteamCommunity({localAddress: accountDetails.ipAddress});
- self.accountManager = new TradeOfferManager({
- "steam": self.steamClient,
- "community": self.steamCommunity,
- "apiKey": accountDetails.api,
- //"domain": "localhost",
- "language": "en",
- "pollInterval": accountDetails.pollInterval || 20000,
- "cancelTime": accountDetails.cancelTime || 1800000,
- "pendingCancelTime": 120000
- });
- self.accountDetails = accountDetails;
- if (fs.existsSync('./polldata/polldata_'+self.accountDetails.accountName+'.json')) {
- self.accountManager.pollData = JSON.parse(fs.readFileSync('./polldata/polldata_'+self.accountDetails.accountName+'.json'));
- }
- self.steamClient.on('loggedOn', function(details) {
- self.steamClient.setPersona(1);
- self.emit('loggedOn', details);
- /*self.steamCommunity.httpRequestGet('https://api.ipify.org?format=json', function(err, response, body) {
- console.log(self.accountDetails.ipAddress, body);
- });*/
- });
- self.accountManager.on('unknownOfferSent', function(offer) {
- self.emit('unknownOfferSent', offer);
- });
- self.accountManager.on('sentOfferChanged', function(offer, oldState) {
- self.emit('sentOfferChanged', offer, oldState);
- });
- self.accountManager.on('receivedOfferChanged', function(offer, oldState) {
- self.emit('receivedOfferChanged', offer, oldState);
- });
- self.accountManager.on('newOffer', function(offer) {
- self.emit('newOffer', offer);
- });
- self.accountManager.on('pollData', function(pollData) {
- fs.writeFile('./polldata/polldata_'+self.accountDetails.accountName+'.json', JSON.stringify(pollData));
- });
- self.steamClient.on('webSession', function(sessionID, cookies) {
- console.log('WEB SESSION');
- self.steamCommunity.setCookies(cookies);
- self.steamCommunity.startConfirmationChecker(10000, self.accountDetails.identitySecret);
- self.accountManager.setCookies(cookies, function(err) {
- if (err) {
- console.log(err);
- process.exit(1);
- return;
- }
- self.steamCommunity.startConfirmationChecker(10000, self.accountDetails.identitySecret);
- console.log("Got API key: " + self.accountManager.apiKey);
- });
- });
- self.steamCommunity.on('sessionExpired', function() {
- console.log('EXPIRED');
- self.steamClient.webLogOn();
- });
- setInterval(function() {
- self.steamClient.webLogOn();
- }, 900000);
- };
- botAccount.prototype.loginAccount = function() {
- var self = this;
- self.generateAuthCode(function(twoFactorCode) {
- self.accountDetails.twoFactorCode = twoFactorCode;
- //self.accountDetails.rememberPassword = true;
- //self.accountDetails.logonId = 100;
- self.steamClient.logOn(self.accountDetails);
- });
- };
- botAccount.prototype.generateAuthCode = function (callback) {
- var self = this;
- request('http://'+ip.address()+':1666/code/'+self.accountDetails.accountName, function (error, response, body) {
- callback(body.toString('utf8'));
- });
- };
- botAccount.prototype.getDisplayName = function (callback) {
- var self = this;
- return (self.accountDetails.hasOwnProperty("displayName") ? self.accountDetails.displayName : null);
- };
- botAccount.prototype.fromInvidualAccountID = function (steamID, callback) {
- return new TradeOfferManager.SteamID.fromIndividualAccountID(steamID);
- };
- module.exports = botAccount;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement