Author Topic: Steam protocol  (Read 121549 times)

0 Members and 2 Guests are viewing this topic.

Offline SpinalBlood

Re: Steam protocol
« Reply #480 on: 08 12 2017, 13:37:14 »
The first update didn't work but I didn't post in time, the second update indeed worked. Thank you guys!  :THUMBS UP:

Ratha: period was present indeed too, and the secondary account had a standard username (no email)

I honestly can't remember if at the time the mail as username was a must, but it might have been since normally I would prefer a standard username... I think I created Steam in september 2003 (I guess not long after Steam itself was created, lol)
« Last Edit: 08 12 2017, 13:42:12 by SpinalBlood »
 

Offline Ratha

Re: Steam protocol
« Reply #481 on: 16 12 2017, 10:06:26 »
Has anyone else noticed that Miranda has had trouble showing what game someone is playing when you hover over their name/controller icon in the playlist? (Classic Clist + Tipper) (Probably affects modern too)

I tested old versions going back to Build 0.95.6.17252 and updated to 0.95.8.18995 just to make sure it wasnt a bug in a recent version (it didnt seem to be) but now most of my contacts seem to display this problem. I dont remember ever having this issue on such a large scale in the past except for when someone was playing multiple games at a time. (I asked and a few friends and they were not running two games at once.) I had 14 contacts that were in a game, and only 4 of them showed any XStatus message that was more than just "XStatus: Playing" to indicate either what game they were playing OR what server they were on. (None of the contacts that showed what server they were on also showed what game they were playing, and most contacts didnt even show the game at all.)

I tried capturing a netlog, but it does not update with new info when i hover over one of my contacts to get data about what they're playing. Either for a contact that does display properly or a contact that does not. I checked with a contact that displays properly and one that does not and they're both using the non-beta steam client. They're both using Mobile Auth on their accounts. I've tried logging off and then back onto Steam via Miranda and the same contact still shows what hes playing while everyone else pretty much does not. Ive checked the database to compare entries and the GameID always matches the XStatusId. The "Status" is sometimes different but does not seem to be an indicator of working versus not working, neither does the "State Code" Miranda seems to be able to see the GameID for each contact, its just not updating the XStatusMsg with the game's name thats linked to the ID.

The contact whose game does display properly seems to update properly, and the contact who does not display game data does not update properly, even if he plays the same game as the one that updates properly, and even if he logs on/off and or restarts steam. The Steam client and the Steam website both seem to show what they're playing without any issue. I have some very unorganized netlogs but have not determined if they contain useful information / am not sure that I captured the contact who seems to update their game message when he was transitioning from game to game, versus one who didnt. (Its difficult to get that when they're busy playing.)

Do any of you have any ideas of what else to test / capture to try and diagnose this issue? Can anyone else confirm that they have this issue?

Part of the Database entry for contact that properly displays (Name: Run):
Status 0x9c88 (40072) [40072 appears to mean "Online"]
XStatusId 0x0003A570 (238960)
XStatusMsg Path of Exile
XStatusName Playing

Part of the Database entry for the contact that does not show properly (Name: Vae):
Status 0x9C89 (40073) [40073 appears to mean "Away", but contact was "Online" during testing.]
XStatusId 0x0005E77C (386940)
XStatusMsg [no xstatus message being displayed, should show "Ultimate Chicken Horse"]
XStatusName Playing

VersionInfo
CPU: Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz [Intel64 Family 6 Model 60 Stepping 3] [DEP Enabled] [4 CPUs]
Installed RAM: 24521 MBytes
Microsoft Windows 7 Ultimate Edition, 64-bit Service Pack 1 (build 7601)
Internet Explorer: 9.11.9600.18665 (build 99600)
Administrator privileges: Yes
OS Languages: (UI | Locale (User/System)) : English/English | English/English
Free disk space on Miranda partition: 111516 MBytes

Miranda NG Version: 0.95.8 alpha build #18995 (a8b69b3ba3) [running inside WOW64]
Build time: 16 Dec 2017 4:00:38
Profile: C:\Program Files (x86)\Miranda NG\Profiles\Ratha\Ratha.dat (dbx mmap driver)
Profile size: 84148224 Bytes
Profile creation date: 22 Nov 2017 18:26:54
Language pack: No language pack installed
Service Mode: No

