Eric Vallée - 2013-02-22

Overview

This tool is not meant to replace GOG's official downloader, but rather complement it by providing facilities it doesn't.

The main functionality of this utility is to provided a standard and easy way for the GOG community (www.gog.com) manage their hashes.

The utility is a command line interface written in Python, though if it gains traction, a more visual GUI is definitely a possibility.

Concept

When the utility first starts, the user has to define his GOG directory which is the directory where the user stores his GOG installers and extras.

The expected layout of this directory is that it contains a bunch of sub-directory, each containing exactly one game.

This is the layout that is enforced when the user use GOG's official downloader.

From there, there are 2 main entities that the utility uses: The user's GOG directory, which contains the user's games and a games database which contains what the utility knows about GOG's catalog.

In particular, the games database contains info about a bunch of games as defined by their titles as well as their files. Obviously, the database doesn't store the actual files, but rather descriptive information that can be used to uniquely identify the file (it's name, MD5 hash value and a bunch of other info).

The goal for the user is to get a database that holds a correct up to date representation of GOG's games catalog, which he can then use to make sure his GOG directory contains the most up to date uncorrupted GOG files for his games.

The utility provides means for the community to achieve that goal (ie, get an up to date representation of GOG's catalog and distribute it).

Commands

The commands the utility provide falls into 3 main categories:

1) Commands that provide services to a user who has an up to date database

The commands in this category are:

verify
store
dir
chdir
key
missingkeys

2) Commands that allows a user to build a more up to date database based on info contained in his GOG directory

The commands in this category are:

update
list
info
rename
switchkey
exclude

3) Commands that helps users share their databases in order to either get a more up to date database directly or combine their respective databases to get a more up date one based on information from several databases.

The commands in this category are:

gogwiki
merge
diff
addsource
getsource
listsources
removesource

 

Last edit: Eric Vallée 2013-02-22