Update man page

This commit is contained in:
Sude 2024-06-04 17:20:25 +03:00
parent 49692c48cb
commit b59a49ef0b
6 changed files with 818 additions and 184 deletions

View File

@ -34,7 +34,7 @@ jobs:
sudo apt -y install ninja-build build-essential libcurl4-openssl-dev libboost-regex-dev \ sudo apt -y install ninja-build build-essential libcurl4-openssl-dev libboost-regex-dev \
libjsoncpp-dev librhash-dev libtinyxml2-dev libtidy-dev \ libjsoncpp-dev librhash-dev libtinyxml2-dev libtidy-dev \
libboost-system-dev libboost-filesystem-dev libboost-program-options-dev \ libboost-system-dev libboost-filesystem-dev libboost-program-options-dev \
libboost-date-time-dev libboost-iostreams-dev help2man cmake \ libboost-date-time-dev libboost-iostreams-dev cmake \
pkg-config zlib1g-dev qtwebengine5-dev pkg-config zlib1g-dev qtwebengine5-dev
- name: Configure - name: Configure

1
.gitignore vendored
View File

@ -3,7 +3,6 @@
*.[oa] *.[oa]
bin/* bin/*
obj/* obj/*
*.1
*.gz *.gz
Makefile Makefile
CMakeCache.txt CMakeCache.txt

View File

@ -17,14 +17,13 @@ It uses the same API as GOG Galaxy which doesn't have Linux support at the momen
## Make dependencies ## Make dependencies
* [cmake](https://cmake.org/) >= 3.5.0 * [cmake](https://cmake.org/) >= 3.5.0
* [ninja](https://github.com/ninja-build/ninja) * [ninja](https://github.com/ninja-build/ninja)
* [help2man](https://www.gnu.org/software/help2man/help2man.html) (optional, man page generation)
## Debian/Ubuntu ## Debian/Ubuntu
# apt install build-essential libcurl4-openssl-dev libboost-regex-dev \ # apt install build-essential libcurl4-openssl-dev libboost-regex-dev \
libjsoncpp-dev librhash-dev libtinyxml2-dev libtidy-dev \ libjsoncpp-dev librhash-dev libtinyxml2-dev libtidy-dev \
libboost-system-dev libboost-filesystem-dev libboost-program-options-dev \ libboost-system-dev libboost-filesystem-dev libboost-program-options-dev \
libboost-date-time-dev libboost-iostreams-dev help2man cmake \ libboost-date-time-dev libboost-iostreams-dev cmake \
pkg-config zlib1g-dev qtwebengine5-dev ninja-build pkg-config zlib1g-dev qtwebengine5-dev ninja-build
### Build and install ### Build and install
@ -36,7 +35,7 @@ It uses the same API as GOG Galaxy which doesn't have Linux support at the momen
``` ```
sudo dnf install cmake make gcc gcc-c++ glibc tinyxml2-devel rhash-devel \ sudo dnf install cmake make gcc gcc-c++ glibc tinyxml2-devel rhash-devel \
libtidy-devel tinyxml-devel jsoncpp-devel libcurl-devel \ libtidy-devel tinyxml-devel jsoncpp-devel libcurl-devel \
boost-devel help2man boost-devel
``` ```
### Build and Install ### Build and Install
``` ```

View File

@ -1,24 +1,20 @@
find_program(HELP2MAN help2man DOC "Location of the help2man program")
find_program(GZIP gzip DOC "Location of the gzip program") find_program(GZIP gzip DOC "Location of the gzip program")
mark_as_advanced(HELP2MAN)
mark_as_advanced(GZIP) mark_as_advanced(GZIP)
include(GNUInstallDirs) include(GNUInstallDirs)
if(HELP2MAN AND GZIP) if(GZIP)
set(H2M_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.supplemental.groff") set(MAN_PAGE "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.1")
set(MAN_PAGE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1")
set(MAN_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1.gz") set(MAN_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1.gz")
add_custom_command( add_custom_command(
OUTPUT ${MAN_FILE} OUTPUT ${MAN_FILE}
COMMAND ${HELP2MAN} -N -i ${H2M_FILE} -o ${MAN_PAGE} "\"${PROJECT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}\"" COMMAND ${GZIP} -c -9 ${MAN_PAGE} > ${MAN_FILE}
COMMAND ${GZIP} -f -9 ${MAN_PAGE} MAIN_DEPENDENCY ${MAN_PAGE}
MAIN_DEPENDENCY ${H2M_FILE}
COMMENT "Building man page" COMMENT "Building man page"
VERBATIM VERBATIM
) )
add_custom_target(manpage ALL DEPENDS ${MAN_FILE} ${PROJECT_NAME}) add_custom_target(manpage ALL DEPENDS ${MAN_FILE} ${PROJECT_NAME})
install(FILES ${MAN_FILE} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) install(FILES ${MAN_FILE} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
else(HELP2MAN AND GZIP) else(GZIP)
message("WARNING: One of the following is missing: help2man, gzip; man page will not be generated") message("WARNING: One of the following is missing: gzip; man page will not be generated")
endif(HELP2MAN AND GZIP) endif(GZIP)

808
man/lgogdownloader.1 Normal file
View File

@ -0,0 +1,808 @@
.TH LGOGDOWNLOADER "1" "2024-06-04" "LGOGDownloader 3.13" "User Commands"
.SH NAME
LGOGDownloader \- manual page for LGOGDownloader 3.13
.SH SYNOPSIS
.B lgogdownloader
[\fIOPTION\fP]...
.SH DESCRIPTION
An open-source GOG.com downloader for Linux users which uses the same API as GOG Galaxy.
.PP
LGOGDownloader can download purchased games, query GOG.com to see if game files have changed,
as well as downloading extras such as artwork and manuals. It is capable of downloading
language-specific installers for games where they exist.
.PP
LGOGDownloader
Options:
.TP
\fB\-h\fR [ \fB\-\-help\fR ]
Print help message
.TP
\fB\-\-version\fR
Print version information
.TP
\fB\-\-login\fR
Login
.TP
\fB\-\-gui\-login\fR
Login (force GUI login)
.br
Implies \fB\-\-enable\-login\-gui\fR
.TP
\fB\-\-check\-login\-status\fR
Check login status
.TP
\fB\-\-list\fR [=arg(=games)]
List games/tags
.br
Games = g|games
.br
Details = d|details
.br
JSON = j|json
.br
Tags = t|tags
.br
Transformations = tr|transform|transformations
.br
User data = ud|userdata
.
.TP
\fB\-\-download\fR
Download
.TP
\fB\-\-repair\fR
Repair downloaded files
Use \fB\-\-repair\fR \fB\-\-download\fR to redownload files when filesizes don't match
(possibly different version). Redownload will rename the old file (appends .old to filename)
.TP
\fB\-\-game\fR arg
Set regular expression filter
for download/list/repair (Perl syntax)
.TP
\fB\-\-create\-xml\fR [=arg(=automatic)]
Create GOG XML for file
.br
"automatic" to enable automatic XML creation
.TP
\fB\-\-notifications\fR
Check notifications
.TP
\fB\-\-updated\fR
List/download only games with update
flag set
.TP
\fB\-\-new\fR
List/download only games with new flag
set
.TP
\fB\-\-clear\-update\-flags\fR
Clear update notification flags
.TP
\fB\-\-check\-orphans\fR arg
Check for orphaned files (files found on local filesystem that are not found on GOG servers).
Sets regular expression filter (Perl syntax) for files to check. If no argument is given
then the regex defaults to \&'.*\e.(zip|exe|bin|dmg|old|deb|tar\e.gz|pkg|sh|mp4)$'
.TP
\fB\-\-delete\-orphans\fR
Delete orphaned files during
\fB\-\-check\-orphans\fR and \fB\-\-galaxy\-install\fR
.TP
\fB\-\-status\fR
Show status of files
.sp 1
Output format:
.br
statuscode gamename filename filesize filehash
.sp 1
Status codes:
.br
OK \- File is OK
.br
ND \- File is not downloaded
.br
MD5 \- MD5 mismatch, different version
.br
FS \- File size mismatch, incomplete download
.nf
.IP
See also \fB\-\-no\-fast\-status\-check\fR option
.TP
\fB\-\-save\-config\fR
Create config file with current settings
.TP
\fB\-\-reset\-config\fR
Reset config settings to default
.TP
\fB\-\-report\fR [=arg(=lgogdownloader\-report.log)]
Save report of downloaded/repaired files to specified file
.br
Default filename: lgogdownloader\-report\&.log
.TP
\fB\-\-update\-cache\fR
Update game details cache
.TP
\fB\-\-no\-platform\-detection\fR
Don't try to detect supported platforms from game shelf.
.br
Skips the initial fast platform detection and detects the supported platforms
from game details which is slower but more accurate.
.br
Useful in case platform identifier is missing for some games in the game shelf.
.br
Using \fB\-\-platform\fR with \fB\-\-list\fR doesn't work with this option.
.TP
\fB\-\-download\-file\fR arg
Download files using fileid
.sp 1
Format:
.br
"gamename/fileid"
.br
"gamename/dlc_gamename/fileid"
.br
"gogdownloader://gamename/fileid"
.br
"gogdownloader://gamename/dlc_name/fileid"
.sp 1
Multiple files:
.br
"gamename1/fileid1,gamename2/fileid2,gamename2/dlcname/fileid1"
.sp 1
This option ignores all subdir options.
.br
The files are downloaded to directory specified with \fB\-\-directory\fR option.
.TP
\fB\-o\fR [ \fB\-\-output\-file\fR ] arg
Set filename of file downloaded with \fB\-\-download\-file\fR.
.TP
\fB\-\-wishlist\fR
Show wishlist
.TP
\fB\-\-cacert\fR arg
Path to CA certificate bundle in PEM format
.TP
\fB\-\-respect\-umask\fR
Do not adjust permissions of sensitive files
.TP
\fB\-\-user\-agent\fR arg (=LGOGDownloader/3.13 (Linux x86_64))
Set user agent
.TP
\fB\-\-wine\-prefix\fR arg (=.)
Set wineprefix directory
.TP
\fB\-\-cloud\-whitelist\fR arg
Include this list of cloud saves, by default all cloud saves are included
.sp 1
Example: \fB\-\-cloud\-whitelist\fR saves/AutoSave\-0 saves/AutoSave\-1/screenshot.png
.TP
\fB\-\-cloud\-blacklist\fR arg
Exclude this list of cloud saves
.br
Example: \fB\-\-cloud\-blacklist\fR saves/AutoSave\-0 saves/AutoSave\-1/screenshot.png
.TP
\fB\-\-cloud\-force\fR
Download or Upload cloud saves even if they're up\-to\-date
.br
Delete remote cloud saves even if no saves are whitelisted
.TP
\fB\-\-enable\-login\-gui\fR
Enable login GUI when encountering reCAPTCHA on login form
.TP
\fB\-\-tag\fR arg
Filter using tags. Separate with "," to use multiple values
.TP
\fB\-\-blacklist\fR arg (=$XDG_CONFIG_HOME/lgogdownloader/blacklist.txt)
Filepath to blacklist
.TP
\fB\-\-ignorelist\fR arg (=$XDG_CONFIG_HOME/lgogdownloader/ignorelist.txt)
Filepath to ignorelist
.TP
\fB\-\-directory\fR arg (=.)
Set download directory
.TP
\fB\-\-limit\-rate\fR arg (=0)
Limit download rate to value in kB
.br
0 = unlimited
.TP
\fB\-\-xml\-directory\fR arg
Set directory for GOG XML files
.TP
\fB\-\-chunk\-size\fR arg (=10)
Chunk size (in MB) when creating XML
.TP
\fB\-\-platform\fR arg (=w+l)
Select which installers are downloaded
.br
Windows = w|win|windows
.br
Mac = m|mac|osx
.br
Linux = l|lin|linux
.br
All = all
.sp 1
Set priority by separating values with ","
.br
Combine values by separating with "+"
.br
Example: Linux if available otherwise Windows and Mac: l,w+m
.TP
\fB\-\-language\fR arg (=en)
Select which language installers are downloaded
.br
.br
See \fBLANGUAGES\fR section for available values
.br
All languages = all
.sp 1
Set priority by separating values with ","
.br
Combine values by separating with "+"
.br
Example: German if available otherwise English and French:
.br
\-\-language de,en+fr
.TP
\fB\-\-no\-remote\-xml\fR
Don't use remote XML for repair
.TP
\fB\-\-no\-unicode\fR
Don't use Unicode in the progress bar
.TP
\fB\-\-no\-color\fR
Don't use coloring in the progress bar or status messages
.TP
\fB\-\-no\-duplicate\-handling\fR
Don't use duplicate handler for installers
.br
Duplicate installers from different languages are handled separately
.TP
\fB\-\-no\-subdirectories\fR
Don't create subdirectories for extras, patches and language packs
.TP
\fB\-\-curl\-verbose\fR
Set libcurl to verbose mode
.TP
\fB\-\-insecure\fR
Don't verify authenticity of SSL certificates
.TP
\fB\-\-timeout\fR arg (=10)
Set timeout for connection
.br
Maximum time in seconds that connection phase is allowed to take
.TP
\fB\-\-retries\fR arg (=3)
Set maximum number of retries on failed download
.TP
\fB\-\-wait\fR arg (=0)
Time to wait between requests (milliseconds)
.TP
\fB\-\-subdir\-installers\fR arg
Set subdirectory for installers
.br
Templates:
.br
\- %platform%
.br
\- %gamename%
.br
\- %gamename_firstletter%
.br
\- %dlcname%
.br
\- %gamename_transformed%
.br
\- %gamename_transformed_firstletter%
.TP
\fB\-\-subdir\-extras\fR arg (=extras)
Set subdirectory for extras
.br
See \fB\-\-subdir\-installers\fR for template values
.TP
\fB\-\-subdir\-patches\fR arg (=patches)
Set subdirectory for patches
.br
See \fB\-\-subdir\-installers\fR for template values
.TP
\fB\-\-subdir\-language\-packs\fR arg (=languagepacks)
Set subdirectory for language packs
.br
See \fB\-\-subdir\-installers\fR for template values
.TP
\fB\-\-subdir\-dlc\fR arg (=dlc/%dlcname%)
Set subdirectory for dlc
.br
See \fB\-\-subdir\-installers\fR for template values
.TP
\fB\-\-subdir\-game\fR arg (=%gamename%)
Set subdirectory for game
.br
See \fB\-\-subdir\-installers\fR for template values
.TP
\fB\-\-use\-cache\fR
Use game details cache
.TP
\fB\-\-cache\-valid\fR arg (=2880)
Set how long cached game details are valid (in minutes)
.br
Default: 2880 minutes (48 hours)
.TP
\fB\-\-save\-serials\fR
Save serial numbers when downloading
.TP
\fB\-\-save\-game\-details\-json\fR
Save game details JSON data as\-is to "game\-details.json"
.TP
\fB\-\-save\-product\-json\fR
Save product info JSON data from the API as\-is to "product.json"
.TP
\fB\-\-save\-logo\fR
Save logo when downloading
.TP
\fB\-\-save\-icon\fR
Save icon when downloading
.TP
\fB\-\-ignore\-dlc\-count\fR [=arg(=.*)]
Set regular expression filter for games to ignore DLC count information
.br
Ignoring DLC count information helps in situations where the account page
doesn't provide accurate information about DLCs
.TP
\fB\-\-include\fR arg (=all)
Select what to download/list/repair
.br
Base game installers = bi|basegame_installers
.br
Base game extras = be|basegame_extras
.br
Base game patches = bp|basegame_patches
.br
Base game language packs = bl|basegame_languagepacks|basegame_langpacks
.br
DLC installers = di|dlc_installers
.br
DLC extras = de|dlc_extras
.br
DLC patches = dp|dlc_patches
.br
DLC language packs = dl|dlc_languagepacks|dlc_langpacks
.br
DLCs = d|dlc|dlcs
.br
Basegame = b|bg|basegame
.br
All installers = i|installers
.br
All extras = e|extras
.br
All patches = p|patches
.br
All language packs = l|languagepacks|langpacks
.br
All = all
.br
Separate with "," to use multiple values
.TP
\fB\-\-exclude\fR arg
Select what not to download/list/repair
.br
See \fB\-\-include\fR for option values
.TP
\fB\-\-automatic\-xml\-creation\fR
Automatically create XML data after download has completed
.TP
\fB\-\-save\-changelogs\fR
Save changelogs when downloading
.TP
\fB\-\-threads\fR arg (=4)
Number of download threads
.TP
\fB\-\-info\-threads\fR arg (=4)
Number of threads for getting product info
.TP
\fB\-\-use\-dlc\-list\fR
Use DLC list specified with \fB\-\-dlc\-list\fR
.TP
\fB\-\-dlc\-list\fR arg (=https://raw.githubusercontent.com/Sude\-/lgogdownloader\-lists/master/game_has_dlc.txt)
Set URL for list of games that have DLC
.TP
\fB\-\-progress\-interval\fR arg (=100)
Set interval for progress bar update (milliseconds)
.br
Value must be between 1 and 10000
.TP
\fB\-\-lowspeed\-timeout\fR arg (=30)
Set time in number seconds that the transfer speed should be below the rate
.br
Set with \fB\-\-lowspeed\-rate\fR for it to considered too slow and aborted
.TP
\fB\-\-lowspeed\-rate\fR arg (=200)
Set average transfer speed in bytes per second that the transfer should be
below during time specified with \fB\-\-lowspeed\-timeout\fR for it to be
considered too slow and aborted
.TP
\fB\-\-include\-hidden\-products\fR
Include games that have been set hidden in account page
.TP
\fB\-\-size\-only\fR
Don't check the hashes of the files whose size matches that on the server
.TP
\fB\-\-verbosity\fR arg (=0)
Set message verbosity level
.br
\-1 = Less verbose
.br
0 = Default
.br
1 = Verbose
.br
2 = Debug
.TP
\fB\-\-check\-free\-space\fR
Check for available free space before starting download
.TP
\fB\-\-no\-fast\-status\-check\fR
Don't use fast status check.
.br
Makes \fB\-\-status\fR much slower but able to catch corrupted files by calculating
local file hash for all files.
.TP
\fB\-\-trust\-api\-for\-extras\fR
Trust API responses for extras to be correct.
.SS "Experimental:"
.TP
\fB\-\-galaxy\-install\fR arg
Install game using product id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build and defaults to 0 if not specified.
.br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-show\-builds\fR arg
Show game builds using product id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build
.br
Lists available builds if build index is not specified
.br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-download\-cloud\-saves\fR arg
Download cloud saves using product\-id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build and defaults to 0 if not specified.
.br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-upload\-cloud\-saves\fR arg
Upload cloud saves using product\-id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build and defaults to 0 if not specified.
.br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-show\-cloud\-saves\fR arg
Show game cloud\-saves using product id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build and defaults to 0 if not specified.
..br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-show\-local\-cloud\-saves\fR arg
Show local cloud\-saves using product id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build and defaults to 0 if not specified.
.br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-delete\-cloud\-saves\fR arg
Delete cloud\-saves using product id [product_id/build_index] or
gamename regex [gamename/build_id]
.br
Build index is used to select a build and defaults to 0 if not specified.
.br
Example: 12345/2 selects build 2 for product 12345
.TP
\fB\-\-galaxy\-platform\fR arg (=w)
Select platform
.br
Windows = w|win|windows
.br
Mac = m|mac|osx
.br
Linux = l|lin|linux
.br
.TP
\fB\-\-galaxy\-language\fR arg (=en)
Select language
.br
See \fBLANGUAGES\fR section for available values
.TP
\fB\-\-galaxy\-arch\fR arg (=x64)
Select architecture
.br
32\-bit = 32|x86|32bit|32\-bit
.br
64\-bit = 64|x64|64bit|64\-bit
.TP
\fB\-\-galaxy\-no\-dependencies\fR
Don't download dependencies during \fB\-\-galaxy\-install\fR
.TP
\fB\-\-subdir\-galaxy\-install\fR arg (=%install_dir%)
Set subdirectory for galaxy install
.sp 1
Templates:
.br
\- %install_dir% = Installation directory from Galaxy API response
.br
\- %gamename% = Game name
.br
\- %title% = Title of the game
.br
\- %product_id% = Product id of the game
.br
\- %install_dir_stripped% = %install_dir% with some characters stripped
.br
\- %title_stripped% = %title% with some characters stripped
.sp 1
"stripped" means that every character that doesn't match the following list
is removed:
.br
> alphanumeric
.br
> space
.br
> \- _ . ( ) [ ] { }
.TP
\fB\-\-galaxy\-cdn\-priority\fR arg (=edgecast,highwinds,akamai,lumen,gog_cdn)
Set priority for used CDNs
.br
Edgecast = ec|edgecast
.br
Highwinds = hw|highwinds|high_winds
.br
GOG = gog|gog_cdn
.br
Lumen = lumen|lumen_cdn
.br
Akamai = akamai|akamai_cdn|akamai_ec|ak
.br
amai_edgecast_proxy
.sp 1
Set priority by separating values with ","
.br
Combine values by separating with "+"
.SH LANGUAGES
Languages available to select with \fB\-\-language\fR and \fB\-\-galaxy\-language\fR options
.br
English = en|eng|english|en[_\-]US
.br
German = de|deu|ger|german|de[_\-]DE
.br
French = fr|fra|fre|french|fr[_\-]FR
.br
Polish = pl|pol|polish|pl[_\-]PL
.br
Russian = ru|rus|russian|ru[_\-]RU
.br
Chinese = cn|zh|zho|chi|chinese|zh[_\-](CN|Hans)
.br
Czech = cz|cs|ces|cze|czech|cs[_\-]CZ
.br
Spanish = es|spa|spanish|es[_\-]ES
.br
Hungarian = hu|hun|hungarian|hu[_\-]HU
.br
Italian = it|ita|italian|it[_\-]IT
.br
Japanese = jp|ja|jpn|japanese|ja[_\-]JP
.br
Turkish = tr|tur|turkish|tr[_\-]TR
.br
Portuguese = pt|por|portuguese|pt[_\-]PT
.br
Korean = ko|kor|korean|ko[_\-]KR
.br
Dutch = nl|nld|dut|dutch|nl[_\-]NL
.br
Swedish = sv|swe|swedish|sv[_\-]SE
.br
Norwegian = no|nor|norwegian|nb[_\-]no|nn[_\-]NO
.br
Danish = da|dan|danish|da[_\-]DK
.br
Finnish = fi|fin|finnish|fi[_\-]FI
.br
Brazilian Portuguese = br|pt_br|pt\-br|ptbr|brazilian_portuguese
.br
Slovak = sk|slk|slo|slovak|sk[_\-]SK
.br
Bulgarian = bl|bg|bul|bulgarian|bg[_\-]BG
.br
Ukrainian = uk|ukr|ukrainian|uk[_\-]UA
.br
Spanish (Latin American) = es_mx|es\-mx|esmx|es\-419|spanish_latin_american
.br
Arabic = ar|ara|arabic|ar[_\-][A\-Z]{2}
.br
Romanian = ro|ron|rum|romanian|ro[_\-][RM]O
.br
Hebrew = he|heb|hebrew|he[_\-]IL
.br
Thai = th|tha|thai|th[_\-]TH
.SH BLACKLIST
.fi
Allows user to specify individual files that should not be downloaded or
mentioned as orphans.
.sp 1
Each line in the file specifies one blacklist expression, except for empty
lines and lines starting with #.
.br
First few characters specify blacklist item type and flags.
So far, only regular expression (perl variant) are supported, so each line
must start with "Rp" characters.
After a space comes the expression itself. Expressions are matched against
file path relative to what was specified as \fI--directory\fP.
\fIExample black list\fP
.br
# used to store manually downloaded mods/patches/maps/, don't mention it as orphans
.br
Rp ^[^/]*/manual/.*
.br
# included with every *divinity game, once is enough
.br
Rp beyond_divinity/extras/bd_ladymageknight\.zip
.br
Rp divinity_2_developers_cut/extras/divinity_2_ladymageknight\.zip
.sp
# extra 6GB is A LOT of space if you don't actually plan to mod your game
.br
Rp the_witcher_2/extras/the_witcher_2_redkit\.zip
.br
Rp the_witcher_2/extras/extras_pack_3_hu_pl_ru_tr_zh_\.zip
.br
Rp the_witcher_2/extras/extras_pack_2_fr_it_jp_\.zip
.SH PRIORITIES
Separating values with "," when using \fBlanguage\fP and \fBplatform\fP switches
enables a priority-based mode: only the first matching one will be downloaded.
.PP
For example, setting \fBlanguage\fP to \fBfr+en\fP means both French and English
will be downloaded (if available) for all games. Setting \fBlanguage\fP to \fBfr,en\fP
means that the French version (and only that one) will be downloaded if available,
and if not, the English version will be downloaded.
.PP
You're allowed to "stack" codes in the priority string if needed. If you set
\fBlanguage\fP to \fBes+fr,en\fP it means it'll download both Spanish (es) and
French (fr) versions if they are available, and the English (en) one only if none
of French and Spanish are available.
.SH AVAILABILITY
The latest version of this distribution is available from
\fIhttps://github.com/Sude-/lgogdownloader\fP
.SH FILES
.fi
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/\fP
Storage for configuration files and cookies
.br
If \fB$XDG_CONFIG_HOME\fP is not set, it will use \fI$HOME/.config/lgogdownloader/\fP.
.TP
\fI$XDG_CACHE_HOME/lgogdownloader/xml/\fP
Storage for XML files
.br
If \fB$XDG_CACHE_HOME\fP is not set, it will use \fI$HOME/.cache/lgogdownloader/xml/\fP.
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/blacklist.txt\fP
Allows user to specify individual files that should not be downloaded.
.br
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/ignorelist.txt\fP
Allows user to specify individual files that should not be mentioned
as orphans. The file has the same format and interpretation as a
blacklist.
.br
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/game_has_dlc.txt\fP
Allows user to specify which games have dlc and should have their DLC count
information ignored. The file has the same format and interpretation as a
blacklist.
.br
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
.br
If the file exists lgogdownloader uses it instead of list specified with
\fB--dlc-list\fP option
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/gamespecific/gamename.conf\fP
JSON formatted file. Sets game specific settings for \fBgamename\fP.
.br
Allowed settings are \fBlanguage\fP, \fBplatform\fP, \fBinclude\fP,
\fBignore-dlc-count\fP, \fBsubdirectories\fP, \fBdirectory\fP,
\fBsubdir-game\fP, \fBsubdir-installers\fP, \fBsubdir-extras\fP,
\fBsubdir-patches\fP, \fBsubdir-language-packs\fP and \fBsubdir-dlc\fP.
.br
Must be in the following format:
.br
{
"language" : <string>,
"platform" : <string>,
"include" : <string>,
"ignore-dlc-count" : <bool>,
"subdirectories" : <bool>,
"directory" : <string>,
"subdir-game" : <string>,
"subdir-installers" : <string>,
"subdir-extras" : <string>,
"subdir-patches" : <string>,
"subdir-language-packs" : <string>,
"subdir-dlc" : <string>
.br
}
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/transformations.json\fP
JSON formatted file. Used to transform gamenames.
.br
Must be in the following format:
.br
{
<string> :
{
"regex" : <string>,
"replacement" : <string>,
"exceptions" : [
<string>,
<string>,
],
},
<string> :
{
"regex" : <string>,
"replacement" : <string>,
},
.br
}
.br
Member names are used to match the gamename (regex).
Member names must be unique.
.br
For example if the file contains 2 rules with "^x" then only the last one is applied.
However if user really wants multiple different rules for everything starting with "x"
then adding wild wildcard matches makes them unique ("^x", "^x.*", "^x.*.*")
.br
If it matches then \fBregex\fP is used for the actual replacement using
the value in \fBreplacement\fP.
.br
"\fBexceptions\fP" is an optional array of gamenames excluded from the rule.
These are matched exactly, no regex.
.br
\fBExample:\fP
.br
match all games beginning with "\fBb\fP" and if they end with "\fB_the\fP" then
remove "\fB_the\fP" at the end and prefix it with "\fBthe_\fP" with exception
of "\fBblackwell_epiphany_the\fP"
.br
{
"^b" :
{
"regex" : "(.*)_the$",
"replacement" : "the_\\\\1",
"exceptions" : [
"blackwell_epiphany_the",
],
},
.br
}

