It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
There's a work in progress Readme at https://github.com/Kalanyr/gogrepo/blob/dev/README.md

Though it's wrong about DBus-python and caffeinate support atm, I ended up using PyQT5 and its dbus setup for Linux and the Mac's internal power management API for OSX.

It's also targeted at the dev build I'm working on as a cutover point. Rather than last master. AFAIK the current dev build is stable and functional but that may not be true at the time you read this
Post edited April 05, 2018 by Kalanyr
As a heads up the Windows version of Ash of Gods has had problems today. These were GOG side. The issue was fixed while I was typing this and working out what was going on to send to GOG. You'll need to update ash_of_gods and then clean up your !downloading folder manually when it's done.

(As a note if you're using the dev build and using -ids to update a specific game remember that you need to specify -full to get the behavior you likely expect (otherwise it will match ids only inside new/updated games, I might change that so -ids implies -full unless otherwise specified. ).

ETA - GOG has now marked the game as updated. So things should be fine from here unless you have borked stuff in !downloading , in which case you should manually remove it. At some stage I'll add a scan that verifies that any files in !downloading are actually in the manifest and nukes the ones that aren't to the start or end of the download command.
Post edited April 06, 2018 by Kalanyr
Kalanyr, I just want to give you another huge thanks for all the work you're putting into gogrepo. The improvements and fixes you're implementing are enormously appreciated.

THANK YOU !!!!!!
I second this. Such a tool is something that needs to be maintained constantly, and needs updates to react to changes on the website. So I am very glad Kalanyr took over the continued support for this great tool.
I am new to this tool and I was about to use the version posted in the first post. I jumped to the last page here to see what things are like. Should I be using a forked version? Where can I get it?

Also, I couldn't see this basic usage in the docs anywhere. How do I have it use the files I have already downloaded? How do I tell it where they are?
avatar
Kalanyr: Stopping the system suspending/hibernating if GOGrepo is running (not for critical battery etc, those are higher priority), there's ways to do it on Windows / Mac that rely on their respective native APIs (which is not great but it's something) , but there's no even semi-standardized method on *nix, it depends on at least one of : a) The desktop manager (gnome / kde /etc) b) systemd (system suspend inhibits which may also require running as root because the system power management daemon treats all of its operations as privileged (which is generally sensible but probably not for something that can be simulated by jiggling the mouse) and they all rely on dbus which doesn't have a currently maintained full python implementation for bonus points).
imho the concept of automatic suspend is just inherently flawed with regard to long running console applications, whether that is gogrepo, wget, ffmpeg, rsync or just a simple cp. It is not realistic that all these commands will ever be patched to include code to inhibit sleep/shutdown. And giving the user the impression that they can expect this to "just work" is just wrong i think.
The right answer I think should be that whatever system does the power management in your setup should provide a small console command to inhibit sleep mode, let's call it "nosuspend". Users can then simply use that when necessary, like:

nosuspend wget $BIG_DOWNLOAD
that fits much better into the unix philosophy where each tool concentrates on implementing one task. It also saves you the time to bother with implementing all that additional fluff for your tool.

for systemd users there seems to be a usable tool in existence already: systemd-inhibit

just putting it in front of your gogrepo.py call should just work.
(that also has the added benefit that it will do the right thing even if gogrepo crashes halfway through)
Post edited April 10, 2018 by immi101
avatar
immi101: imho the concept of automatic suspend is just inherently flawed with regard to long running console applications, whether that is gogrepo, wget, ffmpeg, rsync or just a simple cp. It is not realistic that all these commands will ever be patched to include code to inhibit sleep/shutdown. And giving the user the impression that they can expect this to "just work" is just wrong i think.
I fully agree with this view. I think Windows is "broken" if it expects different applications or console scripts to come up with some "hacks" to stop it from going to sleep or hibernate mode.

I hate it that by default Windows 10 tries to put the computer sleep so aggressively, even if it is in plugged in. I can understand it in battery mode, but NOT when plugged in. So the first thing I did with my new work laptop was to go through all the power options, and switch off all the "power saving" features when the system is plugged in. Well, maybe switching off the monitor is ok, but that is as far as I go...

Anyway, I am not against gogrepo having functionality to try to prevent system suspend, but just that it isn't necessarily its responsibility. Up to Kalanyr, of course.
Post edited April 10, 2018 by timppu
I actually managed to mostly deal with this at the time.
Temporary suspensd inhibition should work on Windows / Mac / Linux on the current dev build. I'd appreciate testing by non-OpenSUSE Linux users (particularly BSD and Gnome users ) and Mac users as I'm not in a position to test those but will work with people to make sure they behave correctly.
GOG has gotten a lot better about minimizing the need for full updates I see. They only had 14 GB of unmarked updates for me this month (a big improvement over this time last year when it would have been ~60 GB on average).

