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

×
Great work! Thank you again!
I've had a bit of a rethink with the new feature in GOGRepo GUI, that I mentioned last post.
That has improved things, and I have now run several repeated tests while I was refining etc.

Here's a new updated screenshot of its current state etc while being tested.

Files Checker Window

It's working pretty well, and I have already discovered some missed updates for Linux versions of my games. The way things are looking, I could end up with quite a few, especially when I get to checking Windows versions.

As you can see in the screenshot, game folder naming by GOG can be all over the shop. To deal with that requires some additional manual interaction ... that means scrolling the list looking for a differently named match. Once you have found it, you select both entries and click the COMPARE button, using either file size for the comparison check and or the MD5 checksum. If the file name or file size are not a match, the MD5 check (if selected) is skipped.

The MD5 check requires the small free third party program FSUM be located in an FSUM sub-folder within the GOGRepo GUI parent folder.

The new feature now gives you a choice of two different game title options, as they exist in the manifest. You get the basic lower case underslash between words format or the longer normal naming one. I personally use the latter for my Windows game folders, and the former for my Linux ones. i.e. 15_days or 15 Days ... it's not always longer, but that's what GOG call it.

NOTE - I had over 300 Linux game file entries, but automation reduced that to around 122 entries (including some zip files).

I will continue with testing for a bit yet, before I upload.
Post edited September 19, 2020 by Timboli
Some more tweaks and refinements etc for that new feature in GOGRepo GUI.

Latest Screenshot

I've added a FIND option to assist with manual checking.

Filter OUT can now alternatively be Filter IN. And if Filter IN is set and a file extension set before clicking either the Get File Names or CHECK Files buttons, only files with that extension are returned. This is particularly useful if you want to check (compare) in stages with smaller returns.

I've also made the '\' separator in the top list more pronounced by adding a space either side.
Each entry (top list) is as follows - Game Title \ File Name \ File Size \ MD5 Checksum
Entries in the lower list are a relative path according to main folder selected.

The Game Title is in the format you select (two options).
File Size is in bytes.
MD5 Checksum only applies to EXE, BIN and SH files (when it exists). For other file types (ZIP etc) it usually says 'none'.

A little bit more testing and I should be done.

---------------------------------------------

As you may have noted in the screenshot, I had 97 SH files returned in the top list, that a match wasn't found for. All up my manifest lists something like 5,206 files ... most of which are WIndows ones, but over 300 of those are Linux ones. In the lower list, we have slightly more SH files returned (117) without an exact match. I am guessing that some of those extras are files that no longer exist for that game at GOG. The rest in the lower list would be due to a Game Title mismatch, while those in the top list would either be due to a Game Title mismatch or a missing update.
Post edited September 20, 2020 by Timboli
I've not resumed testing yet, as I've had to see to other things in my life first, including sleep. :)

But meanwhile a way of doing individual file downloads with gogrepo.py, has suggested itself to me.
This would very much compliment my latest added feature to GOGRepo GUI.

Now I am well aware, that the current developer version of the gogrepo.py fork by Kalanyr has such a feature, but as that isn't readily available yet, and as I am still personally using the original gogrepo.py script due to download speed issues, then I see a good reason to pursue this idea. In any case, I would still need to implement something either way, for my GUI.

In a sense, my idea works on a simple premise - gogrepo.py just downloads what it knows about. So all I need to do is limit what it knows, with regard to entries in the manifest. The easiest way perhaps, without modifying the original manifest, other than temporarily renaming it, is to create a single game manifest, with only the file entries desired in it.

To do that, I am thinking a right-click menu option for the Games list, would suffice. So when a user chooses that option for the selected game, they are presented with a small window displaying the listed files for that game (including extras). The user chooses which files they want, then clicks DOWNLOAD, which instantly starts. Prior to that, they could also choose whether any auto verify occurs on completion.

Due to the nature of this method, queuing would not be possible, so it would be one game at a time, and the main program window would be disabled for the duration. As this is not an option likely to be used much, that shouldn't be much of an issue.

So anyway, that is the latest new feature I now intend to work on and implement.

P.S. I could of course, support some kind of batching, but the likely rarity of most users ever availing themselves of this feature, is not encouraging me to deal with the complexity involved in coding it.
I've been delayed, just after I started work on my latest idea ... Life again, and another project due to the vagaries of Life and possibly the interference of Gremlins, which was more pressing ... had to solve a problem with my Kindle, which was going to be a lot of mind numbing work without some form of automation. And after solving that, I needed a break.

