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

×
Sorry folks, I was hoping to have something to upload tonight ... a mostly finished version.
But the second half of yesterday went astray, and along with my mother's 85th birthday today, impacted what I intended to do today. Now we are looking at probably two to three days before I have something finished enough.
Sometimes life just gets in the way ... ha ha ha ha.
high rated
avatar
Timboli: Sorry folks, I was hoping to have something to upload tonight ... a mostly finished version.
But the second half of yesterday went astray, and along with my mother's 85th birthday today, impacted what I intended to do today. Now we are looking at probably two to three days before I have something finished enough.
Sometimes life just gets in the way ... ha ha ha ha.
Personal life should always take priority, plus working on something constantly without a break or some time off can lead to burn out.
Indeed, and I am an old hand at working on coding projects, so I am pacing myself.

I usually do a few or several hours of coding at the start of my day, then break to do something else, usually some life requirement. Depending on how things pan out, I might do a couple more hours of coding later ... but I prefer to code when my mind is fresh enough or else bugs can creep in.

Generally later in the day is when I ponder where I need to go next with my coding, anticipate requirements etc. And then I work on that the following day.

I also try to fit in some me time (reading, browse the web, maybe watch a documentary, etc), as well as spend time with my wife watching something on TV. I am retired, so the day is mostly mine ... and I have some health and age issues.

Coding is my great escape though, for sure.
Post edited June 28, 2020 by Timboli
Sounds like a good life-play balance. :>

But I don't think you need to apologise (or even explain) delays or anything like that. It's your project and you're not beholden to anyone. If anyone is crazy enough to be upset with you for "being slow" or "wanting to know what's going on" or something, then that's their issue!
I'm sure the majority who visit this thread are curious and excited, but not expectant. So don't feel like you need to justify anything to anybody. :>

Anyway... sounds like you've got plenty of things going on outside of coding too, so definitely take your time! It's neat to see the progress though, so thanks for sharing.
Oh, and grats on your mum's birthday - what a milestone!
avatar
personthingy: Sounds like a good life-play balance. :>
Yep, that's the plan ... if sometimes less than perfect ... I'm only human. ha ha ha

avatar
personthingy: But I don't think you need to apologise (or even explain) delays or anything like that.
Well I had kind of promised by the end of the weekend, and I was just being courteous really and attempting to head off anything, while keeping you all informed.

avatar
personthingy: I'm sure the majority who visit this thread are curious and excited ...
As am I.

avatar
personthingy: Anyway... sounds like you've got plenty of things going on outside of coding too, so definitely take your time! It's neat to see the progress though, so thanks for sharing.
Thank you and yes life is a juggling act ... especially when you have as many interests and responsibilities as I do ... far too many for my allotted time on Earth.

avatar
personthingy: Oh, and grats on your mum's birthday - what a milestone!
Thanks again, it is indeed .... especially as she had two surgeries last year, one big, that took her a long time to get over, still sort of is.
Post edited June 29, 2020 by Timboli
### WARNING ### - The following will probably do the head in of many of you, as no doubt it qualifies as complex. Hopefully it won't matter, if I get things right, but those of you wanting more control, will need to be aware of the pitfalls of doing so.

It has occurred to me, that there is an even bigger dilemma with Download location, than I have already mentioned.

Currently my program allows you to set what we can call the main default location for games, plus the use of an alphanumeric sub-folder. The 'gogrepo.py' script does not support the alpha folders (as I have already mentioned), when you request it to do a DOWNLOAD ALL. Because of that, I will be adding my own version of DOWNLOAD ALL, that does support alpha folders.

For those who are not clear on what that means, here are path examples for one game - Ruiner.

(Supported by 'gogrepo.py' when doing an DOWNLOAD ALL)
D:\GOG GAMES\ruiner

(Not supported, except by my GOGRepo GUI)
D:\GOG GAMES\R\ruiner

That means, that if you are going to use the alphanumeric sub-folder option, you can only use one method of DOWNLOAD ALL ... that provided by my GOGRepo GUI.

Most of you probably won't bother with the alphanumeric sub-folder option, so it won't be an issue for you, and you will be able to use either DOWNLOAD ALL method.

But ......

Another issue has come to light.

You can set the default download location on-the-fly. This means, that if you wanted to, you could change it per game. It would be extra trouble to do so, browsing for each game in fact. Because of this, we have a real problem, unless my program stores destination location for each game.

Here is an example of what could occur, out of an endless number, for one game - ASYLUM Demo.

(Supported by 'gogrepo.py' when doing an DOWNLOAD ALL)
D:\GOG GAMES\asylum_demo

(Not supported, except by my GOGRepo GUI)
D:\GOG GAMES\A\asylum_demo

(Not currently supported at all, except when working individually with the selected game)
D:\GOG GAMES\Demos\asylum_demo
(Or with the additional alphanumeric sub-folder option)
D:\GOG GAMES\Demos\A\asylum_demo

I can't really prevent users doing something like this, so I guess I need to support it.

Currently I have it in mind, to offer two main Download location choices (3 or 4 really).
(1) Default (plus option of alphanumeric sub-folder).
(2) Specific (plus option of alphanumeric sub-folder).

I am tempted to not offer the alphanumeric sub-folder option for Specific.

In practice this means, that when you either start downloading a game or adding it to the queue, the destination needs to be stored for that game for later recall. Added to that, the program will need to check for a Specific download location already set, and use that if found, instead of the Default.

If you go for the traditional method of Default download location only, with no option, then you will be able to use all the standard 'gogrepo.py' abilities. Plus you can also use the queuing download alternative provided by GOGRepo GUI.

