UncleGoogle / galaxy-integration-humblebundle

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

Games are not showing up #125

Closed HommeCrabe closed 4 years ago

HommeCrabe commented 4 years ago

Describe the bug After adding the plugin through Settings > Integrations, I log in my Humble Bundle account which contains hundreds of DRM-free games. The config window shows up. I check "drm-free". After that, nothing happens and zero games are added to my library. Also, I don't have a "trove" option in the config window, though I'm subscribed, only "drm-free" and "keys". Version displayed in changelog is 0.8.

Expected behavior All my games should be listed.

Plugin installed Directly from Galaxy.

Provide logs plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.log I've hidden my order keys, there were a lot. There is one error in the log : galaxy.api.jsonrpc - ERROR - Unexpected exception raised in plugin handler ValueError: 'other' is not a valid HP

Thank you for your help!

cyotek commented 4 years ago

I ha(ve|d) the same issue. After looking at the stack trace from my own log and backtracking, I edited %LOCALAPPDATA%\GOG.com\Galaxy\plugins\installed\humble_f0ca3d80-a432-4d35-a9e3-60f27161ac3a\model\types.py and modified the HP enumeration to add an extra item (I added OTHER = 'other' to line 17 after the VIVE entry.)

class HP(enum.Enum):
    WINDOWS = 'windows'
    MAC = 'mac'
    LINUX = 'linux'
    ANDROID = 'android'
    AUDIO = 'audio'
    EBOOK = 'ebook'
    ASMJS = 'asmjs'
    UNITYWASM = 'unitywasm'
    VIDEO = 'video'
    COMEDY = 'comedy'
    OCULUS = 'oculus-rift'
    VIVE = 'vive'
    OTHER = 'other' # <- manually added

    def __eq__(self, other):
        if type(other) == str:
            return self.value == other
        return super().__eq__(other)

    def __hash__(self):
        return hash(self.value)

On restarting Galaxy it woke up and started populating my HB purchases. I still can't see subscriptions, but at least the games have come back.

Not hugely familiar with Python so I don't know if this is the appropriate fix (hence no PR) but this does seem to have worked, or at least partially given I still can't see subs.

Hope this helps anyone else with the same issue!

Edit: No idea why but I noted today after booting up and running Galaxy, the HB importer popped up again and I can now see subscriptions as well. I'm happy to make a PR if this is the only thing that needs changing but I have no idea about Python testing so probably wouldn't be able to do a decent test case.

UncleGoogle commented 4 years ago

Hi, thanks for report guys. @cyotek you're solution is right. I've also added default type in case another platform type will appear in humble API.

I wonder which game has platform "other". You can check in there is such filer in humblebundle.com/home/library

UncleGoogle commented 4 years ago

Edit: No idea why but I noted today after booting up and running Galaxy, the HB importer popped up again and I can now see subscriptions as well.

Subscription games are in different interface, it is up to Galaxy to request them from plugin. Maybe they were blocked by previous error in user owned games, and then a Galaxy restart was required?

I'm happy to make a PR if this is the only thing that needs changing but I have no idea about Python testing so probably wouldn't be able to do a decent test case.

Next time you're welcome I will be glad to help you with tests, Python is easy:) I've not added tests for this simple change as I need to do bigger refactor anyway, see #107 for now API model is somehow mixed with other modules, ugly things.

@HommeCrabe

Also, I don't have a "trove" option in the config window

Trove games are no longer configurable via plugin settings. They should appear if you're subscriber (and if not, you can still show then via Galaxy Settings - Feature.

HommeCrabe commented 4 years ago

Thank you @cyotek, it's working! I'm missing some games but it seems that it's a GOG database issue. The "other" platform games are not even games: "Hamble Coloring Pages" and "Hamble Wallpaper Pack" from HIB 21.

cyotek commented 4 years ago

I checked my library as well, and in addition to the two items @HommeCrabe mentioned, I also have a number of audio resources from the Big Music Bundle in May. Not Sure why for those at least they didn't use the existing audio category 🤷

UncleGoogle commented 4 years ago

I've got tempted to create somehow strict model for humble API, but this is another time returned values cannot be trusted. Another problem is that some games keys not contain human_name - I've reported that to humble support and they fixed one of them, but there is more.

Anyway, I'll release 8.1 probably this week.