unclegoogle / galaxy-integration-humblebundle Goto Github PK
View Code? Open in Web Editor NEWHumble Bundle integration for GOG Galaxy 2.0
License: GNU General Public License v3.0
Humble Bundle integration for GOG Galaxy 2.0
License: GNU General Public License v3.0
everytime I close GOG Galaxy and reopen it ( as when I am starting the PC) I have to reestablish the Connection to Humble bundle
Is your feature request related to a problem? Please describe.
Some people don't trust unknown login prompts, outside of their native browser (and they are right). For those who do not trust the plugin and have no time / skill to verify its content on its own, provide alternative login method.
Describe the solution you'd like
Simple field to provide authorization cookie before real login window
Describe alternatives you've considered
Additional context
https://www.reddit.com/r/gog/comments/cgczr1/security_consequences_of_logging_into_thirdparty/
Describe the bug
I am simply unable to download any DRM-free humble game from within Galaxy. The browser opens and shows a URL but does nothing. Downloading directly from the web site still works fine.
Expected behavior
Opening browser with the correct URL to download the game.
Plugin installed
manually from your repository releases
I tried this with Waterfox (Firefox fork) and Internet Explorer. Waterfox simply did nothing, internet explorer told me that I had to be logged in (which I was).
Provide logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.log.txt
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.log.1
Right now, you can't really tell what is from Trove, DRM-Free, or a key. It'd be good if these could be tagged in some way (if tags themselves wouldn't work) so that they could be grouped or at least distinguished from each other.
Details in project Humble Choice
Implement:
Hi,
After having manually upgraded to v0.5.3, I can't launch the HumbleBundle integration. In logs, I can find a Python error:
2019-11-24 10:30:30,783 - root - ERROR - Plugin exception
Traceback (most recent call last):
File "/Applications/GOG Galaxy.app/Contents/Resources/plugin_runner.py", line 35, in <module>
module = importlib.import_module(filename)
File "/Applications/GOG Galaxy.app/Contents/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/plugin.py", line 27, in <module>
from local import AppFinder
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/local/__init__.py", line 7, in <module>
from local.macappfinder import MacAppFinder as AppFinder # type: ignore[misc] # noqa
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/local/macappfinder.py", line 1, in <module>
from local.baseappfinder import BaseAppFinder
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/local/baseappfinder.py", line 8, in <module>
from local.localgame import LocalHumbleGame
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/local/localgame.py", line 4, in <module>
import psutil
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/modules/psutil/__init__.py", line 155, in <module>
from . import _psosx as _psplatform
File "/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/modules/psutil/_psosx.py", line 16, in <module>
from . import _psutil_osx as cext
ImportError: cannot import name '_psutil_osx' from 'psutil' (/Users/XXXXX/Library/Application Support/GOG.com/Galaxy/plugins/installed/humblebundle_0.5.3/modules/psutil/__init__.py)
Do you know how I could solve this issue?
Fototonica
When clicking on install, nothing happens. In log, there's an error when trying to install the game. I'll add the log files, I'll paste the error that I found in the log anyway:
File "C:\Users\Rik55\AppData\Local\GOG.com\Galaxy\plugins\installed\humblebundle_0.5.0-alpha3\plugin.py", line 149, in install_game
chosen_download = self._download_resolver(game)
File "C:\Users\Rik55\AppData\Local\GOG.com\Galaxy\plugins\installed\humblebundle_0.5.0-alpha3\humbledownloader.py", line 20, in call
return self._find_best_subproduct_download(game)
File "C:\Users\Rik55\AppData\Local\GOG.com\Galaxy\plugins\installed\humblebundle_0.5.0-alpha3\humbledownloader.py", line 41, in _find_best_subproduct_download
raise NotImplementedError(f'Found downloads: {len(download_items)}. All: {system_downloads}')
NotImplementedError: Found downloads: 0. All: [<model.download.SubproductDownload object at 0x00B44AD0>]
Indiana Jones® and the Fate of Atlantis™
Install option is grayed out. Downloading installer on humble bundle homepage works fine.
Describe the bug
Some games from the trove don't show up in the integration. Not sure if caused by gogcom/galaxy-integrations-python-api#72, because I can't find the Game ID.
Right now there are 98 games in the trove, the integration shows only 87 so 11 are missing, all of the newly added: plus some others like Operator.
Steps to reproduce: Edit config.ini to only show trove games > Sync Integration
Expected behavior
All the trove games should be added by the integration and show up in gog galaxy.
Plugin installed
Directly from Galaxy
Provide logs
plugin-humble-logs.zip
I compared the list of the current Trove games to my galaxy list and there are 6 games missing. I just bought Humble Monthly for the first time a few days ago, so it is active right now.
Those games are:
Roman Sands
Shady Knight
Kind Words
20 Minute Metropolis
Star Wars: X-Wing vs TIE Fighter - Balance of Power Campaigns
AI War Collection 2014
Using version 0.5-alpha3, removed 'keys' from sources in config, added one (existing) path in installed, that is currently empty though. No Humble Bundle games installed yet.
Windows 10, 64-bit.
Describe the bug
The following games were not recognized and listed as "Unknown game" without any option to add them manually.
Dungeons of Dredmor
Far Sky
FRACT OSC
Osmos
Zen Bound 2
Describe the bug
Installed the unzipped plugin, restarted Galaxy, went into Preferences -> Integrations, and clicked Connect. A red message in the "Connected/Not connected yet" field says "Plugin has crashed. Retry."
Expected behavior
Expected the plugin to work as well as it did on my Windows 10 system. The Connect button has switched to "Disconnect".
Attach logs
plugin-humble-log.zip
Check for windows registry for installed games and match them with owned_games.
Note: No all games can be discovered.
Hey,
I've came up on an issue in the integration which leads to it not properly recognizing the installation status of a game sometimes.
Installed Annas Quest -> integration correctly recognized it was installed
Uninstalled Annas Quest -> integration correctly recognized it was uninstalled
Installed Deponia -> integration doesn't recognize it was installed
I think it might be related to the windows registry logic keeping track of the number of keys. It gets detected correctly after restarting galaxy.
Not all games can be discovered (at least on windows) #8
Beside autodetected installed games, some of them will be still shown as uninstalled.
Ideas how to deal with the rest of games:
NextStep
)
Install
button always show small prompt with 2 options: download or point to game exe/folder....
submenu can be added. Then link "point to game" there.What do you think, community?
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.
Waits for #8
Describe the bug
Games from the Humble Library are not imported
Expected behavior
Games from the Humble Library are imported
Attach logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.zip
Describe the bug
https://mantis2.gog.com/view.php?id=22442
This appears to be similar to issue #5 , which was fixed in 0.2.2. I get a login prompt and then an account verification screen. After entering all those, the plugin times out after about 20 seconds and then crashes. From the log, the crash appears to be "unhandled ErrorReason 'AbortedByUser'" after a "request to stop plugin" by the client.
Expected behavior
have plugin login to humble without plugin timing out and crashing.
Plugin installed
directly from Galaxy
Provide logs
Hare are entries from all the various logs at around the time of the error:
ErrorLogs-plugin-humble-20191203_1253.zip
New method appears in api v0.53 https://galaxy-integrations-python-api.readthedocs.io/en/latest/galaxy.api.html#galaxy.api.plugin.Plugin.get_os_compatibility
We can tell about supported OS for given game. Previously Galaxy team checks this info, sometimes they was wrong.
I'm not sure what should be returned to keys - probably all systems, as this info just enables Install button (that shows a key)
Describe the bug
Trying to install Starbound from galaxy brings up the download page with the wrong ttl & t parameters. I guess those are identification keys for my account
Expected behavior
Open the correct download link
Plugin installed
directly from Galaxy
Provide logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.log
GalaxyClient.log
Is your feature request related to a problem? Please describe.
Humble Monthly is now Humble Choice, and provides options rather than just giving keys... it's a little annoying IMHO, but I guess is good if you wanted more control over what you actually get. As it is now, though, the available games don't show in the list until they are selected (which I believe requires redeeming the key)
Describe the solution you'd like
Ideally, these options would show up in titles. It's a little strange, because there might be 10 in the list but you can only choose 8, so technically you might not own 2 of the options, and if you've already chosen your limit, the unchosen ones aren't available, so it adds a bit of a wrench into the process... but, knowing what I COULD choose and having them in my games library is valuable to me so that I don't buy it elsewhere, etc.
Describe alternatives you've considered
Showing all in the list as 'potential' games is one option... not showing games if you have the max is another.
Additional context
Not sure what their API exposes, and there's a Classic and Choice sub, where choice only gets 9 but classic gets 10 options, so there are some variables that could make things more complicated
Describe the bug
Some games are shown in 3 copies. One is for the trove (this is another issue), but the other 2 should be merged.
I identified the issue for the following games:
In addition to this, I have a few "Unknown game" entries.
Expected behavior
The duplicates should be merged into one entry.
Attach logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.log.zip
Describe the bug
Plugin fails to launch according to the settings screen in GOG. Games appear in the list in GOG but the install/launch button can't be clicked because.
Attach logs
2019-09-12 21:12:21,902 - root - ERROR - Task exception was never retrieved
future: <Task finished coro=<StreamWriter.drain() done, defined at D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\streams.py:328> exception=ConnectionResetError('Connection lost')>
Traceback (most recent call last):
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\streams.py", line 348, in drain
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\streams.py", line 202, in _drain_helper
ConnectionResetError: Connection lost
2019-09-12 21:12:21,922 - root - ERROR - Task exception was never retrieved
future: <Task finished coro=<StreamWriter.drain() done, defined at D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\streams.py:328> exception=ConnectionResetError('Connection lost')>
Traceback (most recent call last):
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\streams.py", line 348, in drain
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\streams.py", line 202, in _drain_helper
ConnectionResetError: Connection lost
Describe the bug
Importing owned games fails when "trove" is one of the sources in config.ini. Based on the logs, as far as I can see, it looks like the error is thrown from had_trove_subscription
. Removing Trove from the sources and restarting GOG allowed all my other Humble games to import. Re-adding Trove caused the error to show up in the logs again, but my previously-imported games were still there.
Expected behavior
Trove games are successfully imported, or if the import fails, it does not block the other sources from importing.
Provide logs
plugin-humble.zip
this game https://www.igdb.com/games/castle-story
is recognised as this game https://www.igdb.com/games/castle-story--2
from my humble library
Describe the bug
Yesterday 3 new games were added to the Trove, but they aren't added to GoG Galaxy using this integration. The games are The Whispered World Special Edition, RuneStone Keeper and Operator.
Operator was already available as a regular Monthly games last week and is already handled by #37 I think.
Expected behavior
RuneStone Keeper and The Whispered World Special Edition should be added to Galaxy.
Attach logs
logs.zip
Describe the bug
When trying to connect to HumbleBundle from Galaxy 2.0's Settings page, I get "Plugin has crashed" and a retry link. Retrying does not resolve the issue.
Expected behavior
Login prompt of some kind to connect Galaxy to my Humble account.
Attach logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.zip
Please add an information to the Readme that you are using third party bug reporter.
Just for users information.
Describe the bug
No games appear in the games list. Secondary symptom - Humble Bundle does not appear on the platform list if I check the Filters.
Expected behavior
I have bought games from Humble that have non-DRM versions available for download. I expected those games to be visible.
Screenshots
Attach logs
(removed)
Describe the bug
Games that are just steam keys are listed in Gog.
In my case, Stardew valley is listed while it's just a steam key.
So when I click on the "Install" button, it just display the message "Wait while we're launching Humble bundle" and nothing happens.
Expected behavior
Only games that can be downloaded are listed.
Or just indicate in the game detail that its a key to redeem (but I suppose it's not possible).
Or, provide a way to redeem the key (am I dreaming?).
Provide logs
INFO - Handling notification: method=install_game, params={'game_id': 'stardewvalley_freedombundle_steam'}
2019-11-19 13:27:55,226 - root - DEBUG - Task manager jsonrpc server: creating task 93 (install_game)
2019-11-19 13:27:55,226 - root - DEBUG - Task manager plugin external: creating task 490 (install_game)
2019-11-19 13:27:55,315 - root - ERROR - list indices must be integers or slices, not str
Traceback (most recent call last):
File "C:\Users\amaur\AppData\Local\GOG.com\Galaxy\plugins\installed\humble_f0ca3d80-a432-4d35-a9e3-60f27161ac3a\plugin.py", line 143, in install_game
logging.error(f'Error for keygui: stderr_data', extra=args)
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32_init_.py", line 1961, in error
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32_init_.py", line 1412, in error
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32_init_.py", line 1518, in log
File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32_init.py", line 1493, in makeRecord
TypeError: list indices must be integers or slices, not str
2019-11-19 13:27:55,328 - root - DEBUG - Task manager plugin external: finished task 490 (install_game)
2019-11-19 13:27:55,329 - root - DEBUG - Task manager jsonrpc server: finished task 93 (install_game)
I had never switched away from Authy to TOTP for humble bundle so when I was trying to install this plugin and connect it I got no errors but none of my games were showing up. I just discovered that this was the issue by accident. Maybe the readme could use a note about that if there are other people facing this issue.
Describe the bug
Own a console-only game in your Humble Bundle library. It cannot be downloaded or installed from Humble Bundle. It only has a key. Sync your Humble Bundle library with GOG Galaxy 2.0 using the plugin. The Install button is enabled for all synced games, including those that cannot be downloaded, like the console-only games.
Expected behavior
The Install button should be disabled, as when dealing with games that cannot be installed.
Plugin installed
manually from your repository releases
Provide logs
This log shows the output of trying to install a game that cannot be installed. In this case, it's Okami HD for PS3.
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.zip
Is your feature request related to a problem? Please describe.
Only some games are automatically detected as installed on Windows based on registry. We need all.
Describe the solution you'd like
Add scanning folders feature that will perform batch matching based on root path provided in config file.
Or maybe list of root paths as general solution.
Use existing heuristics to find all games with executables.
Describe alternatives you've considered
Manual matching games with minimal gui shown after clicking on install.
It is sill an option but requires work on gui and not gives batch matching. Do later.
Do not use config file but cache and chromium gui at last login step.
Chromium gui would be nice as user dont have to manually change any file, but the window cannot be called on demand (well, maybe on reconnecting). It is definitely thing to do, but maybe as a next step altogether with other options and login window #15 Do it later.
just use ProgramFiles / Applications as a root path for recursive search.
May be heavy for CPU and the first try on Windows failed because of no read rights for whole filesystem. Sounds like a blocker but need to try on mac.
Describe the bug
After installing the plugin, none of my games got imported. The "Humble Bundle" tab in Galaxy shows no results.
Expected behavior
It should've imported all my games. My config:
[library]
sources = [ "drm-free", "keys", "trove",]
show_revealed_keys = false
[installed]
search_dirs = []
Plugin installed
Tried installing directly from the client and the rep as well. Neither made a difference.
Provide logs
Tried integration sync, disconnecting/reconnecting my account, but to no avail.
Sentry Issue: HB-GALAXY-VY
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:\\WINDOWS\\iun504.exe C:\\Program Files (x86)\\Blades of Avernum'
local\winappfinder.py in _find_executable at line 70
location = uk.install_location_path \
or (upath.parent if upath else None) \
or (ipath.parent if ipath else None)
# find all executables and get best machting (exclude uninstall_path)
> if location and location.exists():
executables = list(set(self._pathfinder.find_executables(location)) - {str(upath)})
best_match = self._pathfinder.choose_main_executable(human_name, executables)
if best_match is None:
logging.warning(f'Main exe not found for {human_name}; \
loc: {uk.install_location}; up: {upath}; ip: {ipath}; execs: {executables}')
Hey,
I was wondering if it would be possible to include keys as well, I it would also be nice if the integration would only scrap keys that are not redeemed yet.
Maybe I am the only one, but I prefer not to activate a game key from humble bundle if I don't intend to play it immediately. Therefore this would be help me to easier track which games I own already.
Nonetheless, thanks for the work you've done already!
this is on the latest 2.0.11 version of galaxy. connecting turns up 'no results' for my account. it seems to connect as normal. one thing, it launches the CMD window and doesnt do anything with it.
Describe the bug
In the Humble Bundle section of imported games I can only see listed the drm-free games. My config under C:\Users\Albert\AppData\Local\GOG.com\Galaxy\plugins\installed\humble_f0ca3d80-a432-4d35-a9e3-60f27161ac3a\config.ini
includes the following config:
[library]
sources = [ "drm-free", "keys", "trove"]
show_revealed_keys = false
[installed]
search_dirs = []
Expected behavior
Keys and trove games should be listed.
Plugin installed
From GOG search plugins dialog.
Describe the bug
Case where humble order were deleted for any reason. ex:
Looks like the keys were associated with my account but deactivated because of multiple redeem attempts
Expected behavior
Skip this order, do not crash plugin
Provide logs
2019-11-05 00:40:41,360 - root - WARNING - Got status 404 while performing GET request for https://www.humblebundle.com//api/v1/order/%7BOrder#%7D?all_tpkds=true
Describe the bug
The plugin shows trove games even though I am not a monthly subscriber
Expected behavior
Only show trove games if the user is a monthly subscriber
Screenshots
Irrelevant
Attach logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.zip
Master task: #73
Describe the bug
Literally minutes after adding the integration, I installed A Slow Year as a test of how the integration works- the direct to the download worked fine, I downloaded and installed the game. Galaxy recognized the install, and I now had a "Play" button. Upon pressing it, I got the message at the bottom of the window that a Humble game was being started, but after a few seconds, it went away, and nothing further happened.
To check to see if this was an error with the game itself, I navigated to where I had installed it and ran it directly. It worked fine.
Expected behavior
Upon clicking "Play" on an installed game that Galaxy recognizes as installed, game is started.
Plugin installed
directly from Galaxy
Provide logs
Just so you know, GitHub throws an error if you try to attach a 7z file directly to this issue input area. Not sure if they support uploading them later.
Is your feature request related to a problem? Please describe.
I have two humblebundle accounts, with different libraries. It's possible to syncronize both on GOG Galaxy?
Describe the solution you'd like
More than one plugin integration, each logged to one account.
Describe alternatives you've considered
Changing the plugin guid in manifest.json allowed me to have two integrations listed, but I can't authenticate again.
Describe the bug
Expected behavior
5. Display "Connected" message and start importing library
NOTE: Can confirm that the expected behavior is happening on version 0.4.1 after about a second.
Attach logs
plugin-humble-f0ca3d80-a432-4d35-a9e3-60f27161ac3a.log
Use Galaxy db to cache owned games and make fetching for games faster. This will also simplify all changes in library provided by config.toml (what games should be visible: trove, revealed keys ect.)
Hey,
we're planning on creating a fork/autoupdate system with selected plugins. This would allow us to create a list of curated and reviewed plugins which could be of use to GOG Galaxy people.
Of course you will be credited as the creator and developer of the plugin in the fork readme and possibly other places.
Before we do that we need to ask you to create a fog_release
branch which would contain only your plugin code, manifest.json
and a requirements.txt
file (without modules
directory). For Github releases, we will include whole directory where manifest.json
is placed and build dependencies directly there. This is for easier code verification. Also, please use only not extended symver versions in manifest.json
. That is because we need to compare versions to know if synchonization is needed.
Code for repo synchronization can be found here: https://github.com/FriendsOfGalaxy/galaxy-integrations-updater
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.