Active Plugins (17):
¤ AdvaImg.dll v.0.11.0.2 [16 Dec 2017 4:02:20] - Miranda image services
¤ AVS.dll v.0.95.3.4 [16 Dec 2017 4:00:42] - Avatar service
¤ CrashDumper.dll v.0.0.5.2 [16 Dec 2017 4:03:12] - Crash dumper
¤ DbEditorPP.dll v.4.0.1.2 [16 Dec 2017 4:03:06] - Database editor++
¤ Dbx_mmap.dll v.0.95.3.1 [16 Dec 2017 4:00:56] - Miranda NG mmap database driver
¤ Discord.dll v.0.5.1.2 [16 Dec 2017 4:06:14] - Discord protocol
¤ HistoryPP.dll v.1.5.1.5 [11 Dec 2017 9:24:52] - History++
¤ ICQ.dll v.0.11.3.6 [16 Dec 2017 4:01:06] - IcqOscarJ protocol
¤ ImportTXT.dll v.0.0.1.12 [16 Dec 2017 4:06:40] - Import TXT
¤ PluginUpdater.dll v.0.1.2.5 [16 Dec 2017 4:03:44] - Plugin updater
¤ SeenPlugin.dll v.5.0.5.3 [16 Dec 2017 4:01:58] - Last seen
¤ SkypeWeb.dll v.0.12.2.5 [16 Dec 2017 4:06:00] - Skype protocol (Web)
¤ SpellChecker.dll v.0.2.6.4 [16 Dec 2017 4:03:08] - Spell checker
¤ Steam.dll v.0.11.6.3 [16 Dec 2017 4:05:38] - Steam protocol
¤ TabSRMM.dll v.3.5.0.7 [16 Dec 2017 4:00:56] - TabSRMM
¤ Tipper.dll v.2.1.0.7 [16 Dec 2017 4:01:58] - Tipper
¤ YAMN.dll v.0.1.2.6 [16 Dec 2017 4:03:58] - Mail Notifier

Unloadable Plugins (1):
¤ DbChecker.dll v.0.0.0.0 [16 Dec 2017 4:03:16] - <unknown>
    Plugin statically linked to missing module: mir_core.mir
    Plugin statically linked to missing module: mir_app.mir


Protocols and Accounts:
-------------------------------------------------------------------------------
Discord                  1 - Enabled 0 - Disabled  Loaded
ICQ                      1 - Enabled 1 - Disabled  Loaded
SKYPE                    1 - Enabled 0 - Disabled  Loaded
STEAM                    1 - Enabled 0 - Disabled  Loaded
MetaContacts             1 - Enabled 0 - Disabled  Loaded
YAMN                     1 - Enabled 0 - Disabled  Loaded

Icon Packs:
-------------------------------------------------------------------------------
 Flags_icons.dll [16 Dec 2017 4:06:30]
 HistoryPP_icons.dll [16 Dec 2017 4:06:34]
 Proto_Discord.dll [16 Dec 2017 4:06:36]
 Proto_ICQ.dll [16 Dec 2017 4:06:30]
 Proto_MetaContacts.dll [16 Dec 2017 4:06:34]
 Proto_Skype.dll [16 Dec 2017 4:06:34]
 Proto_Steam.dll [16 Dec 2017 4:06:34]
 Proto_Yahoo.dll [13 Feb 2016 21:01:38]
 Proto_YAMN.dll [16 Dec 2017 4:06:34]
 TabSRMM_icons.dll [16 Dec 2017 4:06:34]
 xStatus_ICQ.dll [16 Dec 2017 4:06:32]
« Last Edit: 16 12 2017, 18:46:18 by Ratha »
 

Offline Vulpix

Re: Steam protocol
« Reply #482 on: 16 12 2017, 18:22:58 »
Yeah, I noticed this recently as well. All of my contacts show "Playing" with no game, where previously I could see the game.. not sure what caused this, but none of my contacts now show correct game names, all of them are just playing.
 

Offline Ratha

Re: Steam protocol
« Reply #483 on: 18 12 2017, 10:48:16 »
I used Miranda on an alt account to log myself as i started to play a game. Here was what seemed to be transmitted (stripped of non relevant personal detail.)

Spoiler
   "players": [
      {
         "steamid": "[Stripped]",
         "communityvisibilitystate": 3,
         "profilestate": 1,
         "personaname": "Ratha Wynter",
         "lastlogoff": 1513581837,
         "commentpermission": 1,
         "profileurl": "[Stripped]",
         "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/db/[Stripped].jpg",
         "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/db/[Stripped]_medium.jpg",
         "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/db/[Stripped]_full.jpg",
         "personastate": 1,
         "primaryclanid": "103582791434905547",
         "timecreated": 1192527721,
         "personastateflags": 256,
         "gameid": "252950",
         "loccountrycode": "US"
      }
   ]

What seeems to be missing are the entries for: "gameextrainfo": and or "gameserverip":
Currently im not sure if Steam is just not transmitting this data or if Miranda is asking for it incorrectly due to a change in formatting. It seems strange that it would sometimes show up, and (mainly?) for certain contacts and not others.)

