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
blotunga: It could save in the manifest where it saved a certain game. I would probably use some sort of least full algorithm. Splitting the manifest sounds like a chore, I hate doing chores :D
Yeah but what if you buy a new game that starts with an A? The first drive is already beyond its limit, so how does it decide where to download that game, or does it just put it to the first drive which hasn't yet reached the limit (which most probably will be the last hard drive in your set, unless some games have gone down in size over time, which is normally not the case...)? So if you have several hard drives, over time it becomes impossible to know by heart which hard drive has this and that game, have to search all of them.

Splitting the manifest manually is a chore, but doable. It becomes even more of a chore if you want to keep using the same manifest file over and over again because then you probably need to join the split parts together again for the next time, after you have run "verify" (because only after that it has the data which games have already been verified).

Then again, I normally just delete the old manifest file(s) and let "update" create a new one from scratch. At least then I don't need to do any re-joining of split manifest files etc., I just need to the the split right after running "update", before "download" and "clean" (and possibly "verify"). And then afterwards delete the split files. Naturally one can also keep the original unsplit manifest file and reuse it for the next update run and split it again, but it will still be missing any "verify" data because it is done after the split, and updated to the split files.

Decisions decisions...
Post edited July 08, 2024 by timppu
Oh and about feature requests, it would still be nice if hard drive space preallocation was optional.

Yeah I know it is supposed to lessen filesystem fragmentation (there are defrag tools for that, Windows does it automatically anyway in the background), but that preallocation just doesn't work in many situations, e.g. if you download GOG games in Linux into a NTFS partition. Without preallocation it works fine.

I recall someone else had the same problem when downloading the games to a NAS or something like that.

