Posted February 20, 2013
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.
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.