Recents and DLd
Closes #112
@salzrat to test:
- Open the browser console on the Library page
- Chrome: Ctrl+Shift+J
- Firefox: Ctrl+Shift+K
- In the console's input line: copy, paste, and run the contents of this URL
- You may get a security prompt to allow pasting
- Same as above, run the following:
let O = await repod.psdle.api.fetch(repod.psdle.config, "recently-played").then(P => P.json())
prompt("", JSON.stringify(O))
- Provide that output here for further testing.
The Downloads tab will be more effort as by default, with no console linked, there are no relevant API calls.
You would have to watch the Network tab of your browser console ideally filtering to graphql and looking at the operationName.
The following can be ignored:
queryOracleUserProfileFullSubscriptiongetUserDevicesgetCartItemCountgetProfileOraclegetAccountOraclegetPurchasedGameList*getUserGameList*
* These may be relevant if requested by the Downloads tab but are already in use for the Purchased and Played tabs respectively.
First, the let O= statement threw an access denied error. After reloading it worked and produced a prompt with a json of the games list (just included the first 2 games here):
{"data":{"gameLibraryTitlesRetrieve":{"__typename":"GameList","games":[{"__typename":"GameLibraryTitle","conceptId":"201026","entitlementId":null,"image":{"__typename":"Media","url":"https://image.api.playstation.com/gs2-sec/appkgo/prod/CUSA01862_00/4/i_4244a2569bebfd546cb852592b531fdd10ce77728c8db13d55b5a5484019fd3e/i/icon0.png"},"isActive":null,"lastPlayedDateTime":"2023-12-26T17:50:12.250000Z","membership":"NONE","name":"Disney Infinity 3.0","platform":"PS4","productId":null,"titleId":"CUSA01862_00"},{"__typename":"GameLibraryTitle","conceptId":"10000378","entitlementId":"EP4433-CUSA18797_00-DUNGEONSPS400000","image":{"__typename":"Media","url":"https://image.api.playstation.com/gs2-sec/appkgo/prod/CUSA18797_00/4/i_ef3d4a1a539cc23669e31e597bdb5d56bc645ac6e2a824cfe6fb6ed61a7f13ee/i/icon0.png"},"isActive":true,"lastPlayedDateTime":"2023-12-25T23:06:43.000000Z","membership":"NONE","name":"Minecraft Dungeons","platform":"PS4","productId":"EP4433-CUSA18797_00-DUNGEONSPS400000","titleId":"CUSA18797_00"},
When clicking on the downloads tab, no graphql command is issued. Only a POST to some cryptic webpage...
Please test again and verify the lastPlayed property.
Looks like this:
{"data":{"gameLibraryTitlesRetrieve":{"__typename":"GameList","games":[{"__typename":"GameLibraryTitle","conceptId":"201026","entitlementId":null,"image":{"__typename":"Media","url":"https://image.api.playstation.com/gs2-sec/appkgo/prod/CUSA01862_00/4/i_4244a2569bebfd546cb852592b531fdd10ce77728c8db13d55b5a5484019fd3e/i/icon0.png"},"isActive":null,"lastPlayedDateTime":"2023-12-26T17:50:12.250000Z","membership":"NONE","name":"Disney Infinity 3.0","platform":"PS4","productId":null,"titleId":"CUSA01862_00"},{"__typename":"GameLibraryTitle","conceptId":"10000378","entitlementId":"EP4433-CUSA18797_00-DUNGEONSPS400000","image":{"__typename":"Media","url":"https://image.api.playstation.com/gs2-sec/appkgo/prod/CUSA18797_00/4/i_ef3d4a1a539cc23669e31e597bdb5d56bc645ac6e2a824cfe6fb6ed61a7f13ee/i/icon0.png"},"isActive":true,"lastPlayedDateTime":"2023-12-25T23:06:43.000000Z","membership":"NONE","name":"Minecraft Dungeons","platform":"PS4","productId":"EP4433-CUSA18797_00-DUNGEONSPS400000","titleId":"CUSA18797_00"}
so seems to work!
interesting is that for the first one, entitlement is null. Some of the games have this...
Oh, I have a suspicion: I guess entitlement=null for disc titles, i.e., ones that were not purchased in the store! I noticed the standard psdle doesn't export inactive titles although the field can be exported (isactive is always true). In this json I see the inactive titles, which makes a lot of sense!
Thinking about this even further, the library and last played need not correlate due to different users playing the games on a console. so it might be interesting to correlate my library to the last played of another user (e.g., my son), so I know what he has played and what I haven't shown him yet... I know it's not possible to do that automatically, but by downloading my library, and then the last played list of my and his account, I could merge the data myself in excel...