UncleGoogle / galaxy-integration-humblebundle

Humble Bundle integration for GOG Galaxy 2.0
GNU General Public License v3.0
186 stars 19 forks source link

Hide DRM-free games with revealed keys #63

Closed briktor closed 4 years ago

briktor commented 4 years ago

Is your feature request related to a problem? Please describe. Currently it's possible to hide game keys which have been revealed using the "show_revealed_keys" option but games are still shown if they have both a (revealed) key and a direct download version.

Describe the solution you'd like Either use the "show_revealed_keys" option to hide games from all sources or add another option to also hide DRM-free games with revealed keys.

UncleGoogle commented 4 years ago

Hi, I like the feature you proposed and solution 2 (or just something that won't remove current state):

add another option to also hide DRM-free games with revealed keys

but I'm afraid it can be impossible or very difficult without heuristics based on some names (that is always a risk). Keys and drm-free games are separate entries in humble API and I'm parsing them separately. They do not know about each other - key about subproduct to download.

The only thing in which keys and subproducts (drm-free's) interact in the plugin code is deduplication based on display name:

But in fact, most key-subproducts pairs differs with display name, for example:

So it is not impossible to match one with another (especially if they come within the same order, but it is another story), but hard to do.

I would like to do it after 1.0 release, as there are more urgent problems with other heuristics in launching games, lack of config GUI, macos support ect.

JanPokorny commented 4 years ago

Wouldn't this appear to Galaxy as if the game is coming from two different platforms (ie. the DRM-free version from the Humble plugin, and the redeemed-key version from Steam)? That would mean Galaxy would just merge the versions, right? This seems like a reasonable behavior, I don't understand the problem here.

briktor commented 4 years ago

You're right and this may not be a problem to everybody, as the "All Games" view works (almost) completely fine but for me there are two reasons I would like this feature:

  1. Filtering: Almost all games I bought on Humble are Steam keys, which I have redeemed, and most games I own on Steam were bought on Humble, so filtering for Steam or Humble games yields mostly the same result. I basically never want to play the drm-free version of a game I own on Steam. There are some games though, of which I only own drm-free versions and I would like to see those but Galaxy does not have negative filtering options so I can't filter for "Humble games, that I don't also own on Steam".
  2. Different names: There are some games that have different names on both platforms and thus are not correctly merged by Galaxy. The ones I have noticed in my library are:

    • "2064: Read Only Memories" (Humble) - "Read Only Memories" (Steam)
    • "Jamestown" (Humble) - "Jamestown: Legend of the Lost Colony" (Steam)
    • "Trine 2: Complete Story" (Humble) - "Trine 2" (Steam)

    So there are now two entries for those games in my library but, as I have revealed the keys for all of them, this feature would hide one of each.

JanPokorny commented 4 years ago

I'd say that:

  1. Makes much more sense to solve on Galaxy level (implement negative filtering), than on this integration's level. Negative filtering is useful for many more cases (ie. show games on Epic that I don't own on Steam, show games without the "Played" tag etc.), so I would expect Galaxy devs to implement it sooner or later. I suggest you send a feedback with this request. (I will do the same, as I also want this feature.)

  2. This is also quite obviously a problem of Galaxy -- it is not able to identify that these two are in fact the same game. You should send a bug report to Galaxy listing the pairs of mis-identified games. That different launchers may call the same game differently is a sad reality, and Galaxy is the one responsible for identifying and merging them through their huge database.

UncleGoogle commented 4 years ago

I agree with @JanPokorny. Proposal of @AhrimhanXII is workaround on plugin level for both usecases, but there is more sense to implement 1 and fix 2 in Galaxy.

So closing. If the situation won't change till 1.0 release of this plugin, feel free to ask again. Others - use thumb-up to vote on the feature in OP.