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

×
avatar
Smannesman: I did read the readme, it was just a way of both asking if there was an option for it that wasn't documented and to indicate a desire for such an option if it did not exist yet.
I agree it would be better the option would be for the actual download command, not the update command. So you can decide afterwards (when you have the complete manifest file) which OS and language versions you want to download at that time. Now you have to make the decision already on the update command phase.

But then, I presume other commands (verify, clean etc.) would need those same options? And you'd need to remember to always use those same language and os options with all those commands you run? Or? Maybe the author can tell if that is what it would mean.

Overall, the current way is also pretty ok to me personally. I now have a manifest file for the language and OS versions (English, Windows) that I care about, and keep that manifest file up to date with -skipknown and -updateonly every now and then. And then sometimes run clean (to get rid of obsolete files/directories) and download (to download any changed or missing parts).

Maybe every few months I might redownload the whole manifest file, just to make sure it is fully up to date, in case e.g. -skipknown or -updateonly missed something for some reason. Not sure if that is theoretically possible, e.g. if I manually go to check some updated GOG game, the update flag gets cleared for that game, so gogrepo with -updateonly will not detect it anymore? Or some other reason a game is unflagged, e.g. a GOG website glitch?
Post edited September 17, 2015 by timppu
I'll add something so that running 'download' command with -dryrun will also display the total size to download.

The reason "update" is what takes -os and -lang is because it dictates how much you're going to hammer/download info from GOG. ie. every file is requested to determine MD5 and file size information. If you don't care about mac, linux, or other languages, why would you want to download information about those.

"download" doesn't care about these, the assumption is that your manifest has everything you care about downloading. You can always download specific games if you want using the options.

The reason update takes long, is because I add a delay between every GOG web request.. this is so you don't get banned for doing too many requests to their servers. In addition, each file is requested in order to determine the expected MD5 and file size. I could provide option to skip this at the cost of having MD5 and filesize data. To me this information is important to ensuring your collection is complete and pristine.
There is a reason to run a full update occassionally: GOG doesn't mark new/changed DLC or extras as "updated" , so you have to do a full update to catch any changes to those.
avatar
Kalanyr: There is a reason to run a full update occassionally: GOG doesn't mark new/changed DLC or extras as "updated" , so you have to do a full update to catch any changes to those.
Correct. Alternatively if you know a specific game has updated, then you can just update/download that specific game.