The workaround is to remember to comment out the lines in several parts of the script where that preallocation is performed.
avatar
timppu:
That's actually what I want to avoid. The algorithm shouldn't care where the files are located. It should only care where it has space and how much. Yes, it would be a bit awkward that some games are in one folder and others with A are in some other folder, there is an elegant solution for that one too, symbolic links to gather them all into one folder. Meh, if I find a couple of days of free time (which I don't have), maybe I'll implement this myself, at least for Linux it's quite trivial.
avatar
blotunga: That's actually what I want to avoid. The algorithm shouldn't care where the files are located. It should only care where it has space and how much. Yes, it would be a bit awkward that some games are in one folder and others with A are in some other folder, there is an elegant solution for that one too, symbolic links to gather them all into one folder. Meh, if I find a couple of days of free time (which I don't have), maybe I'll implement this myself, at least for Linux it's quite trivial.
To each their own I guess. If I e.g. have three (or more) separate USB hard drives where I keep my GOG game installers, I'd rather not have to search all of them if I want to find and install certain game. If they are in an alphabetical order, I know right away which hard drive should have it.

If one is using several hard drives which are always connected to the PC, I guess one can just as well create one storage pool out of those separate hard drives, in which case no division is needed. In Linux one can use LVM or btrfs (software RAID) for that, and I recall in Windows it is also possible to combine several hard drives into one pool (partition).

For me that is not a solution as I tend to keep my GOG offline installers on portable USB hard drives which are connected only if I want to install something, or refresh my GOG library, and I may use them on several separate PCs (I mainly play on two separate laptops).

I also feel manual division is probably less error-prone, e.g. if one of the hard drives fail, I still have access to the games on the other hard drives and will not lose the whole storage pool and all the games in the process (unless I was using a separate parity drive with the storage pool, in which case one hard drive can fail as long as I replace it soon; but using such a parity drive "wastes" storage space).

At the moment I don't need to divide anything due to one big 18TB USB HDD. I think most cost effective for me would have been to keep using several 5 TB USB HDDs (I already had two so I would have had to buy a third one for now... but I decided to get a 18TB HDD to replace them both.)
Post edited July 09, 2024 by timppu
avatar
timppu: I earlier thought it could be divided by e.g. the title characters, like "A-J go to here, K-Q go there, and the rest (including ones that start with something else than A-Z, e.g. with a number) go to the default path.". That way they would at least remain in an alphabetical order, but of course the user would have to figure out the correct divisions, e.g. "ok so A-J don't quite fit to that first hard drive, so I have to adjust it to A-I".
This is why I decided to go with categories ages ago.
But then I don't download to a drive I store my games on. I use a drive for downloading and relocate to my backup drives from there. NOTE - I used to use my download drive as my first backup, but my downloads eventually outgrew it.

I've talked about my category folders and drives before, but here's a brief summary.

GoG Demos
GoG Freebies

GoG Mate - Games related to those in GoG Demos and GoG Freebies.

Those three are related and always share the same backup drive(s).

What doesn't go in them, and they take priority, goes in the following.

GoG Classic - Games up to and including the year 2003. Year of release based, and first year in a series based.

GoG Excess - Gamed releases from 2016 onward ... excepting those in series that qualify for GoG Classic or the following.

GoG - 2004 to 2015, and in first character alphabetic folders 0 to Z. Games starting with a 'The' have that tacked on the end of the name, else too many in the 'T' folder.

GoG Linux
GoG Mac

Those categories allow me to set up drives with room to grow. Ideally we would be talking 4 or 5 TB drives. Especially as I also store games from other stores on some of those drives (Itch.io, IndieGala, Humble, ZOOM Platform, etc).
Post edited July 09, 2024 by Timboli
avatar
Timboli: This is why I decided to go with categories ages ago.
But then I don't download to a drive I store my games on. I use a drive for downloading and relocate to my backup drives from there. NOTE - I used to use my download drive as my first backup, but my downloads eventually outgrew it.

I've talked about my category folders and drives before, but here's a brief summary.
I guess one can go the extra mile and create separate symbolic links or regroup the installers into different kinds of categories... but I rather try to keep it simple and easy.
avatar
timppu: I guess one can go the extra mile and create separate symbolic links or regroup the installers into different kinds of categories... but I rather try to keep it simple and easy.
Well for my money, that is exactly what I have done, as it requires very little thinking. The hardest part would be working out the release year for some games, but generally PC Gaming Wiki or Wikipedia etc help with that.

All the thinking was in the setup stage, including working out drive size requirements, now it is as easy as.

The only other way, would be to have a bunch of 10TB hard drives, each a duplicate of one another.

But in reality, smaller drives are easier to manage. Catering for growth is where it is at ... new games, updates.
avatar
timppu: I guess one can go the extra mile and create separate symbolic links or regroup the installers into different kinds of categories... but I rather try to keep it simple and easy.
avatar
Timboli: All the thinking was in the setup stage, including working out drive size requirements, now it is as easy as.
Wait, I tried symbolic links some years ago and they didn't seem to work with gogrepo, at least on Win7.
Are you using Win10-11 or maybe linux?
I'd like to create complex categories, but maybe they would be a pain to manage with links (new games, renamed, orphaned, etc).
How is it faring for you?
avatar
phaolo: Wait, I tried symbolic links some years ago and they didn't seem to work with gogrepo, at least on Win7.
Are you using Win10-11 or maybe linux?
I'd like to create complex categories, but maybe they would be a pain to manage with links (new games, renamed, orphaned, etc).
How is it faring for you?
My download PC is Win 7, and I am not using symbolic links, just my GUI for gogcli.exe. I used gogrepo.py for a while, but found that Magnitus' gogcli.exe better suited my needs. I've also recently added curl.exe and aria2c.exe to the mix.

All the thinking for my method, is mostly in the divining of things and setting it up. Now that I know what I am doing and what is best for me, it is mostly a breeze. It took me a while to establish exactly what I needed, I do admit ... catering for growth can be tricky.

It has been faring well for me for a while, download speed issue aside. I am still in the process of replacing some smaller drives I used earlier, but most are done now. I've also finally started to get long overdue updates.

Just for the record I keep 4 copies of every game on separate hard drives, one per each ... so a lot of drives. I also keep all updates and patches, but have been very slack getting them, so missed many of course.

NOTE - It is important to note, that I only rely on GOG notifications via gogcli.exe when it comes to updates, so I am not doing any kind of comparison using files in a folder. I do however add any downloads (file names, size, checksum) to a database that gets checked, and so files I already have are not shown in my download window with an updated manifest entry for a game. So I can do a kind of semi-automated comparison, manually initiated. I do that of course, for the games I care most about.

P.S. Every update notification I get, gets automatically added to an Updates.txt file, so when any notification disappears, as they often do in our libraries, I still have a record of what I need to get.
Post edited July 11, 2024 by Timboli
Hey,

I have an issue with the gogrepoc.py script that hopefully others can help me with; the update / verify options work fine, but when trying to download it always dies.

PS E:\Files\GoG> .\gogrepoc.py download
21:59:34 | loading token...
21:59:34 | loading local manifest...
21:59:34 | scanning manifest for renames...
21:59:34 | {alwas_awakening}
21:59:34 | pass setup_alwas_awakening_1.6.6.56_(64bit)_(38915).exe
21:59:34 | {beautiful_desolation_game}
21:59:34 | pass setup_beautiful_desolation_1.0.7.3_c_win_(64bit)_(60427).exe
21:59:34 | pass setup_beautiful_desolation_1.0.7.3_c_win_(64bit)_(60427)-1.bin
21:59:34 | pass setup_beautiful_desolation_1.0.7.3_c_win_(64bit)_(60427)-2.bin
21:59:34 | pass setup_beautiful_desolation_1.0.7.3_c_win_(64bit)_(60427)-3.bin
21:59:34 | {book_of_demons}
21:59:34 | pass setup_book_of_demons_1.05.240321_(72057).exe
21:59:34 | pass patch_book_of_demons_1.05.221221_(61311)_to_1.05.240321_(72057).exe
21:59:34 | pass patch_book_of_demons_1.05.221219_(61118)_to_1.05.221221_(61311).exe
21:59:34 | pass patch_book_of_demons_1.05.220428_(55424)_to_1.05.221221_(61118).exe
21:59:34 | pass patch_book_of_demons_1.05.220419_(55211)_to_1.05.220428_(55424).exe
21:59:34 | {brigador}
21:59:34 | pass setup_brigador_up-armored_edition_v1.65b_(64bit)_(62346).exe
21:59:34 | fatal...
Traceback (most recent call last):
File "E:\Files\GoG\gogrepoc.py", line 351, in __getattr__
return self[key]
~~~~^^^^^
KeyError: 'force_change'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "E:\Files\GoG\gogrepoc.py", line 3980, in <module>
main(process_argv(sys.argv))
File "E:\Files\GoG\gogrepoc.py", line 3740, in main
cmd_download(args.savedir, args.skipextras, args.skipids, args.dryrun, args.ids,args.os,args.lang,args.skipgalaxy,args.skipstandalone,args.skipshared, args.skipfiles,args.covers,args.backgrounds,args.downloadlimit)
File "E:\Files\GoG\gogrepoc.py", line 2692, in cmd_download
elif game_item.force_change == True:
^^^^^^^^^^^^^^^^^^^^^^
File "E:\Files\GoG\gogrepoc.py", line 353, in __getattr__
raise AttributeError(key)
AttributeError: force_change

Anyone any clue where this might stem from?

Thanks - 0815
Looks like a typo in the code on line 2653

game_item.foce_change = False

Should be

game_item.force_change = False
Hah. I missed that in personal testing because I'd done a full update. Weird that no one else reported it before you considering it's been 2 weeks and a week in testing before that. I'll try and post a fix tonight but it might have to wait until tomorrow (my Laptop is nearly out of battery )
Post edited July 14, 2024 by Kalanyr
Fixed
Timboil
Games started with The should stay at T, because they are on T. Whatever how many will be on T . Itnis incorrectly if first place to swap that.
QUEEDEYES
Do whatever suits you best.
Me, I prefer to not have too many folders inside a folder, especially as every folder has a folder image. Some would call that good management. Others like yourself, perhaps not.

P.S. You will likely be horrified to know, that I remove the leading 'The' from all band names. So 'The Beatles' to me is just the 'Beatles' for instance. I tend to see 'The' as an implied thing, that doesn't need stating in a list, only in a sentence to make it sound right.

What a crazy world we live in hey.