RePod / psdle

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

Demos with a time limit, treated like PS+ content #17

Closed Arka9 closed 9 years ago

Arka9 commented 9 years ago

Hi, i'm reporting a minor issue with your userscript. I recently went on a Demo/Trial download frenzy (don't ask me why hahaha) and discovered that there are at least two demos that come with a 3-day time limit: Numblast Demo for both PSP and PS3. When i generate the list using PSDLE, they have the PS+ yellow border on the icons. Under Account Management on my PSN account, they have an expiration date, but it's NOT the same as my PS+ subscription: it's just 3 full days. I tried searching and apparently it just disappears from the download list after it has expired. Do you think it's possible to differentiate between actual PS+ content and minor stuff like this?

Also another minor issue: sometimes, PSDLE gives a list with 0/0 items, instead of actually creating it. It doesn't even starts the counter. I guess it has to do with recent changes on the Playstation Store itself, right? But it works most of the times anyway.

And the download queue, why doesn't the PSDLE queue uses the same item limit from the actual Store website? I think the limit there is something between 35~100 (probably the latter), but i managed to add more than 100 items, however the site couldn't display all of them at the same time.

Thank you in advance.

RePod commented 9 years ago

Do you think it's possible to differentiate between actual PS+ content and minor stuff like this? Most likely possible. Having not used PS+ trials I don't have content to test it with.

Could you please run this in your browser console (Firefox: Ctrl+Shift+K, Chrome:Ctrl+Shift+J) on the store, while logged in, and paste the results? PSDLE does not need to be running.

$.each(gEntitlementManager.getAllEntitlements(),function(i,obj) {
    var c = (obj.drm_def||obj.entitlement_attributes)?!0:!1;
    if (c) {
        var name = (obj.drm_def) ? obj.drm_def.contentName : obj.game_meta.name;
        if (name.indexOf("Numblast") > -1) { console.log(obj); }
    }
})

Also another minor issue: sometimes, PSDLE gives a list with 0/0 items, instead of actually creating it. It doesn't even starts the counter. ... But it works most of the times anyway.

Something, something. Blame the store. PSDLE accesses the user's entitlement information from the store context, so if it's empty that is what PSDLE gets. It seems to be intermittent so it's not something I'm worried about.

And the download queue, why doesn't the PSDLE queue uses the same item limit from the actual Store website?

Laziness. I don't have a lot of information about the queue to work off so artificially limiting it wouldn't be in my best interest. If they're all listed when viewed in PSDLE it's simply the store's representation not following through. However, if any real problems involving the queue do present themselves they should be displayed.

Arka9 commented 9 years ago

Thanks for replying. Here are the results you asked for (?): http://pastebin.com/w2RMfsjC

RePod commented 9 years ago

Er, sorry, try this one:

$.each(gEntitlementManager.getAllEntitlements(),function(i,obj) {
    var c = (obj.drm_def||obj.entitlement_attributes)?!0:!1;
    if (c) {
        var name = (obj.drm_def) ? obj.drm_def.contentName : obj.game_meta.name;
        if (name.indexOf("Numblast") > -1) { console.log(JSON.stringify(obj)); }
    }
})

Should be a bit more readable.

Arka9 commented 9 years ago

http://pastebin.com/mSMQUwBL

RePod commented 9 years ago

I can say the PS+ checks are working properly. The content has all the right information, specifically expiry information, as you previously mentioned. The problem here is PSDLE does not validate that expiry information (in the case of things that ARE expired). As far as I know these types of demos/trials are through PS+, so it's not all wrong.

However, what I'm interested in is if this means actual expired PS+ content remains on the Entitlements list. To learn this I would need someone with a lapsed subscription to test it out and report their findings. I have a candidate in mind, let me reach out to them and see if they'll help out.

If the findings show that PS+ content does stick around instead of hiding expired entries I could use a red border instead of a yellow, indicating it is PS+ content (in some form) but has expired.

Arka9 commented 9 years ago