I had 8 contacts who were playing games. All 8 them report the gameid but only one of them reported gameextrainfo (the name of the game). A different one reported gameid and gameserverip (the game's server), but not the gameextrainfo. Worth noting is that the two that reported additional information were two of the same people who had done so previously. ('Run' reported gameextrainfo and 'Sir' reported gameserverip, but neither included both.)

I suspect someone with more knowledge about the API is going to need to check into this. I attempted to login to Pidgin to see if it also had issues reporting this information, however i've been -completely- unable to get Pidgin to log me in on either of my accounts using the plugin that i successfully used a few days ago since my attempts to use Fiddler. I even uninstalled Pidgin, and Fiddler, deleted Pidgin's settings in the userfolder, reinstalled, and still have been unable to login. *Update I was able to get a different plugin to work with pidgin. However when I launch a game on my main account while looking at it from my alt, it does not seem to make any indication that im playing a game at all. (I was fairly sure that the other plugin did, but i could be wrong, will have to try and get it working again but so far cant figure out why it stopped.) Spinal Blood might know however, so if he could comment about whether Pidgin shows what game is being played for his contacts we could maybe narrow down the problem to whether its an issue with the Steam API or a problem with Miranda.
 

Offline Vulpix

Re: Steam protocol
« Reply #484 on: 18 12 2017, 11:19:27 »
It seems to me that the "getusersummaries" (which we use) does not provide this data anymore.
Instead, "getplayersummaries" does; but I have not found a way to query this data using the oauth interface. I'll have another look when I'm home.
 

Offline Ratha

Re: Steam protocol
« Reply #485 on: 18 12 2017, 11:43:51 »
While i was searching about earlier I stumbled across this page. http://steamwebapi.azurewebsites.net/ I dont know if it has any information that would be useful to what you're looking into but it does seem to contain a fair amount of API information related to commands. It says that there are two versions of getplayersummaries, with v2 being limited to 100 requests/responses only? Im not quite sure how to read that. Info from the top of the page below and theres a specific section for "getplayersummaries" in there. (I wasnt able to find any mention of "getusersummaries") however.

Response format
Responses to the requests can come in three different formats: json, vdf, xml. The default and preferred format is json.
Sample request/response

Request URL
    https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key={key}&steamids=76561197960361544
Response Format
    json

Note that the {key} parameter is not filled in because it is a secret that you must provide.
 

Offline Ratha

Re: Steam protocol
« Reply #486 on: 18 12 2017, 15:48:34 »
I can say for certain that i saw one of my contacts show that they were playing Warframe an hour or so ago, and now when i checked again it just says they're "Playing". So.. its intermittent although tending to fall on the side of not displaying. The only thing that I can think to cause an intermittent issue like that is some kind of rate-limiting from the API or as you suggested maybe the query method. But then you'd expect to see more/different contacts display their game title properly, especially in the case where a user has a very small friends list. (List on my alt account is about 10, where as its 115 on my main.) Sadly i didnt get a log to be able to compare update calls or see what was different.
 

Offline Vulpix

Re: Steam protocol
« Reply #487 on: 18 12 2017, 16:00:00 »
It is very strange. Nonetheless if you literally grab the oauth token+api command from the netlog of the steam proto and paste it into your browser, you will get exactly this type of reply - without the game listed. It could be an intermittent issue on the side of the API itself, but normal clients that use the other method I mentioned do not have this issue.

Actually the getusersummaries api has almost 0 documentation, and the only valve sanctioned mention of it can be found here: https://developer.valvesoftware.com/wiki/Steam_Web_API/Feedback in the feedback section.

However, getplayersummaries seems to require the api key instead of the oauth token; but it also seems like it would be a more reliable way of getting said info:

https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPlayerSummaries_.28v0002.29
 

Offline Ratha

Re: Steam protocol
« Reply #488 on: 18 12 2017, 19:54:43 »
I tested "getplayersummaries" by entering it into my browser using http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=[https://steamcommunity.com/dev/apikey]&steamids=[17 Digit Friend ID]

The information that it returned did not include the expected "gameextrainfo" **Edit: However it did return that info for the one user on my steam list who seems to report that info reliably and correctly.

Spoiler
{
[Info for user which didnt report gameextrainfo:] 'Cyb'
   "response": {
      "players": [
         {
            "steamid": "[Stripped]",
            "communityvisibilitystate": 3,
            "profilestate": 1,
            "personaname": "[Stripped]",
            "lastlogoff": 1513624742,
            "profileurl": "[Stripped]",
            "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/[Stripped].jpg",
            "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/[Stripped]_medium.jpg",
            "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/[Stripped]_full.jpg",
            "personastate": 1,
            "primaryclanid": "[Stripped]",
            "timecreated": 1144553331,
            "personastateflags": 0,
            "gameid": "271590"
         }
      ]
      
   }
}

[Info for user which reported gameextrainfo correctly] 'Run'
{
   "response": {
      "players": [
         {
            "steamid": "[Stripped]",
            "communityvisibilitystate": 3,
            "profilestate": 1,
            "personaname": "[Stripped]",
            "lastlogoff": 1513183292,
            "profileurl": "[Stripped]",
            "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/d5/[Stripped].jpg",
            "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/d5/[Stripped]_medium.jpg",
            "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/d5/[Stripped]_full.jpg",
            "personastate": 4,
            "realname": "[Stripped]",
            "primaryclanid": "[Stripped]",
            "timecreated": 1091041227,
            "personastateflags": 0,
            "gameextrainfo": "Path of Exile",
            "gameid": "238960",
            "loccountrycode": "SE"
         }
      ]
      
   }
}
« Last Edit: 18 12 2017, 20:03:55 by Ratha »
 

Offline unsane

Re: Steam protocol
« Reply #489 on: 19 12 2017, 07:19:06 »
Ratha, what kind of info do you need?
If all playing contacts has gameid and name of the game is enough then we can get it from
Code: [Select]
http://api.steampowered.com/ISteamApps/GetAppList/v0002/.
Si no estas con nosotros, estas contra nosotros.
 

Offline Vulpix

Re: Steam protocol
« Reply #490 on: 19 12 2017, 08:10:42 »
Hi Unsane! It will work for steam games, however sometimes the contact is playing a non-steam game in which case its name will not come back from this api query. There has to be a way to get all of them because the web client can do it somehow.. hmm.
 

Offline Ratha

Re: Steam protocol
« Reply #491 on: 19 12 2017, 08:51:19 »
Ratha, what kind of info do you need?
If all playing contacts has gameid and name of the game is enough then we can get it from
Code: [Select]
http://api.steampowered.com/ISteamApps/GetAppList/v0002/.

To be honest, i think just having the game name of Steam games displaying again properly is probably enough for me.

Hi Unsane! It will work for steam games, however sometimes the contact is playing a non-steam game in which case its name will not come back from this api query. There has to be a way to get all of them because the web client can do it somehow.. hmm.

I read on a forum somewhere that back in 2014 or 2015 there was a change that removed custom games from displaying through normal API calls. I believe I even posted in that thread to see if anyone could help us with our current problem, however had not gotten any reply. Im fairly sure that custom games did show up in Miranda until about a year ago though.. so i dont know if that had been fixed / reverted or what. Im honestly not sure where to look for more information about that specifically however.
 

Offline Ratha

Re: Steam protocol
« Reply #492 on: 19 12 2017, 10:15:46 »
I dont have any clue how Miranda is programmed specifically, but wouldnt referencing that applist for the gameid be cumbersome? The file itself is 4+ megs. (Big enough that it locked up Firefox trying to display it, and locked up chrome while trying to copy paste it. Thankfully it seems you can "save" it after it loads in chrome. Seems odd that we still have these kinds of problems loading text files in 2017. Or maybe its just me!

Im also not aware if its possible to just reference a single line of that file and not have to download the whole thing itself, but seems like a new module would have to be written that would download (and update) that list occasionally, but not too frequently?

Alternatively if there was a way to query the API specifically for each of the players on your list that were not displaying 'gameextrainfo' that Miranda would potentially need to be making a lot of calls to the API every time someone updated their status, which may or may not be an issue. (I believe that there is a limit on the number of API accesses per hour that a client/address can perform, though i dont specifically know the number offhand.) Dont know if this is relevant or currently accurate: https://www.reddit.com/r/Steam/comments/304dft/steam_store_api_is_there_a_throttling_limit_on/ but Jshakles has developed a number of Steam-related programs and browser addons, so id assume the information he posted was fairly accurate at the time.
 

Offline unsane

Re: Steam protocol
« Reply #493 on: 19 12 2017, 15:47:44 »
Hi Unsane! It will work for steam games, however sometimes the contact is playing a non-steam game in which case its name will not come back from this api query. There has to be a way to get all of them because the web client can do it somehow.. hmm.
Ratha, Vulpix, is anyone has mobile version of steam (e.g. on android)?
If it work in mobile version i probably can catch traffic and find a way to realize it in miranda.
Si no estas con nosotros, estas contra nosotros.
 

Offline Ratha

Re: Steam protocol
« Reply #494 on: 19 12 2017, 16:33:24 »
I have an account that uses mobile auth (with a desktop activator), and an account that uses email auth, but i do not have a mobile phone / mobile version of Steam.