Ideally just run update during your sleep hours and you won't notice how long it takes :)
avatar
Kalanyr: There is a reason to run a full update occassionally: GOG doesn't mark new/changed DLC or extras as "updated" , so you have to do a full update to catch any changes to those.
*rollseyes* for Gog
It works pretty well so far, I think the only issues I've had were due to GOG and not the script.
One thing that might be a nice feature would be to add the '-id' option to the verify command.
avatar
Smannesman: It works pretty well so far, I think the only issues I've had were due to GOG and not the script.
One thing that might be a nice feature would be to add the '-id' option to the verify command.
Sure, I can add that.
I'm getting a weird problem, the scrip always wants to redownload Miasmata, Still Life and TDE: Chains of Satinav. It's like they're failing the size test every time... is it possible GOG is misreporting the size?
avatar
SirPrimalform: I'm getting a weird problem, the scrip always wants to redownload Miasmata, Still Life and TDE: Chains of Satinav. It's like they're failing the size test every time... is it possible GOG is misreporting the size?
If they are, it's a new thing since I have those games and they downloaded just fine.
Perhaps you should use the update function with the '-id' switch to update the manifest for those specific games.
I got a chunk error once that got fixed by doing that and removing the file that was having the issue.
avatar
Smannesman: If they are, it's a new thing since I have those games and they downloaded just fine.
Perhaps you should use the update function with the '-id' switch to update the manifest for those specific games.
I got a chunk error once that got fixed by doing that and removing the file that was having the issue.
Thanks for the suggestion, I'll try that.
avatar
SirPrimalform: Thanks for the suggestion, I'll try that.
Oh I don't download the Mac versions BTW, so I don't know if those have any weird issues associated with them.
But the Windows and Linux versions downloaded just fine ;)
avatar
Smannesman: Oh I don't download the Mac versions BTW, so I don't know if those have any weird issues associated with them.
But the Windows and Linux versions downloaded just fine ;)
I was only after the windows versions anyway. I tried just redoing the manifest for those games, but that didn't work. However, deleting the files after doing that did the trick.
I don't quite understand what was happening. Surely if something has failed the size check and has been flagged for redownloading it should be redownloaded from scratch... but it seems like the script wasn't replacing the bad files with whatever it was downloading.
avatar
SirPrimalform: I was only after the windows versions anyway. I tried just redoing the manifest for those games, but that didn't work. However, deleting the files after doing that did the trick.
I don't quite understand what was happening. Surely if something has failed the size check and has been flagged for redownloading it should be redownloaded from scratch... but it seems like the script wasn't replacing the bad files with whatever it was downloading.
Obviously I didn't write the script, I'm not that good, but I think the manifest just contains all the information downloaded from the website.
I think the download command does exactly what it says on the tin and just downloads files, it doesn't check the files currently there and just assumes they're fine. The theory probably is that you run the verify command with the '-delete' switch to remove files that fail verification and then use the download command to re-download the files that are now missing.
If that makes sense at all :P
avatar
Smannesman: Obviously I didn't write the script, I'm not that good, but I think the manifest just contains all the information downloaded from the website.
I think the download command does exactly what it says on the tin and just downloads files, it doesn't check the files currently there and just assumes they're fine. The theory probably is that you run the verify command with the '-delete' switch to remove files that fail verification and then use the download command to re-download the files that are now missing.
If that makes sense at all :P
I know you didn't write it, I'm just discussing it with you because you offered a suggestion that turned out to be useful. :)
My understanding though, is that the download command does include a size check, that's how it decides to skip things. The point is that these files were obviously failing the size check in order for the downloader to decide they needed redownloading. If they'd failed the check, I don't quite understand why it wasn't replacing said files with the data it was downloading. Every time I ran it, those particular files got flagged for redownloading and were redownloaded but the bad files never seemed to get replaced. It's strange.
Using the verify command with the -delete flag does make sense, it just seems strange that it redownloaded those files and still ended up with something the wrong size (until I deleted them outright). Maybe it was trying to 'resume' those files or something, I'm not a real programmer so I can't look at the script and see what it does when it finds a file present but of the wrong size.
avatar
woolymethodman: ...
Hi there, just got a crash while verifying, so here's the log:

18:08:59 | verifying earth_2140_trilogy\setup_earth_2140_2.0.0.2.exe...
18:09:02 | verifying earth_2140_trilogy\earth_2140_manual.zip...
18:09:02 | fatal...
Traceback (most recent call last):
File "I:\Games\GOG\gogrepo.py", line 1021, in <module>
main(process_argv(sys.argv))
File "I:\Games\GOG\gogrepo.py", line 1008, in main
cmd_verify(args.gamedir, check_md5, check_filesize, check_zips, args.delete)

File "I:\Games\GOG\gogrepo.py", line 908, in cmd_verify
if not test_zipfile(itm_file):
File "I:\Games\GOG\gogrepo.py", line 240, in test_zipfile
with zipfile.ZipFile(filename, 'r') as f:
File "C:\Python27\lib\zipfile.py", line 770, in __init__
self._RealGetContents()
File "C:\Python27\lib\zipfile.py", line 829, in _RealGetContents
fp.seek(self.start_dir, 0)
IOError: [Errno 22] Invalid argument

I:\Games\GOG>
Also, any input about my confusion in the previous post would be much appreciated. Thanks for your work on the script! I used to use the GOG downloader to verify my backups, but this is a lot less labour intensive than adding everything to the downloader (even with the .bat file I made).
Post edited September 25, 2015 by SirPrimalform
It does check the file size but it doesn't trim the existing file if its longer than the new file. Which can sometimes cause issues (its pretty rare now since files don't usually get smaller without a version change now).