View File

@ -1,168 +0,0 @@
[synopsis]
.B lgogdownloader
[\fIOPTION\fP]...
[description]
An open-source GOG.com downloader for Linux users which uses the same API as GOG Galaxy.
.PP
LGOGDownloader can download purchased games, query GOG.com to see if game files have changed, as well as downloading extras such as artwork and manuals. It is capable of downloading language-specific installers for games where they exist.
/--update-check/
.nf
/--no-installers/
.fi
/Status codes:/
.nf
[blacklist]
.fi
Allows user to specify individual files that should not be downloaded or mentioned as orphans.
.sp 1
Each line in the file specifies one blacklist expression, except for empty lines and lines starting with #.
First few characters specify blacklist item type and flags.
So far, only regular expression (perl variant) are supported, so each line must start with "Rp" characters.
After a space comes the expression itself. Expressions are matched against file path relative to what was specified as \fI--directory\fP.
\fIExample black list\fP
.br
# used to store manually downloaded mods/patches/maps/, don't mention it as orphans
.br
Rp ^[^/]*/manual/.*
.br
# included with every *divinity game, once is enough
.br
Rp beyond_divinity/extras/bd_ladymageknight\.zip
.br
Rp divinity_2_developers_cut/extras/divinity_2_ladymageknight\.zip
.sp
# extra 6GB is A LOT of space if you don't actually plan to mod your game
.br
Rp the_witcher_2/extras/the_witcher_2_redkit\.zip
.br
Rp the_witcher_2/extras/extras_pack_3_hu_pl_ru_tr_zh_\.zip
.br
Rp the_witcher_2/extras/extras_pack_2_fr_it_jp_\.zip
[files]
.fi
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/\fP
Storage for configuration files and cookies
.br
If \fB$XDG_CONFIG_HOME\fP is not set, it will use \fI$HOME/.config/lgogdownloader/\fP.
.TP
\fI$XDG_CACHE_HOME/lgogdownloader/xml/\fP
Storage for XML files
.br
If \fB$XDG_CACHE_HOME\fP is not set, it will use \fI$HOME/.cache/lgogdownloader/xml/\fP.
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/blacklist.txt\fP
Allows user to specify individual files that should not be downloaded.
.br
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/ignorelist.txt\fP
Allows user to specify individual files that should not be mentioned
as orphans. The file has the same format and interpretation as a
blacklist.
.br
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/game_has_dlc.txt\fP
Allows user to specify which games have dlc and should have their DLC count
information ignored. The file has the same format and interpretation as a
blacklist.
.br
It doesn't have to exist, but if it does exist, it must be readable to lgogdownloader.
.br
If the file exists lgogdownloader uses it instead of list specified with
\fB--dlc-list\fP option
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/gamespecific/gamename.conf\fP
JSON formatted file. Sets game specific settings for \fBgamename\fP.
.br
Allowed settings are \fBlanguage\fP, \fBplatform\fP, \fBinclude\fP, \fBignore-dlc-count\fP, \fBsubdirectories\fP, \fBdirectory\fP, \fBsubdir-game\fP, \fBsubdir-installers\fP, \fBsubdir-extras\fP, \fBsubdir-patches\fP, \fBsubdir-language-packs\fP and \fBsubdir-dlc\fP.
.br
Must be in the following format:
.br
{
"language" : <string>,
"platform" : <string>,
"include" : <string>,
"ignore-dlc-count" : <bool>,
"subdirectories" : <bool>,
"directory" : <string>,
"subdir-game" : <string>,
"subdir-installers" : <string>,
"subdir-extras" : <string>,
"subdir-patches" : <string>,
"subdir-language-packs" : <string>,
"subdir-dlc" : <string>
.br
}
.TP
\fI$XDG_CONFIG_HOME/lgogdownloader/transformations.json\fP
JSON formatted file. Used to transform gamenames.
.br
Must be in the following format:
.br
{
<string> :
{
"regex" : <string>,
"replacement" : <string>,
"exceptions" : [
<string>,
<string>,
],
},
<string> :
{
"regex" : <string>,
"replacement" : <string>,
},
.br
}
.br
Member names are used to match the gamename (regex).
Member names must be unique.
.br
For example if the file contains 2 rules with "^x" then only the last one is applied. However if user really wants multiple different rules for everything starting with "x" then adding wild wildcard matches makes them unique ("^x", "^x.*", "^x.*.*")
.br
If it matches then \fBregex\fP is used for the actual replacement using the value in \fBreplacement\fP.
.br
"\fBexceptions\fP" is an optional array of gamenames excluded from the rule. These are matched exactly, no regex.
.br
\fBExample:\fP
.br
match all games beginning with "\fBb\fP" and if they end with "\fB_the\fP" then remove "\fB_the\fP" at the end and prefix it with "\fBthe_\fP" with exception of "\fBblackwell_epiphany_the\fP"
.br
{
"^b" :
{
"regex" : "(.*)_the$",
"replacement" : "the_\\\\1",
"exceptions" : [
"blackwell_epiphany_the",
],
},
.br
}
[priorities]
Separating values with "," when using \fBlanguage\fP and \fBplatform\fP switches enables a priority-based mode: only the first matching one will be downloaded.
.PP
For example, setting \fBlanguage\fP to \fBfr+en\fP means both French and English will be downloaded (if available) for all games. Setting \fBlanguage\fP to \fBfr,en\fP means that the French version (and only that one) will be downloaded if available, and if not, the English version will be downloaded.
.PP
You're allowed to "stack" codes in the priority string if needed. If you set \fBlanguage\fP to \fBes+fr,en\fP it means it'll download both Spanish (es) and French (fr) versions if they are available, and the English (en) one only if none of French and Spanish are available.
[availability]
The latest version of this distribution is available from \fIhttps://github.com/Sude-/lgogdownloader\fP