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

×
I'm working on the built in update option at the moment.

Not sure when I'm going to roll it out but when I do the repo structure will change a bit.

Dev branch will be retired unless I'm messing with stuff that I think is particularly likely to nuke a manifest or something.

The master branch repo's files will be a rolling update kind of thing (so latest features but may bork stuff sometimes), I will endeavour to test stuff.

I'll be issuing releases which will become the standard build, at that point.

gogrepoc will have an auto-updater included and I'll have some stuff where you can decided if you want standard/rolling/no auto-updates (useful for people who want to do dev work so running the script doesn't nuke your changes, I'll put in a manual option for testing for that case too).
I need to store some info to do the auto-updates correctly, so I figure I'll take this opportunity to do a sort of configuration settings kind of thing.

So going to do a straw poll:

Do you prefer

a) adding the config settings to the manifest
b) having a new file eg gog-config.dat for these settings

?
avatar
Kalanyr: I need to store some info to do the auto-updates correctly, so I figure I'll take this opportunity to do a sort of configuration settings kind of thing.

So going to do a straw poll:

Do you prefer

a) adding the config settings to the manifest
b) having a new file eg gog-config.dat for these settings

?
I prefer a separate file if possible. Cleaner for me to TS if I need to.
Think I'm having a similar issue to post 1009.

Verify
01:03:40 | verifying overlord_ii\setup_overlord_ii_1.0_(22015)-1.bin...
01:03:46 | mismatched md5 for overlord_ii\setup_overlord_ii_1.0_(22015)-1.bin

Unfortunately doesn't tell me what md5 it did calculate for the file.

manifest
{'desc': 'Overlord II (Part 2 of 2)',
'href': <redacted>
'lang': 'English',
'md5': 'ca71da88df3889f92148efbbb4693e18',
'name': 'setup_overlord_ii_1.0_(22015)-1.bin',
'os_type': 'windows',
'prev_verified': False,
'size': 3099211433,
'version': '1.0'}
avatar
SKARDAVNELNATE: Think I'm having a similar issue to post 1009.

Verify
01:03:40 | verifying overlord_ii\setup_overlord_ii_1.0_(22015)-1.bin...
01:03:46 | mismatched md5 for overlord_ii\setup_overlord_ii_1.0_(22015)-1.bin

Unfortunately doesn't tell me what md5 it did calculate for the file.

manifest
{'desc': 'Overlord II (Part 2 of 2)',
'href': <redacted>
'lang': 'English',
'md5': 'ca71da88df3889f92148efbbb4693e18',
'name': 'setup_overlord_ii_1.0_(22015)-1.bin',
'os_type': 'windows',
'prev_verified': False,
'size': 3099211433,
'version': '1.0'}
Sometimes GOG provides the wrong md5 data. Can you download the appropriate file from GOG.com using the web browser and check if it has the wrong md5.

Sometimes they update a download file without changing the name or markikng the game as updated too. In which case you want to use -ids to update the specific game before downloading again.
avatar
Kalanyr: b) having a new file eg gog-config.dat for these settings
Separete.

What would be the benefit of having them in the manifest file? If one would e.g. remove the old manifest file in order to start the update from scratch (due to an error or whatever), wouldn't he then lose the configuration settings, if they were in the manifest file?
avatar
SKARDAVNELNATE: Think I'm having a similar issue to post 1009.

Verify
01:03:40 | verifying overlord_ii\setup_overlord_ii_1.0_(22015)-1.bin...
01:03:46 | mismatched md5 for overlord_ii\setup_overlord_ii_1.0_(22015)-1.bin

Unfortunately doesn't tell me what md5 it did calculate for the file.

manifest
{'desc': 'Overlord II (Part 2 of 2)',
'href': <redacted>
'lang': 'English',
'md5': 'ca71da88df3889f92148efbbb4693e18',
'name': 'setup_overlord_ii_1.0_(22015)-1.bin',
'os_type': 'windows',
'prev_verified': False,
'size': 3099211433,
'version': '1.0'}
avatar
Kalanyr: Sometimes GOG provides the wrong md5 data. Can you download the appropriate file from GOG.com using the web browser and check if it has the wrong md5.

Sometimes they update a download file without changing the name or markikng the game as updated too. In which case you want to use -ids to update the specific game before downloading again.
That file is currently defective. GOG is most likely going to fix that soon.
avatar
Kalanyr: I need to store some info to do the auto-updates correctly, so I figure I'll take this opportunity to do a sort of configuration settings kind of thing.

So going to do a straw poll:

Do you prefer

a) adding the config settings to the manifest
b) having a new file eg gog-config.dat for these settings

?
avatar
paladin181: I prefer a separate file if possible. Cleaner for me to TS if I need to.
I agree, a separate file is much cleaner.
avatar
Geralt_of_Rivia: That file is currently defective. GOG is most likely going to fix that soon.
Looks like they fixed it.
I've questioned whether or not it might be wise to even have a subdirectory for gogrepo as well, though with permissions and such, that can be problematic.

Is there an option i missed to change the number of retries gog does before giving up, or should i set that myself? 3 retries is not enough, lately, with all the gateway errors.
avatar
kohlrak: I've questioned whether or not it might be wise to even have a subdirectory for gogrepo as well, though with permissions and such, that can be problematic.

Is there an option i missed to change the number of retries gog does before giving up, or should i set that myself? 3 retries is not enough, lately, with all the gateway errors.
There's no command line option. It should be realtively easy to change the default in the code, I think it's specified in the request function definition IIRC.
avatar
kohlrak: I've questioned whether or not it might be wise to even have a subdirectory for gogrepo as well, though with permissions and such, that can be problematic.

