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 progress :)

Could you elaborate on what gogrepoc.py commands your Update button uses? I'm a little confused as to exactly what that button does.

Have you implemented the gogrepoc.py "updateonly" or "skipknown" parameters? These are extremely useful to quickly download only games that have either a GOG update flag set or only games that are new to your library respectively. I use these two parameters frequently.
avatar
ikrananka: Great progress :)

Could you elaborate on what gogrepoc.py commands your Update button uses? I'm a little confused as to exactly what that button does.

Have you implemented the gogrepoc.py "updateonly" or "skipknown" parameters? These are extremely useful to quickly download only games that have either a GOG update flag set or only games that are new to your library respectively. I use these two parameters frequently.
Thanks.

Currently the UPDATE button is pretty simplistic, as my focus lately has mostly been on coding all the queuing elements, but it does two things at the moment.
(1) Update the manifest for a selected game. Including if you paste a new game title into the Title field, it will add that to the local manifest after getting details for it, after which it appears on the GUI list.
gogrepo.py update -os ' & $OS & ' -lang ' & $lang & ' -id ' & $title
(2) With the 'ALL' checkbox enabled, it updates the manifest for your whole library.
gogrepo.py update -os ' & $OS & ' -lang ' & $lang
So yes, I need to implement those extra parameters you mention. The only parameters currently used are OS and language, and ID (Title) for a single game.
A bit stupid, but what was gog downloader ? A launcher like gog galaxy ?
avatar
Dabner: A bit stupid, but what was gog downloader ? A launcher like gog galaxy ?
It was strictly a downloader, it didn't do anything else aside from that, Galaxy was then introduced later which has the option to download the offline installers, achievements, multi player, etc.

GOG stopped updating the downloader about 5 years ago and then retired it earlier this year, so many people are trying to get GOG to bring the downloader back while other are creating there own alternatives.
avatar
ikrananka: Great progress :)

Could you elaborate on what gogrepoc.py commands your Update button uses? I'm a little confused as to exactly what that button does.

Have you implemented the gogrepoc.py "updateonly" or "skipknown" parameters? These are extremely useful to quickly download only games that have either a GOG update flag set or only games that are new to your library respectively. I use these two parameters frequently.
avatar
Timboli: Currently the UPDATE button is pretty simplistic, as my focus lately has mostly been on coding all the queuing elements, but it does two things at the moment.
(1) Update the manifest for a selected game. Including if you paste a new game title into the Title field, it will add that to the local manifest after getting details for it, after which it appears on the GUI list.
gogrepo.py update -os ' & $OS & ' -lang ' & $lang & ' -id ' & $title
(2) With the 'ALL' checkbox enabled, it updates the manifest for your whole library.
gogrepo.py update -os ' & $OS & ' -lang ' & $lang
So yes, I need to implement those extra parameters you mention. The only parameters currently used are OS and language, and ID (Title) for a single game.
Thanks for the clarification.
avatar
Dabner: A bit stupid, but what was gog downloader ? A launcher like gog galaxy ?
avatar
wolfsite: It was strictly a downloader, it didn't do anything else aside from that, Galaxy was then introduced later which has the option to download the offline installers, achievements, multi player, etc.

GOG stopped updating the downloader about 5 years ago and then retired it earlier this year, so many people are trying to get GOG to bring the downloader back while other are creating there own alternatives.
Oh ok, thanks for the answer
avatar
Timboli: Just for you, the pink color shall be referred to 'fluffypiglet color' from now on. ha ha ha ha.
But really, the colors are just to remind where you are at a glance ... and I'm not too fussy about what they are, so long as controls and text are easy to read. I might change it to a pale green perhaps.
I will probably eventually go with a less bright yellow ... but at the time it was easier to just type 'yellow', than look up the color code for the pale variation.
Lool, truly honored to have a color kinda matching my animal-in-avatar skin-tone named after me, you are ever so kind :-D

Yep, a paler tone sure would work, easier on the eyes if you understand. But in the end, even bright yellow and 'fluffypiglet' colors I'd take and wouldn't matter for that's one program I sure look forward to use.
And more work on the project again today, with all or most of the queuing code now done I think. I haven't tested it yet, because there is a lot of related peripheral stuff to deal with first ... how long Message Boxes are allowed to stay open etc.