However, if you want a bit more control and flexibility, then you will be able to do so ... at the cost mentioned.

Regardless of your choice, it seems I need to cater for both ... even if I disallow the alphanumeric sub-folder option for both methods. In theory, I could just go with warning the user not to set specific download locations, but I am not sure that is the smartest approach.
Post edited June 29, 2020 by Timboli
I got a bit more done.

I decided to make the DOWNLOAD ALL dialog a window instead.

Download ALL Window

And I've started to implement what I discussed in the previous post.

Main Window
Post edited August 03, 2020 by Timboli
avatar
Timboli: (Not supported, except by my GOGRepo GUI)
D:\GOG GAMES\R\ruiner
This would be a good feature to have included in gogrepo.py. Perhaps see if Kalanyr could add this.
avatar
ikrananka: This would be a good feature to have included in gogrepo.py. Perhaps see if Kalanyr could add this.
I may well do that, though when GOGRepo GUI is finished and he checks it out, he may decide on his own to implement a few more things such as that.

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

In light of recent requirements that have come to light, my mind has been reworking the main program window, and after some changes yesterday, I've now decided on the rest. I was hoping I would not need to resize the GUI, and I wanted less on it rather than more, so I am fairly pleased with the result. It means the UPDATE button and its ALL checkbox have gone and they are now part of the DOWN button, which will require an extra click or two, but I for one can live with that for the benefit gained.

Main Window

I also worked on the window for VERIFY, which I had neglected to mention on my earlier todo list.

Verify Window

So things are shaping up nicely, though they will go on hold a bit, as I will mostly be busy with other things for the next few days. We are getting there though and the end will be in sight shortly.
Post edited August 03, 2020 by Timboli
avatar
ChrisSZ:
avatar
Timboli: I hope so. It would very much simplify things for those Windows users who are not command-line or BAT file savvy.

Here's a screenshot of what I have working so far.

GOGRepo GUI

*snip*
Looks great :)
avatar
DBDigital: Looks great :)
Thanks.

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

I've now reworked the necessary code to support all the download locations.

Code for the Verify Window and processes is done. Same for Update Window and processes.

I just now need to work on finishing off my version of DOWNLOAD ALL, and a couple of other minor things (MOVE button etc).

I made a slight amendment to the UPDATE window, just renaming of a checkbox to something more meaningful.

Update Window
Post edited August 03, 2020 by Timboli
OK, just did a big chunk of code for my DOWNLOAD ALL method, and just need to do some small amendments to it and a few other minor bits and pieces, but that is all major elements done now, so I am not far off finishing ... at least as far as being able to start major testing, which I have been itching to get too. So I might have something uploaded by Sunday.

I just did my first test in ages, which was just populating the Downloads list using my DOWNLOAD ALL method, and it took about 2 seconds for 799 game titles with required details, which was much faster than I thought it would be.

begin=3/07/2020 11:03:59 PM
finish=3/07/2020 11:04:01 PM

I've learnt a few more coding skills in this latest project of mine, one of which is to do some things a fair bit faster, using an approach that hadn't really occurred to me before, in quite the same way. And this is on a slow dual core PC.

The way I've done the queue monitoring, is also a first for me, but I am yet to test that in action. Fingers crossed my theory is as rewarding with that.
Post edited July 03, 2020 by Timboli
I've reworked a bunch of code, including making some changes due to new game additions not being sorted in the Titles list file, which meant they were showing up at the end of the DOWNLOAD ALL list, where it is better to be alphanumerical to start with. Users can of course then change the order around if they wish.

I've done the code for the Progress Bar, which is just a simple affair as a visual aid.

I have also added a FIND (search) button to the main program window, and done the code for that ... thought I would do it sooner rather than later. The find process works with text typed or pasted into the Title input field, and finds the first entry (beginning at the selected entry) that starts with that text (wrapping around to the start of list if need be). That text is also temporarily stored in memory and can be returned to the input field by clicking on the blue Title label ... as that text gets overwritten by the found entry.
NOTE - If you use the FIX button to modify a game name to the game title state, that original name is stored, and can be recalled in the same manner, which is useful after an UPDATE with an unlisted game title occurs.

Main Window

I'm now just mostly checking my code and refining various elements and making sure I haven't overlooked something.

We are very close to some full testing now.

P.S. No doubt I need to add some (or more) info to some of the info dialogs, as well as make sure I've added in all the error messages and checking etc. For now, I have elected to just give a (not yet supported) error message for two buttons (MOVE and UPDATE Selected), as they can wait.
Post edited August 03, 2020 by Timboli
low rated
Just wanted to say I am watching the progress of this and cheering you on from the sidelines....really good of you to step up for everyone like this.

Also congrats on your mum's 85th....make sure to give her a hug from all of us.
Post edited July 04, 2020 by GameRager
@GameRacer - Thanks.

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

It's now time for me to do the big UPDATE ALL, which I've been putting off due to the projected time involved.
Last time I did it (the only time so far), I limited it to just Linux games in my GOG library, and that took 3 hours 20 minutes.
This low powered PC is pretty much unusable during that process, so naturally I have put it off until I find a suitable time and my code is ready.

I've tweaked a few things after a bit of testing, but now I need that full update to test my program further.

One of the tests I did, was just updating for new games not yet in my manifest ... I had three, and that worked well.
NOTE - As I have mentioned before, even though I did a full update limited to Linux games in my library, that update did return all game titles from my GOG library (both Windows and Linux), but the only other detail returned was for Linux files and game extras, not Windows game files. So my manifest has been incomplete up to now. I had updated a few titles individually to get the missing Windows files listings into my manifest.
Post edited July 05, 2020 by Timboli