Is there an option i missed to change the number of retries gog does before giving up, or should i set that myself? 3 retries is not enough, lately, with all the gateway errors.
avatar
Kalanyr: There's no command line option. It should be realtively easy to change the default in the code, I think it's specified in the request function definition IIRC.
Found it: global at the beginning of the file. I'm having some trouble with certain files, unfortunately, but i'm pretty sure it's on gog's end. Not sure what's going on.
02:33:35 | failed to download cotn_danny_baranowsky_ost_flac.zip, byte_range=(0, 1666309149) (10 retries left) -- will retry in 5s...
02:33:40 | 1589.1MB 2.8MB/s 1x crypt_of_the_necrodancer/cotn_danny_baranowsky_ost_flac.zip
02:33:40 | 1182.5MB 2.7MB/s 1x republique/republique_ost_complete_flac.zip
Both files keep failing with a similar error.
Post edited July 23, 2018 by kohlrak
I don't know if there is already a plan for this, but in my local copy (based off of Kalanyr's dev branch) I added a '-skipfiles' that use the standard python fnmatch module (https://docs.python.org/3/library/fnmatch.html) to skip individual files if they match (for times when there's a single huge extra you don't want, or alternate languages are extras instead, etc.).

If there's interest I can file a pull request later.

$ gogrepo download -skipfiles '*_russian_*' 'bonus_*_ru.zip' -ids planescape_torment -dryrun
05:35:09 | loading local manifest...
05:35:09 | downloading games with id(s): {planescape_torment}
05:35:09 | skipping files that match: {"*_russian_*", "bonus_*_ru.zip"}
05:35:09 | scanning manifest for renames...
05:35:09 | {planescape_torment}
05:35:09 | pass setup_planescape_torment_1.01_(a)_(10597).exe
05:35:09 | pass planescape_torment_en_2.0.0.14.pkg
05:35:09 | pass pst_manual.zip
05:35:09 | pass pst_wallpapers.zip
05:35:09 | pass pst_soundtrack.zip
05:35:09 | pass pst_avatars.zip
05:35:09 | pass pst_artworks.zip
05:35:09 | pass pst_book.zip
05:35:09 | skip setup_planescape_torment_russian_2.1.0.9.exe (matches "*_russian_*")
05:35:09 | skip bonus_planescape_torment_001_ru.zip (matches "bonus_*_ru.zip")
05:35:09 | skip gog_planescape_torment_russian_2.2.0.10.sh (matches "*_russian_*")
05:35:09 | 0.00GB left to download
05:35:09 | --
05:35:09 | total time: 0:00:00.198223
05:35:09 | exiting...
avatar
jczorkmid: ...
I'd very much like that... but I'd maybe like it more to be in some form of blacklist file or something, where you can list the filenames that you want to be skipped, be it wildcards, regular expressions or even exact filenames. The blacklist entries could be also located in the separate config file that I recall kalanyr is going to implement, in its own section?

Not sure what is should affect, maybe the files should be included in the manifest file (during update), but they would be skipped when running download or verify. Or something like that.

ALSO, I would very much like that it would keep a log somewhere which files exactly it is skipping, just so that you can detect if you are accidentally blacklisting files that you didn't mean to blacklist, when using either regular expressions and/or wildcards.

Any thoughts? I know many games have quite gigantic extra files, like some fanmade Russian translations etc. (you get them in extras even if you are downloading only the English version). Then one could keep adding them to the blacklist file as they are detected, and maybe people could even show here their own personal blacklists of unneeded files they have blacklisted, so that others are aware too and even use other people's blacklist entries.
Post edited July 26, 2018 by timppu
avatar
jczorkmid: I don't know if there is already a plan for this, but in my local copy (based off of Kalanyr's dev branch) I added a '-skipfiles' that use the standard python fnmatch module (https://docs.python.org/3/library/fnmatch.html) to skip individual files if they match (for times when there's a single huge extra you don't want, or alternate languages are extras instead, etc.).

If there's interest I can file a pull request later.

$ gogrepo download -skipfiles '*_russian_*' 'bonus_*_ru.zip' -ids planescape_torment -dryrun
05:35:09 | loading local manifest...
05:35:09 | downloading games with id(s): {planescape_torment}
05:35:09 | skipping files that match: {"*_russian_*", "bonus_*_ru.zip"}
05:35:09 | scanning manifest for renames...
05:35:09 | {planescape_torment}
05:35:09 | pass setup_planescape_torment_1.01_(a)_(10597).exe
05:35:09 | pass planescape_torment_en_2.0.0.14.pkg
05:35:09 | pass pst_manual.zip
05:35:09 | pass pst_wallpapers.zip
05:35:09 | pass pst_soundtrack.zip
05:35:09 | pass pst_avatars.zip
05:35:09 | pass pst_artworks.zip
05:35:09 | pass pst_book.zip
05:35:09 | skip setup_planescape_torment_russian_2.1.0.9.exe (matches "*_russian_*")
05:35:09 | skip bonus_planescape_torment_001_ru.zip (matches "bonus_*_ru.zip")
05:35:09 | skip gog_planescape_torment_russian_2.2.0.10.sh (matches "*_russian_*")
05:35:09 | 0.00GB left to download
05:35:09 | --
05:35:09 | total time: 0:00:00.198223
05:35:09 | exiting...
avatar
jczorkmid:
I was planning on eventually* adding a filtering mechanism and I certainly welcome pull requests.

*I hadn't even decided on whether to use fnmatch or regexp or something else.
Post edited July 26, 2018 by Kalanyr