Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- username = 'testbot'; // Username of bot
- password = 'testbot123'; // Password of bot
- // included variables
- var steam = require('steam');
- var steamtrade = require('steam-trade');
- var winston = require('winston');
- var readline = require('readline');
- var fs = require('fs');
- // application id helper
- var appid = { TF2: 440, Steam: 753 };
- // context id helper
- var contextid = { TF2: 2, Steam: 6 }
- // So we only enter one trade at a time
- var inTrade = false;
- // Make inventory global
- var myBackpack;
- // Used for steamguard codes
- var rl = readline.createInterface({ input: process.stdin, output: process.stdout });
- // Sets logging to console
- var logger = new (winston.Logger)({
- transports: [
- new (winston.transports.Console)({
- colorize: true,
- level: 'debug'
- }),
- new (winston.transports.File)({
- level: 'info',
- timestamp: true,
- filename: 'cratedump.log',
- json: false
- })
- ]
- });
- // starts Steam client and trading library
- var client = new steam.SteamClient();
- var trade = new steamtrade();
- // Library of steam servers
- if(fs.existsSync('servers.json')) {
- steam.servers = JSON.parse(fs.readFileSync('servers.json'));
- }
- // Uses saved sentry file if there is one
- var sentryfile;
- if(fs.existsSync('sentryfile.' + username + '.hash')) {
- sentryfile = fs.readFileSync('sentryfile.' + username + '.hash');
- }
- // Logs in
- client.logOn({
- accountName: username,
- password: password,
- shaSentryfile: sentryfile // If null, a new Steam Guard code will be requested
- });
- // If Steam returns an error it is emitted
- client.on('error', function(e) {
- // Error code for invalid Steam Guard code
- if (e.eresult == steam.EResult.AccountLogonDenied) {
- // Prompt the user for Steam Guard code
- rl.question('Steam Guard Code: ', function(code) {
- // Attempt to log in again
- client.logOn({
- accountName: username,
- password: password,
- authCode: code
- });
- });
- } else { // For simplicity, we'll just log anything else.
- logger.error('Steam Error: ' + e.eresult);
- // Steam sometimes returns InvalidPassword (5) for valid passwords
- // Just try logging in again, that usually corrects this issue
- }
- });
- // If a Steam Guard code is entered, sentry event goes off.
- client.on('sentry', function(sentry) {
- logger.info('Got new sentry file hash from Steam. Saving.');
- fs.writeFile('sentryfile.' + username + '.hash', sentry);
- });
- // following a successful login
- client.on('loggedOn', function() {
- logger.info('Logged on to Steam');
- // Rename bot on login if you want
- client.setPersonaName("CrateDumpBot");
- // Doesn't show as online until ready
- client.setPersonaState(steam.EPersonaState.Offline);
- });
- /* Now you should be logged in but set to show as offline
- * We haven't logged into the web yet * Steam hands us an ID before we can use the API.
- * Our Trading library requires the session ID and cookie,
- * so we have to wait for the following event to be emitted.
- */
- client.on('webSessionID', function(sessionid) {
- trade.sessionID = sessionid; // Shares session between libraries
- client.webLogOn(function(cookie) {
- cookie.forEach(function(part) { // Shares cookies between libraries
- trade.setCookie(part.trim()); // Now we can start trading!
- });
- logger.info('Logged into web'); // You will appear as online now
- client.setPersonaState(steam.EPersonaState.LookingToTrade);
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement