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

×
dlc 15 didn't produce an update tag in my library, but with id you could actual force it.
> gogrepo.py update -os windows -lang en de -id the_witcher_3_wild_hunt
> gogrepo.py download
The same for game of thrones...

I wonder how we could catch these updates.
Post edited July 22, 2015 by disi
I would like to make the script compatible with Python 3. I think I can do it without creating another version but by tweaking the imports mostly.

I this is wished I can then push a patch to the github repository.
avatar
disi: ... Just the partial downloaded files will be discarded.
avatar
Gede: I see. If there is already a -dryrun option (I missed it, sorry), and it mentions how much is left to download, then I suppose it already does what I was asking for. Thank you for informing me.

BTW, I briefly looked at the code, and I had the impression that some of it was handling the incremental download of files (via the file seek() & request() with byte_range). But it seems I was mistaken. If the script does not support resume, then it may be added with some ease.
The files are at most 4GB, there are four threads working through the queue. The most you lose is 4x4GB = 16GB if you have to manually interrupt the download.
And this is only theory crafting, because most of the files are not 4GB in size.
Also you would need to interrupt at ~3.99GB download for all four threads :D
Post edited July 23, 2015 by disi
Hi , this is working fantastically now. I've got my collection up to date and verified perfectly (even better than it was with GOG Downloader now).

Could I suggest some additions to the future clean function ?

Could you add a move (rather than delete version) that copies files that would be "cleaned" to an identical folder structure in a specified directory (skipping creating the game folder if there's nothing that would be cleaned) ? I have some files that I have to store manually myself because they were missing from GOG (eg Age of Wonders manuals) and I'd like the opportunity to save them before nuking all the outdated installers/patches/extras.

Related to that could you allow the specification of a sub directory within a game to not be deleted ? Since GOGs default structure never involves folders inside a game folder this shouldn't lead to clashes. I don't have things structured this way right now but adding an extra subfolder to each relevant game called "personal" or "my_extras" or something would be a good way to automatically manage stuff like those missing manuals / favorite mods / etc.
avatar
Trilarion: I would like to make the script compatible with Python 3. I think I can do it without creating another version but by tweaking the imports mostly.

I this is wished I can then push a patch to the github repository.
Nice commit, thanks.
avatar
disi: ... Nice commit, thanks.
Thanks. I just made the script compatible to Python 3, nothing more. Made a pull request.
avatar
woolymethodman: $ ./gogrepo.py update # to fetch game info from GOG servers
...
$ ./gogrepo.py download -os win -lang en # to download all windows english game and bonus files
I am now trying to run the script completely, downloading all my GOG games. Are these instructions still up to date (I see the message was updated June 16 2015), considering I want to download all English + Windows versions of games for now?

"./gogrepo.py update" worked. "./gogrepo.py download -os win -lang en" complained something about invalid options "-os -lang en" or something like that, and failed to run.

The readme.md file that comes with the script gives a bit different commands for the same purpose, I gather. If I understood right, it goes like this:

./gogrepo.py update -os windows -lang en (so you should use the OS and language options already with the update command, and -os option is looking for "windows", not "win"?)

./gogrepo.py download (no options used at all? At least -os and -lang are not listed as valid options for the download command in the readme.md)

Is this now the correct way to download all English/Windows versions of games and extras?

Ps. I'm running the script in Linux Mint, and god damn it I've had problems trying to run it on an external USB hard drive, as that is the only place where I have enough room for my GOG games. That laptop has only small internal hard drives.

I first connected the NTFS-formatted 2TB USB hard drive to the Linux laptop, it mounted fine automatically etc. I copied the script to it, but then Linux wouldn't let me change the permissions for the script so that I could actually run it there ("chmod +x gogrepo.py"). I googled for this problem which many seemed to have with USB hard disks, especially NTFS-formatted, in Linux. Some suggested changing the ownership with chown, but others pointed out that doesn't work with NTFS-formatted partitions.

I ended up reformatting the whole USB hard drive to ext4 with the gparted utility, and now I can at least run the script in it, at least with sudo, like:

sudo ./gogrepo.py update -os windows -lang en (this is currently running, hopefully the download will go fine as well)

Then I need to figure out how to transfer the downloaded GOG games from this ext4 USB hard disk to my Windows 7 PCs... Hopefully there are some ext4 drivers for Windows 7 that let me at least read the hard disk there, need to google for it.

The other option would have been that I run the script in Windows 7, but earlier I had harder time to do it there (to get all the needed dependencies in place; in Linux I seemed to be missing only html5lib which was easy to install with the Software Manager), and I need to do some other stuff on that Windows 7 PC which would interrupt the downloads.

Anyways, it'll be interesting to see how long it will take to download all my 1023 GOG games (only Windows + English) over my 10Mbps cable modem connection...
Post edited July 29, 2015 by timppu
avatar
timppu: ...
Hi, why not use the dest path parameter?

You WILL run into trouble transfering the files from ext4 to Windows 7. There is only some old obsolete ext2 driver for Windows XP, which is not signed by MS and you cannot load unsigned drivers since Windows Vista.

To run the first update (the manifest of files will be saved on the laptop to the directory gogrepo.py runs in):
$ gogrepo.py -os windows -lang en
Then run the download to a specific folder:
$ gogrepo.py download /mnt/<your_external_ntfs_formatted_disk>
avatar
disi: Hi, why not use the dest path parameter?
This occurred to me after I found out about it. :) I guess I should have read the readme.md more thoroughly first. Hopefully that works, ie. the script is able to download the files (and create subdirectories) directly to the external NTFS hard disk.

