Nutzzz / GameCollector

.NET library for finding games.
Other
5 stars 0 forks source link

Hide Epic "audience" entries and alternate installations ("beta"/"experimental", etc.) #21

Open Nutzzz opened 4 months ago

Nutzzz commented 4 months ago

Maybe the latter could be shown as DLC?

EDIT: In the catcache.bin file, DLCs have a mainGameItem entry populated, and are listed in the main game's dlcItemList. The only thing that connects these entries is a shared namespace (and I am already exposing this field). However, it isn't clear which is the main entry. It looks like a good first step is to look in categories and strip entries which contain "audience". It doesn't look like relying on entries that are missing keyImages gets me anything else.

FWIW, I do notice I have one entry that's got an "addons" category without a mainGameItem ("Horizon Chase Turbo - Rookie Series").

Nutzzz commented 4 months ago

"Audience" entries ignored in commit 6212e88

TODO: This won't resolve extra entries for owned not-installed games, but if there is an installed entry with a given namespace, then either ignore or set as DLCs any non-installed entries that aren't DLCs with the same namespace. Requires a second run-through of the data. EDIT: I'm testing the method outlined above, and I'm catching 6 items (with 67 games installed). These are a mix of DLCs that didn't get a mainGameItem entry and beta/experimental installs, and it catches the Horizon Chase one mentioned above. EDIT 2: I wonder if I would get the proper result if I just pick the first entry of a given namespace and set all the rest as DLC? EDIT 3: No, the entry order can't be relied upon.

Nutzzz commented 3 months ago

At this point, all entries with a given namespace are shown if none are installed. If there are multiple entries, I can try some string searches of the title for words like "Beta" and "Experiment," but even if I were to do that, what if all entries have words on the blacklist; or what if none do? Do I list them all, or just pick the first one?