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

×
https://sourceforge.net/projects/gogdwnmanager/files/

It's a command line utility whose main goal is to help the community manage their hashes the lazy way.

It doesn't do the downloading for you, but rather it helps you manage your GOG downloads once they are on your computer.

Rather than rely on a centralized database for updates, it provides facilities for each user to generate his own database based on the content of his GOG directory.

From there, the user can share his database with other users, merge/compare it with another user's database and verify the content of his GOG directory against the database to detect future corruption of files.

Me and JMich are using it to generate an up-to-date database containing all of our combined collection (not yet achieved as we are both busy making our GOG directories up to date with the latest updates and we both have other RL responsibilities).

However, the more who use it, the merrier (that way we can have tons of fun sharing our data :P).

Limitations: The utility was not tested with Mac or Linux, but should work on paper (Python script with OS neutral system calls). Let me know if that's not the case for Linux (I don't have a Mac, sorry). Also, Mac installers, while processed by the utility as files, are not recognized as installers (which means that if you only got Mac installers and no Windows installers, the utility won't be able to identify the games on your filesystem based on the content of it's database, because it uses installers to identify games).

The commands are the following: verify, update, store, dir, list, info, missingkeys, chdir, rename, key, switchkey, loadmusic, unloadmusic, gogwiki, merge, exclude, diff

verify: Allows you to compare the content of your GOG folder against that of your database.
update: Updates the database using your GOG folder.
store: This one is useless for people who use GOG's downloader. For those still using a browser for their downloads, it moves all the files for a game from your browser's download directory to your GOG directory. This assumes of course that you are using a database containing games that you do not have (ie, that someone else populated for you).
dir: Displays the path of your GOG or browser's download directory (which you specify when you start the utility for the first time).
list: Displays the title for the games that your database contains.
info: Displays detailed info about a game in your database
missingkeys: Displays the games that fulfill the following requirement: They require a key and you have not entered one).
chdir: Allows you to change the path that the utility considers to be your GOG directory.
rename: Allows you to change the title for one of your games (ie, you mistakenly titled a game "Age of qonders", well you can use this command to fix it).
key: Allows you to store a key for one of your games (not to worry, your keys are stored in the "CDkeys.sqlite" file and the remainder of your game info is stored in the "GOGames.sqlite" file so you can distribute the games info you got without distributing your keys as well).
switchkey: Tells the database that a game that is flagged as requiring a key actually doesn't need one of vice-versa.
loadmusic, unloadmusic: These allowed you to automatically move your soundtracks to your music directory. I did not port them when I did my major wave of refactoring for version 2.0, but if you really want that feature, let me know.
gogwiki: This one was requested by JMich to get a string to update the GOG wiki. Most people won't need it.
merge: Allows you to merge someone else's game database to yours.
exclude: Allows you to tell the utility to ignore files containing a certain sub-string in their file name or path when you run the 'update' command.
diff: Allows you to see the output of a merge command without actually merging the databases.

Most of those commands expect (or accept) additional parameters which you can view by typing "help <name of the command you are curious about>" in the utility.

Yeah, I went apeshit with the functionality. Sorry if this makes the entry curve somewhat steeper.

Didn't have time yet to write a more detailed manual yet (I'll get around to it if more people are interested by the utility), sorry about that. However, feel free to ask me questions if you are interested.
I just had a good idea before going to bed.

I originally crafted the tool so that people could distribute their databases to each other in an undefined way (I was thinking via email or downloading it manually from some guy's repository).

That's not entirely satisfactory.

The way those things often work is that a group of people take the lead maintaining the information (like in the wiki) and other people follow suit and consider that source an authority.

So it would be great if when someone maintains a database, they can give a download link and then the tool can just pull the database from the link.

However, it would have to be flexible so that the user can define the source (as opposed to hard-coded in the code).

Something like this:

1) Defaults points to a database I maintain in the repository with the tool (maybe tag it "default").

2) Then, the user can add a database that his tool can fetch by typing "addsource --tag='<pseudoname>' --link='<download_url>'"

3) Then, when the user wants to switch source, he can type "setsource <tag>"

4) And finally, "getsource"

At that point, the database gets downloaded from the link, the user gets a warning that his database is about to be replaced (maybe asked if he wants to do a backup of his current database at that point) and then voila, he has an updated copy from his source.

Awesomeness.

EDIT: Maybe have a way to look at your sources like a "listsource" command in case you need a refresher for your tags and what links they point to.
Post edited February 20, 2013 by Magnitus
K, took some moments today to finalize my idea and release it in version 2.6.

Instead of the tool coming with an existing database, you can now pull it by typing "getsource Default" which will pull the database I keep in the sourceforge project which is based on what I scanned so far from my GOG directory.

Atm, my db is up to mid-F in my games (still in the process of updating my collection, but I face time and maximum monthly internet transfer allowance constraints), I only have the windows installers and the French/Spanish language packs, but it's better than a kick in the nuts I guess.

JMich hinted that he might do a fresh scan this weekend in which case I'll be able to update the default database with a more complete representation based on what I have and what he has.

I started writing down a wiki for my project last night also: https://sourceforge.net/p/gogdwnmanager/wiki/Home/

I'll keep adding to it as time allows.
Post edited February 22, 2013 by Magnitus
avatar
Magnitus: JMich hinted that he might do a fresh scan this weekend in which case I'll be able to update the default database with a more complete representation based on what I have and what he has.
A populated database and a newer auto_update.txt can be found here. Feel free to use them.
Updated the manager to version 2.7.

I also added more games (about 180-190 at this point) to the default database so you should pull the most recent version of the db if you use the default one (type "getsource Default" in the utility).

With that out of the way, my next priority will be to merge the default database with what JMich has and to the best of my ability, ensure that the merged content is an up-to-date representation of GOG's catalog.

Some notable changes with the new version (from the top of my head):

Made the utility more tolerant toward directories that don't contain GOG games.

Added the -s option to some command to filter out the output that 95% of users won't want to see anyways.

Also added the ability to get a database on the local file system with the -l option for the 'getsource' command.

Added the facility to filter out existing database files using your exclusion list with the "parsefiles" command (instead of the exclusion list only applying to future update commands).

Added a way to view your exclusion list (listexclusions command) and remove some (removeexclusion command).
Post edited February 26, 2013 by Magnitus
Version 2.8 out.

Due to GOG changing the base name of installers between versions, I improved games recognition to circumvent that.

Mac installers are now recognized as installers and can be used to identify a game.

Also, manual, soundtrack and patch files can also be used to identify a game.

Additionally, because the HD version of Oddworld: Stranger's Wrath has the exact same name as the regular version with a different version number (sloppy GOG, very sloppy), I tweaked the utility to tolerate files with the same base name that have different version numbers (previously, it would consider it the same file and just update the version number, size and MD5).

Also fixed 1-2 minor bugs I found.

And finally, added more games to the database (which now contains 286 games, yay!).