Sometimes curl handles in downloader and galaxy api class could overwrite cookies with blank cookies
Fixed this by not setting CURLOPT_COOKIEJAR by default and only using it for curl handles in website class
Removed --list-details option
Added --list-format to select a format that --list uses
"no_details" is the same as --list previously and the default value
"details" is the same as --list-details was previously
"json" is JSON formatted output
Relying on automatic object allocation caused curl_global_cleanup() to be called before destructor cleaned up curl handles causing segfault.
Use dynamic object allocation and delete objects before calling curl_global_cleanup() so destructor is executed before global cleanup.
GOG changed something and now the server sometimes responds with gzip compressed XML data
Set CURLOPT_ACCEPT_ENCODING to enable decoding of a response when Content-Encoding header is received
Moved zlib decompression from GalaxyAPI::getResponse to GalaxyAPI::getResponseJson and made it automatic when detecting zlib header
Adds basic support for filtering games using tags that the user can set on account page
Add option --list-tags to list all the tags user has assigned
Add option --tag to filter games using the tags
Removes openssl thread locking callbacks required by OpenSSL <= 1.0.2
Other SSL libraries and newer OpenSSL should be handled by libcurl in a way that is thread-safe
Adds new option --use-dlc-list to enable using DLC list.
Previously the downloader used DLC list by default which made getting game details very slow for not much benefit.
This makes the downloader not use DLC list by default and thus getting game details is much faster.
Before and after result of listing games with 212 game collection using "time lgogdownloader --list"
Before
real 0m36,135s
user 0m0,159s
sys 0m0,039s
After
real 0m2,226s
user 0m0,048s
sys 0m0,019s
For some games the API shows files with "count" and "total_size" of zero meaning that they are not available to download
These are listed on account page for information purpose only (for example to show DLCs included in the installer)
Feature request by "coffeecup" on GOG forums
Useful for sorting big libraries with --subdir-game option
Takes the first letter from %gamename%
If %gamename% begins with a number then 0 (zero) is used instead