Anyway, I should be back on track soon.
I've been sidetracked again, but at least this time it is with the same project ... bug fixing and improving some earlier feature.

Basically I have been working my way through Update In Stages, and little issues have kept arising that needed addressing, and then I had a big one, where I had forgotten to connect the web before I started, and I had to manually restore the missing entries that had been removed and saved as compare files, but not updated to the manifest. Annoyingly I had also overlooked a manifest backup at the start of each session ... hence the full manual restore.

I'd overlooked doing a web connection check in the CONTINUE portion of the code. I also decided to cater for loss of connection as well, so have added a RESTORE original game entry process after a check. A restored entry remains on the list of todo titles, so will be attempted again next time around. I've also made improvements to error reporting & recording.

I've now done Update In Stages for 900 of my 1038 games, though some of that total number are not on the earlier created list for updating, because I acquired them after I started the Update In Stages process, not that they really matter at this point, and they will get done next time around. I've been quite slow working through my games, as I've been relying on spare PC time and my memory to continue with the process. My PC rarely remains idle at the best of times, as I am always doing something with it, usually something demanding.

Never a dull moment when you are a programmer with a lot of programs, many wanting potential updates and new project or update ideas regularly suggesting themselves. Always something new or old on the go. Refinements often suggest themselves after usage ... sometimes days, weeks, months, even years later.
Post edited September 30, 2020 by Timboli
And now back to the main program for this thread for a bit - GOGPlus Download Checker.

I've just been through a rare event, where a game I purchased last night from GOG, failed the integrity test with the BIN file. It passed the download MD5 test, but failed the internal MD5 testing. This could indicate a corrupt file from GOG, but not one corrupted during downloading.

The game in question, is Sid Meier's Civilization IV®: The Complete Edition
and the BIN file is - setup_civilization4_complete_2.0.0.4-1.bin (2.96 Gb)

I had some issues last night downloading the file, which may be related.

The first two times I tried to download the BIN file, the download process started off well, around 3.1 MB/s up until roughly the 30% mark, then the speed plummeted and was virtually negligible ... so bad that I eventually canceled the download. I was using gogrepo.py (original version) for the downloading.

Later, I tried to download again, using Free Download Manager 5 this time, and got to around 60% before the speed plummeted again, however I was still making enough headway (barely) to let it continue until completion.

Because of the time involved, I had a late night, so didn't check the file integrity until today.

First off, I checked the internal MD5 of the BIN file, using GOGPlus Download Checker, which did its usual EXE+BIN checking. The EXE file passed from what I can see of the results, but when it got to the BIN file, it refused to be checked and so failed. That's not happened for me before. One error was listed, with a comment about RAR.

That comment made me curious, but first I decided to do the MD5 checking that gogrepo.py and no doubt Galaxy does. The BIN file passed that check, which I imagine indicates that the downloading itself was okay.

PLEASE NOTE - I downloaded 3 other games last night, one an update, and had no issues whatsoever with them, and that includes both types of MD5 integrity checks. I also re-downloaded the problem BIN file today, using gogrepo.py and aside from some slow moments managed to download to completion, in a reasonable amount of time. It has the same issue.

I've recently added more file type support to GOGPlus Download Checker, including MSI and ISO files, and I was tempted to also add BIN files, but didn't want complications between regular BIN files and GOG ones, which need to be processed differently, using InnoExtract. Anyway, today I came up with a solution.

The solution only applies to drag & drop of an individual BIN file, and is not invoked for multiple files and or folder dropping. In the individual instance, you get a query prompt, otherwise the BIN file is skipped for addition or the user given an advisory warning message.

The query prompt, provides three options, with the third being abort. The first option allows checking using 7-Zip, while the second option allows using UnRAR. Both will process a BIN file, but from what I have seen, only UnRAR lists and checks all files within the BIN archive ... at least for the single problem one I have checked.

I processed the troublesome BIN file, and it passed with both 7-Zip and UnRAR, though UnRAR took much much longer and gave greater detail in the Results.txt file.

Anyway, I am not sure I am any wiser, though at least the BIN file seems to be okay. But what does the earlier error signify? Is the BIN file in an uncommon format, that requires a RAR ability, that InnoExtract doesn't have? At a guess it would seem that way. Perhaps I need an InnoExtract update ... just occurred to me now to look into that, so I will report back after doing that ... STAY TUNED!

P.S. I've not yet compiled and uploaded this new version of GOGPlus Download Checker, that has some support for standalone BIN files ... STAY TUNED for that also!

