const SteamUser = require('steam-user');
const SteamTotp = require('steam-totp');
const SteamCommunity = require('steamcommunity');
const TradeOfferManager = require('steam-tradeoffer-manager');
const config = require('./config.js');
let winston = require('winston'); // For logging
const client = new SteamUser();
const community = new SteamCommunity();
let logger = winston.createLogger({
transports: [
new (winston.transports.Console)({
colorize: true,
level: 'debug'
}),
new (winston.transports.File)({
level: 'info',
timestamp: true,
filename: 'cratedump.log',
json: false
})
],
});
const manager = new TradeOfferManager({
steam: client,
community: community,
language: 'en'
});
const logOnOptions = {
accountName: config.username,
password: config.password,
twoFactorCode: SteamTotp.generateAuthCode(config.shared_secret)
};
client.logOn(logOnOptions);
client.on('loggedOn', () => {
logger.info("Logged into Steam");
client.setPersona(SteamUser.Steam.EPersonaState.Online);
client.gamesPlayed(740);
});
client.on('webSession', (sessionid, cookies) => {
manager.setCookies(cookies, (err) => {
if (err) {
logger.error('Unable to set trade offer cookies: ' + err);
process.exit(1); // Fatal error since we couldn't get our API key
return;
}
logger.info("Trade offer cookies set. Got API Key: " + manager.apiKey);
});
community.setCookies(cookies);
});
manager.on('pollFailure', (err) => {
console.log(err);
logger.error("Error polling for trade offers: " + err);
});
I use this.