They big flaws still remaining seem to be:
Not marking a game that you've bought DLC/Expansions for as updated.
Not marking games that have moved from pre-order/in-dev to live as update.
Is it yet possible to filter out certain extras from ever downloading? For instance, "making of videos" ... Russian localizations (some fall under extras rather than binaries ie: don't starve) and FLAC soundtracks?

Some games have an exorbitant amount of extras that totally dwarf the main install. I'm mainly interested in grabbing manuals (English only), wallpapers and mp3 OSTs.

I was unable to find the answer in the Readme, nor did I find it searching this topic.

I have a request as well:
Is there a way to be able to pull the box art for each game and save it in each game's folder as folder.jpg? The box art can be pulled from the gog mix page. I've done this manually for years and it gives the effect of your gog backup folders somewhat resembling the old gog library shelf.
Attachments:
bdr1v7mh.jpg (106 Kb)
avatar
Phin77: Is it yet possible to filter out certain extras from ever downloading? For instance, "making of videos" ... Russian localizations (some fall under extras rather than binaries ie: don't starve) and FLAC soundtracks?

Some games have an exorbitant amount of extras that totally dwarf the main install. I'm mainly interested in grabbing manuals (English only), wallpapers and mp3 OSTs.

I was unable to find the answer in the Readme, nor did I find it searching this topic.

I have a request as well:
Is there a way to be able to pull the box art for each game and save it in each game's folder as folder.jpg? The box art can be pulled from the gog mix page. I've done this manually for years and it gives the effect of your gog backup folders somewhat resembling the old gog library shelf.
No, I do have regex filtering on the to-do list but my current priority is a new stable version with only minimal extra features (basically the current dev branch with a built in updater and some minor tinkering).

Hmmmm. I believe the art is pretty trivial and might be simple enough to Implement in the near future. I'll look into.
avatar
Kalanyr: No, I do have regex filtering on the to-do list but my current priority is a new stable version with only minimal extra features (basically the current dev branch with a built in updater and some minor tinkering).

Hmmmm. I believe the art is pretty trivial and might be simple enough to Implement in the near future. I'll look into.
Sounds great! Good to know that filtering is on the horizon at some point.

All my folder.jpg files would end up in the orphan folder if I were to run the script as is it now but that's on me for having mine set up that way.

Being able to tell it to ignore certain files (folder.jpg and mod installers) will definitely get me to replace my current method for updating... (which is to manually use the gog downloader on announced updates... very time intensive and I miss all the unannounced updates)
avatar
Kalanyr: No, I do have regex filtering on the to-do list but my current priority is a new stable version with only minimal extra features (basically the current dev branch with a built in updater and some minor tinkering).

Hmmmm. I believe the art is pretty trivial and might be simple enough to Implement in the near future. I'll look into.
avatar
Phin77: Sounds great! Good to know that filtering is on the horizon at some point.

All my folder.jpg files would end up in the orphan folder if I were to run the script as is it now but that's on me for having mine set up that way.

Being able to tell it to ignore certain files (folder.jpg and mod installers) will definitely get me to replace my current method for updating... (which is to manually use the gog downloader on announced updates... very time intensive and I miss all the unannounced updates)
.
There's actually a list called ORPHAN_FILE_EXCLUDE_LIST declared already, you could add "folder.jpg" to that.

For mod installers thats why gogrepo doesn't orphan subdirectories, you can create a folder called eg mods inside a game folder and put the installers in there (I do this with the infinity engine stuff already)
Post edited April 20, 2018 by Kalanyr
avatar
Phin77: Sounds great! Good to know that filtering is on the horizon at some point.

All my folder.jpg files would end up in the orphan folder if I were to run the script as is it now but that's on me for having mine set up that way.

Being able to tell it to ignore certain files (folder.jpg and mod installers) will definitely get me to replace my current method for updating... (which is to manually use the gog downloader on announced updates... very time intensive and I miss all the unannounced updates)
avatar
Kalanyr: .
There's actually a list called ORPHAN_FILE_EXCLUDE_LIST declared already, you could add "folder.jpg" to that.

For mod installers thats why gogrepo doesn't orphan subdirectories, you can create a folder called eg mods inside a game folder and put the installers in there (I do this with the infinity engine stuff already)
Looks like my ignorance was holding me back. Well, I know what I'ma be doing tonight!

Thanks for continuing the project. I've been following it for a while, waiting until it would work for my setup.
Hi, I'm having trouble logging in with version 908836a of the script. I've attempted deleting gog-cookies.dat and disabling 2-factor auth but login still fails.
Post edited April 24, 2018 by Nix31