P.S.S. I also haven't gotten around to checking out the Forum pages for the game yet, in case something has been mentioned about the BIN file issue.
Post edited October 01, 2020 by Timboli

Perhaps I need an InnoExtract update ... just occurred to me now to look into that, so I will report back after doing that ... STAY TUNED!
There was indeed an InnoExtract update. I was using v1.8 and v1.9 is now available.

https://constexpr.org/innoextract/

I installed and ran that, but no difference, I still had the BIN file issue.

I also checked the Forum pages, and nothing related enough revealed itself.

---------------------------------------------------------------------------------

Getting back to GOGRepo GUI.

Last night I finally completed my first full Update In Stages process for all my GOG games ... those I have obtained since I started the process, excepted. I now have 1041 games listed, and the process would have checked around 1030 of those. I'll have to be more diligent next time I start the process, and remember to run the stages more often ... every spare PC moment, to get it all done in a more timely fashion.

It worked well, and I have a list of game changes to investigate for the following games.

against_the_moon_prologue
arma_cold_war_assault
arma_gold_edition
crying_suns_demo
dying_light_the_following_enhanced_edition
fictorum
full_throttle_remastered
grim_fandango_remastered
gwent_the_witcher_card_game
homeworld_deserts_of_kharak
kholat
kings_bounty_the_legend
kona_day_one
liberated_sneak_peek
life_is_strange_complete_season
master_of_orion
mirrors_edge
mount_blade_with_fire_sword
neverwinter_nights_enhanced_edition
order_of_battle_world_war_ii
original_war_v30
rime
stalker_clear_sky
saint_kotar_the_yellow_mask
simpleplanes
spacechem
sphinx_and_the_cursed_mummy
stasis
system_shock_enhanced
the_long_dark
this_war_of_mine
tooth_and_tail
tropico_5
worms_armageddon
Some of those might not mean bonafide downloading of an update required, just some mismatched entry issue, but some will be for a new update now exists.

P.S. I also had some troublesome entries (small number) that refused checking (removal & update), so I need to investigate why for those. Perhaps some illegal file name character or something.
Post edited October 01, 2020 by Timboli
bump. This should stay visible!
another bump
avatar
Lifthrasil: another bump
Can you please explain to me what this does, perhaps comparing it to gogrepoc, which I am familiar with.
avatar
Lifthrasil: another bump
avatar
mrkgnao: Can you please explain to me what this does, perhaps comparing it to gogrepoc, which I am familiar with.
Well, the Download Checker just checks the downloaded files for file integrity.

The, in my opinion, more important program Timboli wrote, is the GOGrepoGUI. Which is a graphical user interface for gogrepoc for those people who don't like using a python command line. In other words: it facilitates making a backup of all your games or downloading specific games. Basically all functionality of gogrepoc, easier to use.
avatar
mrkgnao: Can you please explain to me what this does, perhaps comparing it to gogrepoc, which I am familiar with.
avatar
Lifthrasil: Well, the Download Checker just checks the downloaded files for file integrity.

The, in my opinion, more important program Timboli wrote, is the GOGrepoGUI. Which is a graphical user interface for gogrepoc for those people who don't like using a python command line. In other words: it facilitates making a backup of all your games or downloading specific games. Basically all functionality of gogrepoc, easier to use.
Thank you.
Okay, after a bit of a break with minimal coding, I resumed work on the GOGRepo GUI project today, continuing on with the new file selector feature, for which I have now done most of the work.

Here's a couple of screenshots.

Right-Click Menu for game list on main window.

File Selector download window for targeting specific files.

This feature as I have reported earlier, temporarily renames your manifest file, and creates a new manifest file with only the files you want to download at that moment, restoring the original full manifest file afterward.

At this point, the Queue window and feature is not used, so only one game at a time.
I may add a SHUTDOWN option and an AUTO VERIFY option, but at this stage I am keeping it quick & simple.
Minimal basic support for MAC files too, which I may change (especially if requested).
Post edited October 31, 2020 by Timboli
Having been using your Checker, you cannot be thanked enough for it has saved me some grief when it comes to file integrity. Of course when it comes to checksum, well we can still take a high jump on that one given that there is absolutely nothing to check it against, and here am giving a hard long look straight in Gog's direction.

Given game files updates and other changes which would then reflect in checksum too changing, we can't even have an independent database -as someone I was talking to about this pointed out- of those to check against.

In any case, as a user of the Checker, I wanted to express my thanks and gratitude to its creator here on the forum.

PS: Kudos to Lifthrasil for the bumps.
Post edited October 31, 2020 by Flyingfluffypiglet