-
Posts
98 -
Joined
-
Last visited
Everything posted by Revadike
-
I've gotten my hands on a large number of steam keys of games I don't own, and I did some precise testing for key redeeming limits. Here are my results: Per 60 minutes: Limit of 50 activation attempts (result = fail OR ok), but 10 activation fails limitCooldown of 60 minutes starts after the activation that hit the limitSo, for example, within an hour you will get rate limited after 45 OK and 5 Failed activations.
-
getGemValue just calculates how many gems you will get for an item after using turnItemIntoGems. You can use them both independently.
-
So, I am trying to do some curator stuff with node-steamcommunity. However, for some reason, my simulated requests failed. For example: const formdata = { sessionid: community.getSessionID(), clanid: offer.clanid, appid: offer.appid, action: `accept` }; user.once(`webSession`, () => community.httpRequestPost({ url: `https://store.steampowered.com/curator/${offer.clanid}/admin/ajaxrespondoffer`, form: formdata, // jar: jar, headers: { // ":authority": `store.steampowered.com`, // ":method": `POST`, // ":path": `/curator/${offer.clanid}/admin/ajaxrespondoffer`, // ":scheme": `https`, "Accept": `*/*`, "Accept-Encoding": `gzip, deflate, br`, //"accept-language": `nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7`, "Content-Length": `77`, "Content-Type": `application/x-www-form-urlencoded; charset=UTF-8`, "Cookie": community._jar.getCookieString(`https://store.steampowered.com`), "DNT": `1`, "Origin": `https://store.steampowered.com`, "Referer": `https://store.steampowered.com/curator/${offer.clanid}/admin/pending`, //"user-agent": `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36`, "X-Requested-With": `XMLHttpRequest` } }, acceptedCuratorConnectOffer)); user.webLogOn(); I tried to experiment with headers, but that doesn't seem to do anything. Could it be because of https? Or protocol being h2?
-
You can do it with steam-user: const steamid = 123456; client.getPersonas([steamid], personas => { console.log(personas[steamid].game_name); // Non-steam game name });
-
Checking if a steam64 id is your friend?
Revadike replied to QuestionRealQuick1's topic in node-steamcommunity
Assuming you are logged in (user = steam-user instance, steamid = steamid64): function isSteamFriends(steamid) { return Object.entries(user.myFriends).filter(e => e[1] === SteamUser.Steam.EFriendRelationship.Friend).map(e => e[0]).includes(steamid); } -
callback for webLogOn? How about: client.once(`webSession`, () => { // Now you should be able to do all your steamcommunity related stuff safely }); client.webLogOn();
-
Question about getting logged off after some time (days)
Revadike replied to mar71n's topic in node-steam-user
If you are using node-steamcommunity functions not that often, you can do this: client.once(`webSession`, () => { // Now you should be able to do all your steamcommunity related stuff safely }); client.webLogOn(); -
I'd simply just use `setTimeout` for removing a friend after a week. But that assumes your script/bot keeps running. You can also use the API endpoint https://api.steampowered.com/ISteamUser/GetFriendList/v1/ and remove friends based on `friend_since` property.
-
Any idea what properties proxies should have to work well with steam? What's the difference between paid and free ones? Is steam actively blocking free/public proxies?
-
https://github.com/DoctorMcKay/node-steamcommunity/wiki/CSteamUser#getinventoryappid-contextid-tradableonly-callback https://github.com/DoctorMcKay/node-steamcommunity/wiki/SteamCommunity#turnitemintogemsappid-assetid-expectedgemsvalue-callback
-
https://github.com/DoctorMcKay/node-steamcommunity/pull/188
-
Dr. McKay, I've noticed if you use HTTPS for store.steampowered.com, you will get a ACCESS DENIED html response (403). Can you look into this?
-
Yes, I know about the friends requirement that has been implemented recently. Inviting using node-steam-user works, but not using node-steamcommunity. There must be some issue there.
-
I have the same problem. Every time! I'm inviting as soon as we are friends. Maybe that's the problem? Maybe we need to be friends for an x period of time? What do you think?
-
Please check: - https://github.com/DoctorMcKay/node-steam-user/issues/112 - https://github.com/DoctorMcKay/node-steam-user/issues/128 Thanks
-
Question Logging in anonymously and relogging with an account
Revadike replied to lad's topic in node-steam-user
Just simulate the network request using https://github.com/DoctorMcKay/node-steamcommunity/wiki/HTTP-Hooks -
We are not here to code for you buddy
-
Question GetOwnedApps & Steam Family Sharing
Revadike replied to Revadike's topic in node-steam-user
I want to get back to Steam Family Sharing behavior. Let me explain how it works. Let there be a steam user, called the host, on a device (PC) with shared libraries, called the host device. As long as the host is logged in to that host device, Steam will make all the shared games available to any device on any network where the host is logged in. Don't ask me why Steam is doing this, but some speculate it has something to do with Steam streaming. Anyway, this can cause GetOwnedApps to also include shared games. Now, I came up with a method that can exclude shared games. You could query store.steampowered.com/dynamicstore/userdata/?v=VERSION to get the owned games (and packages) that guaranteed aren't shared and use the 'v' parameter to get the most up-to-date list. However, this may belong more to node-steamcommunity, as it uses web API, but I leave that choice to you. If you decide to include into steam-user, you could add an options-object or a boolean for getOwnedGames, to exclude Family Shared Games, through this method. Do you rather want me to open an issue about this on GitHub?- 17 replies
-
- node.js
- node-steam-user
- (and 5 more)
-
I'll tell you a valid use-case. If this gets implemented, it opens opportunities for games to download, install, update, and validate entire apps, like SteamCMD does with "app_update -validate". It will be very useful for dedicated server operators, but there are many other applications.
- 3 replies
-
- node.js
- node-steam-user
-
(and 4 more)
Tagged with:
-
So, I am trying to download all .manifest files of all my owned games. Here is the snippet that should do this: client.once("appOwnershipCached", function() { console.log("appOwnershipCached"); client.getProductInfo(client.getOwnedApps(), [], function(apps) { console.log("gotProductInfo"); apploop: for (appid in apps) { depotloop: for (depotid in apps[appid].appinfo.depots) { if (!isNaN(parseInt(depotid))) { //is key the depot id? manifestloop: for (type in apps[appid].appinfo.depots[depotid].manifests) { var manifestid = apps[appid].appinfo.depots[depotid].manifests[type]; client.getRawManifest(parseInt(appid), parseInt(depotid), manifestid, function(error, manifest) { if (!error) { //console.log(manifest); fs.writeFile(path.join(__dirname + "/" + depotid + "_" + manifestid + ".manifest"), manifest, "utf8", function(error) { console.log(error); }); } }); break apploop; //limit to 1 manifest for now } } } } }); }); But the .manifest file I get isn't quite the same as the original downloaded directly from Steam. I suspect because the filenames are encrypted with my .manifest file. The problem is though, there is no feature that decrypts the filenames without parsing the raw manifest into an JSON object. Is this the problem? Or is it something else? Should I do something differently? Thanks 11_3149618157612033597.manifest.zip
- 3 replies
-
- node.js
- node-steam-user
-
(and 4 more)
Tagged with:
-
Issue to relog for bot, especially on tuesday maintenance
Revadike replied to nikoF's topic in node-steam-user
So, is there any way to refresh the web session with callback? -
Issue to relog for bot, especially on tuesday maintenance
Revadike replied to nikoF's topic in node-steam-user
Sorry to hijack this thread, but speaking of web session. I'm using pretty much the same code as above. But my purpose is to post to my friend activity, which I am doing like this: var profileurl = "http://steamcommunity.com/"; if (vanityname) { profileurl += "id/" + vanityname; } else { profileurl += "profiles/" + client.steamID.getSteamID64(); } var formdata = new Object(); formdata.sessionid = community.getSessionID(); formdata.appid = SOMEAPPID; formdata.status_text = SOMEMESSAGE; setTimeout(function() { community.httpRequestPost(profileurl + "/ajaxpostuserstatus/", { formData: formdata, followAllRedirects: true }, function(error, response, data) { var success, json; try { json = JSON.parse(data); success = json.success; } catch (e) { success = false; } console.log(response.statusCode, success); if (error) { console.log(error); } }); }, 1000); This all works fine when I recently login. All friend activity posts will return "200 True", but after a while it only returns "200 False". I suspect the web session has expired or something, but how can that be when I use the same code as above? Any other solutions maybe? Maybe somehow refresh web session each time I want to post something, but how? -
Question GetOwnedApps & Steam Family Sharing
Revadike replied to Revadike's topic in node-steam-user
Well, I am not using any sentry file to my knowledge, but I am sharing the node.js program with SteamCMD. Anyway, I've seen this behavior before, it happens to devices sharing the same network and steam account as the PC with all the shared games. Actually, it even happens across networks. All the shared games are available.- 17 replies
-
- node.js
- node-steam-user
- (and 5 more)