That last is very important, because the programming language I use (AutoIt) does not have support for multi-threading, which means that a simple open Msg Box can halt the process I will have running in the background keeping an eye on the downloads and verifications, so it knows when to start the next ones etc. That process is currently set to check every 3 seconds, and of course different responses have to occur, depending on whether the Queue window is open or not. Also have to cater for new additions to the download list or changes or removals. The code for all those things is now hopefully done and correct.

I've not changed much visually, just added a FIX button to the right of the Title field, to do what I previously enabled by clicking the blue Title label .... I figured there wasn't any good reason to not make things more obvious than that.

Main Window

While I haven't made any more changes to the Queue window, here is what it looks like when a STOP has been added and a different Shutdown option chosen.

Queue Window

I should have something relatively finished, to upload within 2 or 3 days for members to test.
Post edited June 30, 2020 by Timboli
I've just discovered something about the gogrepo.py program, that I wasn't really aware of before, which is not surprising I guess, as I've had really little experience with it so far ... enough to be familiar enough to develop a limited frontend for, but not much more than that.

I cannot say that the discovery pleases me, and perhaps it can be changed, but I don't know at this point.

Anyway, I added Cyberpunk 2077 Goodies Collection to my local manifest, and then proceeded to download .... downloading right now in fact. I did that knowing the following, and I was going to cancel after the bigger first download had finished, but it did not prove that easy.

EXTRAS
All goodies in one pack 3918 MB
Concept arts 375 MB
Cover arts 626 MB
Posters 1260 MB
Screenshots 756 MB
Gang graffiti 22 MB
Steelbook arts 37 MB
Wallpapers 716 MB

As you can see, all are extras, and going by the title of the first download, it presumably contains all the others. So I only really need that.

However, I've just found out that gogrepo.py is running 4 simultaneous downloads ... so that first download, and three of the other smaller ones, adding the rest in as they finish. In fact, I'm down to the first one now and only two of the others, the rest having completed.

I personally prefer to not have 4 simultaneous downloads, and certainly in this case I only wanted one file downloading at a time. So I hope something can be done about that.

P.S. Of course I will look into this further, but don't have the will or time right now.
Post edited June 24, 2020 by Timboli
avatar
Timboli: I've just discovered something about the gogrepo.py program, that I wasn't really aware of before, which is not surprising I guess, as I've had really little experience with it so far ... enough to be familiar enough to develop a limited frontend for, but not much more than that.

I cannot say that the discovery pleases me, and perhaps it can be changed, but I don't know at this point.

......

However, I've just found out that gogrepo.py is running 4 simultaneous downloads ... so that first download, and three of the other smaller ones, adding the rest in as they finish. In fact, I'm down to the first one now and only two of the others, the rest having completed.

I personally prefer to not have 4 simultaneous downloads, and certainly in this case I only wanted one file downloading at a time. So I hope something can be done about that.
This has been the default behaviour of gogrepo.py for as long as I can remember. Looking through the gogrepo.py Python code this seems to be set on line 140 "HTTP GAME DOWNLOADER THREADS = 4" as per the attached. I haven't tried changing this value myself but this appears to be where this is set.
Attachments:
untitled.png (25 Kb)
avatar
ikrananka: This has been the default behaviour of gogrepo.py for as long as I can remember. Looking through the gogrepo.py Python code this seems to be set on line 140 "HTTP GAME DOWNLOADER THREADS = 4" as per the attached. I haven't tried changing this value myself but this appears to be where this is set.
Thanks for that info.

I don't want to offend anyone, certainly not those who have given us 'gogrepo.py', but I have strong views about what is acceptable default behavior when it comes to downloading.

Fair enough, to have maybe 4 threads for the one downloading file, that's understandable. But when it comes to downloading four separate files at once, as default behavior, I strongly disagree ... user should be given the choice, always.

I firmly believe in one downloading file at a time as the default, but with the option to make it more.

That makes sense from a practical and logical standpoint ... always better to have some complete thing and maybe an unfinished bit of another, rather than four incomplete portions if something goes wrong, or if you need to stop, or if like my example in my previous post, you want to stop during. Resume is great in theory, but not always the best option.