avatar
disi: You WILL run into trouble transfering the files from ext4 to Windows 7. There is only some old obsolete ext2 driver for Windows XP, which is not signed by MS and you cannot load unsigned drivers since Windows Vista.
How about this?

http://www.ext2fsd.com/

"Open source ext3/4 file system driver for Windows (2K/XP/WIN7/WIN8)"

Anyway, when i get home, I'll probably try with the existing manifest file whether the script can successfully direct the downloads to the external NTFS partition, rather than trying to get a ext4 partition to be recognized by Windows. We'll see. Thanks for the suggestion.
Post edited July 29, 2015 by timppu
avatar
disi: You WILL run into trouble transfering the files from ext4 to Windows 7. There is only some old obsolete ext2 driver for Windows XP, which is not signed by MS and you cannot load unsigned drivers since Windows Vista.
avatar
timppu: How about this?

http://www.ext2fsd.com/

"Open source ext3/4 file system driver for Windows (2K/XP/WIN7/WIN8)"

Anyway, when i get home, I'll probably try with the existing manifest file whether the script can successfully direct the downloads to the external NTFS partition, rather than trying to get a ext4 partition to be recognized by Windows. We'll see. Thanks for the suggestion.
I haven't tried it, seems like with zfs on Linux at the beginning, where they used a daemon to run the driver rather than loading it into the kernel. If you use it, let me know how it works.
This one does not: http://www.fs-driver.org/ (the last time I tried)
Downloading now directly to the external NTFS hard disk. So far so good... :)

It seems my 1023 games + extras (only English Windows versions) takes around 1255 gigabytes or so, so a 2 terabyte USB hard drive is still enough for my GOG collection for some time. Phew! Nice that the script tells right away how much data is still to be downloaded.
avatar
catpower1980: Interesting. Although I won't use it, I suppose there is a feature to download only a specific game in the librabry because for those of us with 100+ games and largely beyond, it would just take days to download our entire library with bonus included (and I don't even think a 2To hard drive could handle it)
avatar
Mnemon: Have 144 games. Fit easily (including all extras and both windows and linux version where available) on a 1 TB drive that has plenty of other things on [loads of raw photos / some films / many other bits] with around 400GB still free.

A lot of the games here are well under 1gb each.
I have over 200 games and they take up less than 200gb. with the extras and several different languages.

I don't buy new games here though in most cases. Especially since the downloader doesn't work very well for Linux.
avatar
timppu: Downloading now directly to the external NTFS hard disk. So far so good... :)

It seems my 1023 games + extras (only English Windows versions) takes around 1255 gigabytes or so, so a 2 terabyte USB hard drive is still enough for my GOG collection for some time. Phew! Nice that the script tells right away how much data is still to be downloaded.
I have exact: 1.10 TB on the file system (ntfs) with only 444 games.
But I also have them in two languages...
avatar
disi: ... Nice commit, thanks.
avatar
Trilarion: Thanks. I just made the script compatible to Python 3, nothing more. Made a pull request.
Merged, thank you Trilarion. I wasn't sure I wanted to have the single script do py2 + py3, or split them up.. but the changes seemed clean enough.
avatar
Kalanyr: Hi , this is working fantastically now. I've got my collection up to date and verified perfectly (even better than it was with GOG Downloader now).

Could I suggest some additions to the future clean function ?

Could you add a move (rather than delete version) that copies files that would be "cleaned" to an identical folder structure in a specified directory (skipping creating the game folder if there's nothing that would be cleaned) ? I have some files that I have to store manually myself because they were missing from GOG (eg Age of Wonders manuals) and I'd like the opportunity to save them before nuking all the outdated installers/patches/extras.

Related to that could you allow the specification of a sub directory within a game to not be deleted ? Since GOGs default structure never involves folders inside a game folder this shouldn't lead to clashes. I don't have things structured this way right now but adding an extra subfolder to each relevant game called "personal" or "my_extras" or something would be a good way to automatically manage stuff like those missing manuals / favorite mods / etc.
Indeed I want to be able to "orphan" unmatched files including their relative dirs (the_witcher\old_patch.exe -> orphaned\the_witcher\old_patch.exe).

You can review the "orphaned" directory and delete as needed.

There will be an "exclude" file/dir path config.
Post edited July 30, 2015 by woolymethodman
avatar
timppu: ./gogrepo.py update -os windows -lang en (so you should use the OS and language options already with the update command, and -os option is looking for "windows", not "win"?)

./gogrepo.py download (no options used at all? At least -os and -lang are not listed as valid options for the download command in the readme.md)

Is this now the correct way to download all English/Windows versions of games and extras?
Here's what I run (usually in a tmux, and tee'd, but sometimes cronjob'd):

./gogrepo.py update -os windows linux -lang en
./gogrepo.py download
./gogrepo.py verify

It's assumed that you want to download whatever's in your manifest from your update command.. so download doesn't take -os or -lang. I could add that though.

GOG changed their naming of windows type from 'win' to 'windows'. I thought about masking that, but decided instead to print an error and show the valid options ['windows', 'linux', 'mac']