UncleGoogle / galaxy-integration-humblebundle

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

Remove storefront name from game titles #158

Closed Gwindalmir closed 3 years ago

Gwindalmir commented 3 years ago

Some games include the name of the storefront the key is for, such as "Steam Key" in their titles. These shouldn't be part of the titles when imported into Galaxy.

This submission strips those from the title.

Note: This is based on changes submitted in PR #157. So until that PR is merged, this will probably show the changes from that PR as well. I separated this out for two reasons: 1) It's not related, and 2) I didn't want to risk the fixes in #157 in case this is rejected for some reason. The commit specific to this PR is https://github.com/UncleGoogle/galaxy-integration-humblebundle/commit/b7d353cf482f6e0ab0dced7a93a8c56de45ff5c5.

Unfortunately, I can't seem to clear out my Galaxy library, so the old game titles still appear. However, I verified this fix by adding tests, and checking the logs when connecting the plugin.

UncleGoogle commented 3 years ago

I appreciate the proposal. I've thought about it some time ago, but decided to leave the humble API names unchanged.

I'm not saying definitive "no" for such change, you can try to convince me.

My current reasons are:

Gwindalmir commented 3 years ago

I appreciate the proposal. I've thought about it some time ago, but decided to leave the humble API names unchanged.

I'm not saying definitive "no" for such change, you can try to convince me.

My current reasons are:

* consistancy - it won't work backwards - all already sent games won't change their titles until the same ids are used. Looks like GOG pins titles to id when the new game is send for the very first time. To fix some bad names you have to write to them ask for manual correct.

* there is no standard in the display_name format in humble API - as you've seen - there is a lot of forms like "Steam Key", "(Steam Key)", "(Steam)", ect. Looks like it is made manually by humble stuff or external developers. The plugin code already include much heuristics. Too much to be as stable as I would like it to be.

* there is no other way to indicate that the game item is a "key" in reality. It is already a hack for GOG API, as they do not have a special support for keys. Another workaround would be to use tags, but they are applied to all games of the same kind, not particular game instance: #99. Including needed details in the game titles is a most common workaround for lacking functionalities in GOG API. See eg. [gogcom/galaxy-integrations-python-api#9](https://github.com/gogcom/galaxy-integrations-python-api/issues/9) (wargaming plugin currently includes realm in game title's).

Yeah, I did notice it was very inconsistent. There is a risk of it matching a game title incorrectly. My thought though is the risk of it catching a game title with those keywords is far less likely than the current behavior of incorrectly "named" games. Meaning, less corrections to ask of GOG going forward.

Maybe it's just me, but I don't see the need to make note that a game has a "key" or not. However it works now, some games collapse properly into a single "instance", and others I have duplicates appearing as separate entries (and even still some games that have vanished entirely). I don't know if it's related to this issue or not, but it is annoying. I'll admit I don't really know how the key system works in this, so I'll defer to your expertise on that.

That said, maybe it's worth waiting on this until GOG has better API support. I'm okay with that if want to close this now.

UncleGoogle commented 3 years ago

Maybe it's just me, but I don't see the need to make note that a game has a "key" or not.

more like "game IS a key". I've already has some tickets from people who like to know their keys separately from drm-free games (gifting, selling...). So it is definitely important. Since #6 it is possible to use different display filters on that but I would rather keep any kind of visual distinction.

However it works now, some games collapse properly into a single "instance",

Once I have a game (Limbo?) that was a) from bundle A b) from bundle B c) from Trove d) from subscription so 4 entires! Having deduplication on GOG side is nice, so all of them are displayed under one tile. But that is exactly why different naming/tags are needed. Subscription games are handled - there is subscription name written on game details view (but only after you chose one entry from the list!). Well, maybe I should create subscription named "keys"...

and others I have duplicates appearing as separate entries

that must be on GOG database side, no way for plugins to group games.

(and even still some games that have vanished entirely). I don't know if it's related to this issue or not, but it is annoying.

Hard to say what happened, maybe the plugin fault, maybe Galaxy, maybe HumbleBundle

I'll admit I don't really know how the key system works in this, so I'll defer to your expertise on that.

That said, maybe it's worth waiting on this until GOG has better API support. I'm okay with that if want to close this now.

Ok, so I'm closing now.

But definitely game name consistency is something we could handle better than Humble Bundle do.

Next steps:

  1. wait for Keys support in Galaxy, then reconsider the PR
  2. OR use similar approach to make names consistent (eg. always 3-rd party platform in bracket like "Serious Sam 3 (Steam)")

If we have definitive solution (1 or 2) then we can do a trick with changing all game ids (eg by adding some const value). Then maybe those game titles would be reimported/reset to what plugin send?