Anyway, now I have the information, I should be able to offer the user a choice, and my code will work on a simple string replace in the 'gogrepo.py' script.

By the way, it was Line 109 for me - HTTP_GAME_DOWNLOADER_THREADS = 4

Are we perhaps using different versions of the script?
I downloaded something posted for me the other day, but haven't had a chance to look at it yet.

I'm not sure why it is called threads when in my case it was files? Maybe GOG control that, and it might be different for game installer files as opposed to game extras? Clearly I will need to investigate further.

P.S. Line number won't matter for my text replacement in any case.

P.S.S. Or maybe I mean streams and not threads.
Post edited June 25, 2020 by Timboli
I've done a bit more work on my GOGRepo GUI program, and also thought some more .... continually thinking of things in advance of what I will be working on next, and making sure I haven't overlooked something.

Anyway, I've decided to add another small window for when UPDATE is used. That window will have preset options that can be changed .... so you will be able to skip things etc. In a way it will be like a confirmation dialog, that yes you really do want to update. It is a good solution I feel, to avoid cluttering up the main window more, etc.

When wanting to do a DOWNLOAD ALL, you will also be presented with a window, though a simple dialog in reality. You get the two choices I mentioned in a previous post - (1) Hand the reins fully to gogrepo.py (no Queue window usage), or (2) Add all games to the queue and retain full control over what where and when, with the Queue window.
avatar
Timboli: Are we perhaps using different versions of the script?
I downloaded something posted for me the other day, but haven't had a chance to look at it yet.
I'm using Kalanyr's last Master from here : https://github.com/Kalanyr/gogrepoc

This works well for me so I haven't dipped my toe into his Dev branch.

I suspect you may be working from the eddie3 Master from here : https://github.com/eddie3/gogrepo, as this has the threads on line 109 and not 104.
avatar
ikrananka: I'm using Kalanyr's last Master from here : https://github.com/Kalanyr/gogrepoc

This works well for me so I haven't dipped my toe into his Dev branch.

I suspect you may be working from the eddie3 Master from here : https://github.com/eddie3/gogrepo, as this has the threads on line 109 and not 104.
No worries, thanks for the info. I am guessing his branch is mentioned later in the 'gogrepo.py' thread, which is problematic I guess, as many users will just do as I did and grab the link from the first post. Once I am close to finishing I will look into changing and advising and providing a link to the newer script.
high rated
I've now coded most of the new UPDATE window, at least the visual aspect.

Update Window

I've also done the code for setting the number of threads, which proved to be more complex than I had anticipated. This is because I wanted the user to have the choice as to changing the default, as well as catering for any script changes. The user can also change the current setting via the new addition to the SETUP window, currently making it anywhere from 1 to 4 threads. NOTE - I've not yet tested the impact of changing from '4' threads to less.

Setup Window

Here's how the other windows currently look after a bit more coloring. ;)

Main Window

Queue Window

Still a few things to do, but options like the Shutdown process are now fully coded.

Things To Do
Code the second of the two DOWNLOAD ALL options - set it up for queuing etc.
Complete the code supporting the additional UPDATE and DOWNLOAD parameters.
Code the progress bar.
Add more information for users to the various windows.
Probably update the Instructions.txt file.
Maybe some more logging code.
Check out Kalanyr's version of 'gogrepo.py' ... test and probably make changes for that ... conferring at need.
Whatever comes to mind.
Testing most of it ... especially the new queuing aspect & related.
Upload once satisfied.
Start a separate thread in the GOG Forum, just for GOGRepo GUI.

Attempt to gain an understanding of how 'gogrepo.py' works (in other words, torture my brain with Python). ;)

Options For A Future Update
Look into download rate limiting.
Add a Title Search ability for the Games List.
Perhaps add an optional Audio Alert for when Updating or Downloading has finished.
Consider having an UPDATE queue.
Whatever comes to mind.

Things To Be Aware Of That Come To Light
GOG doesn't provide checksums for ZIP or TXT files, but 'gogrepo.py' appears to have an ability to test ZIP file integrity, and provides a parameter for that.
Post edited August 03, 2020 by Timboli