No, the Numblast Demo is definitely not PS+ content... it's not one of those games you could try for 1 hour, it's something else. It doesn't even have yellow text in the Store page.

RePod commented 9 years ago

Still waiting on a response from the person I contacted, which may be a while, but if that is the case I guess I can go with my original idea of making the border red instead of yellow, indicating expired content (of any kind).

Currently that is how PSDLE checks for PS+ content, by seeing if it has expiration data. If expired (actual) PS+ content is still available after lapsing this would be a valuable tool for people wanting to see what they would be buying back into. If I had to guess that means the actual download list hides everything that is expired.

Arka10 commented 9 years ago

Hi, it's me again (with a different account though, as i've lost the other one), any news about this issue?

If not, feel free to close it.

RePod commented 9 years ago

I got variable feedback from users with expired PS+ content with some stating PSDLE shows their expired games and other stating it doesn't.

I really don't know how to treat this aside from giving it an explicit option which is on my growing TO-DO list.

RePod commented 9 years ago

Hello @Arka9 @Arka10 hopefully you're still active (unfortunately, a month later).

I went ahead and decided to finally do something about this, and in the easiest way (for expanding it later) possible.

Please run this version of PSDLE from the browser console (Firefox: Ctrl+Shift+K, Chrome: Ctrl+Shift+J) .

I added an additional check that compares the dates of the content's expiration date and the current date, but only if its _infiniteduration value is false, indicating it should expire.

If the conditions are met, the expiration date has passed and it does not have _infiniteduration, PSDLE will ignore it while generating the list. Until I add an option somewhere in the interface for this, I'm probably going to go ahead with this change as it's very similar to the Download List's behavior.

Note: I also redid the area around there (literally one line up/down/both) to deal with some misc. TV content that was slipping through. If you compare the total at the top with the amount on your download list it should be accurate.

Thanks and sorry for the delay.

RePod commented 9 years ago

PSDLE uses the same thing used to generate the Download List: entitlement data (which stores all services including games, videos, subscriptions tied to the account).

However, PSDLE does not accurately parse that entitlement data which leads to certain things that are ignored on the Download List popping up in PSDLE.

The biggest example, as demonstrated by this issue, is expired content. Before, PSDLE did not check if content was expired (aside from assuming it was PS+ content) before adding it to its internal list. Now it does (not) care about expired content and ignores it (doesn't add it to the internal list) similar to the Download List's behavior.

RePod commented 9 years ago

the two Numblast demos

Apparently I didn't proof my code by debugging it after applying the fix, but I have now. @Hyenard please try this version (latest at time of writing) which has said fix. Unfortunately this still doesn't address the period where it's not yet expired, it will still be marked as PS+ content.

Also, in the future, instead of adding problematic content to your list (regardless of if you want it) use the recently added repod.psdle.debug.injectEntitlement() function made specifically for this situation. @Arka9 / @Arka10 was kind enough to provide their entitlement data, and using this function lets PSDLE treat it like your own (pretty useful).

"e is not defined"

It's hard to debug these errors (and I'm lazy) since the console logs it as a problem thrown from jQuery itself. It also makes it difficult to confirm it's even PSDLE causing it! However if the problem can narrowed down to a series of steps that consistently reproduce it I can gear my efforts around that area. For instance, if it's during list generation that's a multi-step process:

what did you change in versions v2.049 and v2.050?

A lot, check the commit history. (including the following)

In any version other than the Userscript, try running repod.psdle.table_utils.random()!

Also why some PSP content is blue-ish now :O

Indicates PS Vita-compatible content.

RePod commented 9 years ago

Yes.

RePod commented 9 years ago

If the Numblast demos are not displayed on Download List (at least) then them not showing up in PSDLE is accurate behavior.


the missing item is the "Fix Me Hook Hat"

What is the ID and Product ID?

The ID is in the link available when hovering above the actual name: aa

The Product ID is on the icon: aa2

RePod commented 9 years ago

Yes, if the issue persists for @Arka9 / @Arka10 they can re-open this.