Jump to content
McKay Development

klonaway

Member
  • Posts

    9
  • Joined

  • Last visited

Reputation Activity

  1. Like
    klonaway reacted to cookie in Start making bot   
    easy on those hours buddy... you either have the capacity to understand programming or not.
  2. Like
    klonaway got a reaction from yellowish in Minimal code to stay logged in forever...   
    I have spent some time checking the node-steamcommunity GitHub wiki, and first of all : Dr. McKay, you are a hero for building up such an easy npm interface for the messy Steam API...
     
    I came up with some code to make sure I'm logged in almost 24/7 :
    // Modules are required and secret stuff is ready... function logOnSteam() { console.log("Logging in to Steam..."); steamCommunity.login(logOnOptions, function (e, sessionID, cookies, steamguard) { if (e) { console.log("There was an error logging in ! Error details : " + e.message); setTimeout(logOnSteam, 1000*60*4); // try to reconnect in 4 minutes return; } else { console.log("Successfully logged in as " + logOnOptions.accountName + " !"); steamCommunity.chatLogon(); // to appear online tradeOfferManager.setCookies(cookies, function (err) { if (err) { console.log(err); return; } }); } // automatic confirmation of EVERYTHING every "confirmationPeriod" ms steamCommunity.startConfirmationChecker(confirmationPeriod, identitySecret); }); } function checkSteamLogged() { steamCommunity.loggedIn( function (err, loggedIn, familyView) { if (err) { console.log(err); setTimeout(checkSteamLogged, 1000*60*4); // check again in 4 min } else if ( ! loggedIn ) { console.log("Steam login check : NOT LOGGED IN !"); logOnSteam(); } else { console.log("Steam login check : already logged in !"); } }); } steamCommunity.on('sessionExpired', function (err) { if (err) {console.log(err);} logOnSteam(); }); logOnSteam(); setInterval(checkSteamLogged, 1000*60*30); I guess this is enough to be safe... (unless I made some rookie mistake ?)
     
    This code is obviously the starting point for some TradeOfferManager handling, and I was wondering if I didn't go too far :
    if the 'sessionExpired' event is really triggered whenever we are not logged in, does it mean the 'checkSteamLogged()' function can be safely removed without harm ? '.startConfirmationChecker()' doesn't create a new instance each time it is called ? (I don't want to trigger 10 confirmations checkers leading to 10 times the intended check rate...) Thanks for any input !
  3. Like
    klonaway reacted to Dr. McKay in Minimal code to stay logged in forever...   
    1) I'd keep your login checker code in there. The manager will only notice that your session is gone when you try to send/accept an offer. Normal polling and canceling offers uses the WebAPI and your API key, so the session isn't actually used there.
    2) That's more than fine. 5 requests per minute is super low.
    3) You're correct, your first snippet generated the code once on boot. It ceased to be valid once you used it.
  4. Like
    klonaway reacted to Dr. McKay in Minimal code to stay logged in forever...   
    That all looks fine to me. sessionExpired is only emitted when a request you make fails because you aren't logged in. It doesn't check automatically, it only checks whenever the library makes a request somewhere.
     
    Starting a new confirmation checker without stopping the old one is just fine. It'll stop an old one if you call it while one is running.
     
    I recommend updating to v3.23.1 if you're going to use webchat.
×
×
  • Create New...