Will you find this script useful?
You can put really anything in there - even invalid domains, so long as somebody else hasn't already. Sorry if that's not clear in my instructions.
Edit: I've added more detail to that section in the original post.
Comment has been collapsed.
No worries, thanks for helping me improve the documentation. :) Hope you find the script useful!
Comment has been collapsed.
It worked great all week until the recent update. My current work laptop is antiquated but I also tried at home on Chrome and in Tampermonkey on Android and same result. It says checking but never actually checks anything. Any idea on what I could be doing wrong?
Comment has been collapsed.
I did something wrong. My minor fixes were not necessary, and I guess not so minor, so I've reverted back the the previous version. You may have to force trigger an update in your script extension. Sorry about that, but thanks for the heads up!
Comment has been collapsed.
Running .16, and when I go to a group and enter a game ID, it returns the same number for who owns/wants. I've tried multiple games, and it always returns the who owns number regardless of which button I press. The group wishlist shows only 2 people have it on wishlist, but your script says 62 have it wishlisted (same as owns number).
Comment has been collapsed.
Are you a new user, or did this work for you on previous versions?
I've had reports of similar things happening, but I've always had trouble tracking down the issue. Just to make sure, have you tried clearing the cache from within the menu?
Comment has been collapsed.
I've been using it for a while, and the numbers never used to match each other for owns/wants. I went to use it the other day, and it said there was an upgrade so I said OK. I ended up on .15 and it broke it. Today I looked and it was up to .16 so I gave it a try again, and that's when I started having the problem. I tried the reset cache button, but no change.
Comment has been collapsed.
Can you force a factory reset for my script using your script loader? In doing so, you'll need to re-enter your API key.
I use Tampermonkey, and there's an option in the dashboard to do this. For Greasemonkey/others, I'm not sure how to go about doing this.
Comment has been collapsed.
I did the factory reset, and re-entered my key. When I first went back in, it was producing unique numbers for owns/wants, but comparing the "want" numbers to the group wishlist numbers provided by SG didn't match. There are 2 groups that say 2 people have a certain game on their wishlist but your script was saying there were zero in both groups. I kept trying 2 different groups with different APPIDs, until I tried 622020, which resulted in 63 own 63 want in a 126 person group. After that all checks gave own=want for every check just like before.
I did a factory reset again and it went back to giving unique numbers, but "want" numbers still not matching SG group wishlist numbers. I've tried to get it to "corrupt" again (where it gives equal numbers for both) but it hasn't. I thought maybe that specific ID of 622020 was the problem so I tried it again, but it didn't produce the problem. Still not giving valid numbers though even though they are unique.
Comment has been collapsed.
Unfortunately, I can confirm that there is something wrong. More so, I'm not sure what it is at this point.
Thanks for the report, I'll look further into it.
EDIT:
It appears the new Steam Wishlist may be to blame. Working on it.
EDIT 2:
That was definitely it. I have changed the check and tested a handful of times with results matching the SG number. You may have to do one more cache reset to see the changes after updating.
Comment has been collapsed.
I told Tampermonkey to check for updates - updated to .17. I did a factory reset of the script and closed the browser. Fired back up, went to SG and went to a group (Pandora). Opened checker and reset cache. Entered Steam API key, and 3800 for App ID - comes back as 32 want/32 have. Tried App ID 622020 - comes back as 63 want/63 have. Both of those should be showing 2 on wishlist according to SG. I have no way of knowing how many actually own.
I tried factory reset and reset cache multiple times, but I can't get rid of this state now. I was going to ask if I can roll back to .14, before the problems started, but I guess if the new Steam WL is an issue, that's not even an option.
Comment has been collapsed.
Bugger. The 0.16 was a rollback and was actually identical to 0.14, so that wouldn't fix it.
I've checked those appIDs and a few others for a few grpups, but can't seem to reproduce. I'm not part of the Pandora group, so I can't just see it on SG. Mind throwing me a link so I can test that specifically?
Also, the API works under these conditions:
GetOwnedGames returns a list of games a player owns along with some playtime information, if the profile is publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for your own personal details (ie the WebAPI key you are using is linked to the steamid you are requesting).
Are there any/a lot of private profiles in the mix there? (I'll check myself if you provide the link).
Comment has been collapsed.
Not sure I'm clear on what link you want, but hopefully you meant to the group's user list screen, where I would do the check from.
https://www.steamgifts.com/group/MGNEs/welcometopandorakid/users
Comment has been collapsed.
Looking only at Pandora...
For 622020, I see
For 3800, I see
Again, generally testing multiple app IDs for multiple groups, I'm not running into this. I believe you that you're having trouble, but I'm not able to replicate. To cover all the bases, regardless of how likely they are to be the cause...
Comment has been collapsed.
Just to talk it out 'aloud'...
I'm really confused by this problem. It's probably something simple and stupid that I'm overlooking, but I just can't figure it out. First off, the problem for me did not appear until I myself cleared the cache. Now that I have, I can reproduce every time I run for anything.
The script uses two separate, distinct caches, with two distinct cache variables. USER_OWN_DATA
and USER_WISH_DATA
for interacting with the caches (checking for existing values, adding new ones, etc.), and SG_WL_Inventory_user_own_data
and SG_WL_Inventory_user_wish_data
for storing and retrieving the data using GM_getValue()
and GM_setValue()
.
When the cache is cleared (via resetCache()
), the following code is called:
GM_deleteValue(keyStorageOwnData);
GM_deleteValue(keyStorageWishData);
USER_OWN_DATA = null;
USER_WISH_DATA = null;
which resets all of the above.
Before each call (either to the ownership check or the wishlist check), the script looks for already existing caches. In both instances, I have an output logging that the cache does not exist (after a reset), yet subsequent steps to check for a user in the non-existent cache find a value. It's not (as far as I can tell) loading the ownership cache into the wishlist cache or vice versa.
I'm still looking into this, but I'm stuck at the moment. Sorry for the wall of text. I was hoping that talking it out would have helped me figure something out, but I don't think it has worked.
Comment has been collapsed.
I thought that maybe the recent Valve change that changed the wishlist, was messing with your grabs, resulting in unexpected data in your cache which subsequently caused the parsing for the GUI to be incorrect. However if issuing a query on an empty cache, produces results well...........???
Comment has been collapsed.
Im also having same problem. When checking Pandora with ID 622020 I get 2 on both want and owned.
I did the facory restet. Using Firefox and tampermonkey.
Comment has been collapsed.
Ok, I started from scratch again, tried this group for 622020, and ended up with 31/31, so I'm kind of getting the same thing. I'll have another look.
Sorry for the trouble.
Comment has been collapsed.
Hey Gaffi
I tried using the script on my WL today but for some reason it doesn't work. Doesn't load the game name, stays stuck on "checking" but nothing happens. I still manage to run it without issue on my groups. Just not working with the WL. Anything I should do to try and fix the issue? Reinstall maybe?
Comment has been collapsed.
What's the game? Is it a sub vs. a normal app id? Have you tried clearing the cache? (There is another bug I'm sitting on right now that is generally fixed by resetting)
Comment has been collapsed.
Tried with several games and I get the same result. Cleared the cache and reinstalled the script. My version of firefox is quite old though so I'll try on Chrome on my other laptop tomorrow and I'll let you know if there's a change. Thanks for the reply.
Comment has been collapsed.
OK. If you're still having trouble, can you post a bit of the console log? There may be a specific user in your WL that's to blame.
Comment has been collapsed.
Tried in Chrome on my gaming laptop. Same issue. Sure, I can post a bit of the console log if you tell me how to get it lol. Remember I'm a script n00b;
Edit: I figured it out (yay) so here's what I get
TypeError: row.getElementsByClassName(...)[0] is undefined[Learn More] whitelist%20line%203%20%3E%20Function:170:45
checkHasGameInData moz-extension://d259f166-d4a5-40e8-b1ab-a38b10c49bd7/userscript.html:170:45
readAllUserPages/<.onload moz-extension://d259f166-d4a5-40e8-b1ab-a38b10c49bd7/userscript.html:1021:9
f</< https://www.steamgifts.com/account/manage/whitelist:2:477
anonymous/Y</<.of/J/l/< https://www.steamgifts.com/account/manage/whitelist%20line%201%20%3E%20Function:31:307
Comment has been collapsed.
That's helpful, thank you!
I've sent you a request on Steam, since it's generally easier to communicate that way. In the meantime, are you using any other scripts that may be interfering? I'm thinking something that changes the format or look and feel of pages.
Comment has been collapsed.
Google Chrome 65.0.3325.181 (Official Build) (64-bit)
Tampermonkey v4.5
SteamGifts Library Checker 0.17 + 2 other scripts deactivated
Tried several Steam ids, same games that I successful checked last time I used it (Mar 19th) and same groups.
Game name appears but the output field is stuck at "Checking group users..." and nothing happens.
Reset cache: done (or at least I clicked, I don't know if it actually did it then), nothing changes.
Copy-paste API again: it changes a lot, don't know if it's good or bad but now it says after some seconds "There was an error loading data from Steam. This could be a server or API problem. Please try again. If you cannot resolve, please report the error. Thanks!"
Maybe this is just a temporary problem? In case it's not and you need the console output, feel free to add me on Steam because it's quite long.
Comment has been collapsed.
All Steam-links were changed to https which broke the script. Changing following lines fixes it ^^
175
var searchString1 = 'href="https://steamcommunity.com/profiles/';
276
var link = 'https://steamcommunity.com/profiles/' + steamID + '/wishlist';
462
var link = "https://store.steampowered.com/api/appdetails?appids="+appID;
Additional bug-fix:
When using the script after searching for a user in a group page it uses a wrong url and won't work.
910
groupURL = window.location.href.slice(0,indexUsers) + '/users/search?page=';
-
I've also implemented the inactive users ignore feature ^^
add before lines:
1247
if( inactive > 0 )
document.getElementById('SGLCdlg-output').value += "\r\n" + inactive + " inactive users ignored.";
1246
if( inactive > 0 )
totalScanned -= inactive;
1017
if( rows[i].className != "table__row-inner-wrap is-faded")
inactive+=1;
totalScanned+=1;
else
30
var inactive = 0;
I put the whole script here for quick copy:
https://pastebin.com/rQgCAd2f
Comment has been collapsed.
Awesome. Thanks for the bug fixes. :) I'll post soon.
Comment has been collapsed.
Got it, published to 0.19. Thanks a ton for your help!
If you ever feel like tinkering more, you're more than welcome to do so directly on the github page. ;)
Comment has been collapsed.
Line 13
// @match http://store.steampowered.com/app/*
Maybe should be turned to:
// @match https://store.steampowered.com/app/*
because it didnt work before in the steam store.
i think steam goes to https by default now.
/edit
Interesting. If i am logged in it goes to https if i am not it goes to http;
Can you check out the difference an make the script change it's behavior accordingly?
/edit
Comment has been collapsed.
That is interesting. From the script's perspective, it shouldn't matter if you are logged in or not, or whether you're secure or not. I'll see if I can't fix that up.
Thanks for the feedback!
Comment has been collapsed.
Yup. Thanks for the tip. I've adjusted to http*://
, since I can't imagine wanting to deal with FTP. :P
Comment has been collapsed.
Works for me, so I don't see any problem! /s
I'll get that fixed ASAP. Thanks for the report!
Edit: should be fixed now.
Comment has been collapsed.
Comment has been collapsed.
Huh. That's a new one. Which browser/extension are you using? I just tried to reload on my end and had no warning.
Comment has been collapsed.
Chrome; Version 65.0.3325.181 (Official Build) (64-bit)
Stock
.. or do I need extension of some kind?
Comment has been collapsed.
Yeah, you're going to want to pick up TamperMonkey to use this (or any other scripts) for SG. :)
Comment has been collapsed.
Yaay!
Once done, you'll receive your API key. Plug this value into the appropriate field on the script's form and the rest should work without needing to re-enter it in the future.
dunno which one is the right one, but I entered it on line #27 (apiKey = null), where i entered id over "null"
then it did not work - Check game ownership and SG Check buttons disappeared
when I changed that row back to "null" and entered my ID once at random steam app page, all is good
Comment has been collapsed.
The API key should be a long hex (A-F, 0-9) string, presented to you in all caps. Do not share your code, but are you sure you used the right one?
Comment has been collapsed.
Yeah, I got it from https://steamcommunity.com/dev/apikey
but nevertheless it is working right now (as it should be, I guess)
¯_(ツ)_/¯
Comment has been collapsed.
This is an excellent script.
However, I am having the problem that both the "Who Has" and "Who Wants" is coming up with the same values (results) which can not be correct. For instance, I enter 317620 (Space Hulk Ascension) and it comes up that both 66 of 89 have and 66 of 89 want the game. Obviously, if you add those two figures together it comes out to more than the number of users in the group. Not sure if it is a script bug, or something on my end causing it. And I have tried to utilize the Clear Cache to resolve, but it makes no difference. Any input would be appreciated. Same results situation occurs for every game I check (each game having different results from each other, but Have and Want are both the same for each one).
Comment has been collapsed.
Unfortunately, I know about this, and it is something on my end, but haven't gotten around to cleaning it up/I don't fully understand why it's happening.
I'm not sure why your cache clearing isn't doing the trick, as it generally seems to work for me.
Comment has been collapsed.
Could you simplify it to be just a single scan that collects both Have and Want at the same time and then displays both results rather than having two separate scans?
Hopefully, this is helpful and an idea to streamline the script.
Comment has been collapsed.
Thanks for the heads up. I read that was needed and was actually in the process of testing it when you replied.
It did work after both the Clear Cache and a Refresh (F5) was done before rescanning.
Can pressing the "Clear Cache" button be made to force a Refresh as well?
Comment has been collapsed.
51 Comments - Last post 51 minutes ago by battlesxr
71 Comments - Last post 1 hour ago by Kegfarms
47 Comments - Last post 1 hour ago by UnbakedBacon
5 Comments - Last post 3 hours ago by NobleGamer
86 Comments - Last post 3 hours ago by Gamy7
18 Comments - Last post 3 hours ago by Gamy7
2,007 Comments - Last post 7 hours ago by Wok
23 Comments - Last post 9 seconds ago by DeliberateTaco
85 Comments - Last post 14 seconds ago by Silentrets
39 Comments - Last post 29 minutes ago by FranckCastle
43 Comments - Last post 35 minutes ago by spodamayn
34 Comments - Last post 52 minutes ago by Raggart
65 Comments - Last post 1 hour ago by AKSH
8,922 Comments - Last post 1 hour ago by CurryKingWurst
SteamGifts Library Checker
Who has that game already? Who really wants it?
UPDATE:
I'm discontinuing support for this. I haven't had time, energy, or drive to focus on it, including some of the ever present functional bugs.
If you are looking to continue using the script, I won't disable it, but no guarantee it will work forever. You can always make your own fork if you are so inclined, but...
If you want another option, ESGST has nearly the same functionality and is much better supported (and has a plethora of other features baked in as well).
What's this about?
I was looking to give away some games to my whitelist and, to make it as worthwhile a giveaway as I could, I wanted to see how many people already had the game. If everyone on my list had it, it wouldn't be worth giving. Likewise if only 10 out of the list really wanted it (wishlisted), that's still not doing the greatest service to those on my list. There was no way I was going to manually look up every user to find out if the GA was going to be worth it.
I looked to see if there were any scripts out there to do this for me, but alas, there were none, so I set out to fix that. A few days into the process, someone else on the forums asked for the same thing. Well, that kicked me into higher gear to make something useful for anybody else who wanted this functionality, and at this point, I think it's ready to show. It may not be 100% yet, but good enough probably for most.
As the script has gotten use, there have been a few different additional suggestions for improvement and I've been trying to add them all in. I will continue to add features based on your feedback!
What does it do?
The script will scan through your whitelist or a group for an appID (only one game at a time, and no subs at this point), and report a count of how many in that list have it or want it, and what the ratio to the overall list size is. It will work from any active page of your WL or group page on SteamGifts, or from the Steam store for that particular app.
It will also work with m0l0's Whitelist Wishlist and Tools with no (obvious) conflicts, though your header may get a little crowded if you use both.
Steam API Key
The script uses the Steam API key (you can get yours here). From the Steam site, you can enter any value you like into the domain field (even invalid domain names), so long as nobody has already used it. Once done, you'll receive your API key. Plug this value into the appropriate field on the script's form and the rest should work without needing to re-enter it in the future. If there are errors, the script may prompt you to enter the API key again. If you've lost it, the API key should still be accessible to you via the link above.
Stop blabbing and let me at it!
You can get to the script HERE, and it should auto-update when I post changes, based on your userscript tool's update scheme.
How to use from SteamGifts:
How to use from Steam store:
Changes/Updates
/search?q=
page. Thanks, Tristar.@match
parameter from"http*://"
to simply"*://"
as the former worked with TamperMonkey, but not GreaseMonkey. (Thanks, Corran!)http
tohttps
in a few instances.Plans
Compatibility?
I have only personally tested on Chrome with Tampermonkey, but should also work with anything else.
If you use the script under other configurations, please let me know (whether there are issues or not!) so I can make a note of it. Also, if you find any bug, problems, or miscellaneous weirdness, please report them on the GitHub issue log.
Other feedback
If you have any other comments, suggestions, or other feedback, please share! I want to make this as useful and user-friendly as possible for all of you.
One last thing
I need to give a shout out to a few users in particular here:
Thanks guys!
Thanks also to everyone else who has offered suggestions for improving and whatever other feedback you have provided! I'm am slowly but surely adding in what I can and I appreciate the support from the community. <3
Comment has been collapsed.