RePod / psdle

Improving everyone's favorite online download list, one loop at a time.
https://repod.github.io/psdle
MIT License
194 stars 14 forks source link

Recents and DLd #113

Open RePod opened 10 months ago

RePod commented 10 months ago

Closes #112

RePod commented 10 months ago

@salzrat to test:


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:

* These may be relevant if requested by the Downloads tab but are already in use for the Purchased and Played tabs respectively.

Example

salzrat commented 10 months ago

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"},

salzrat commented 10 months ago

When clicking on the downloads tab, no graphql command is issued. Only a POST to some cryptic webpage...

RePod commented 10 months ago

Please test again and verify the lastPlayed property.

salzrat commented 10 months ago

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...

salzrat commented 10 months ago

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!

salzrat commented 10 months ago

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...