LGOGDownloader 3.8
* Fixed headless operation (Patch by: grepwood)
* Overwrite changelog only when modified (Patch by: Matthew Howle)
* Added retry support to --galaxy-install
* Changed some retry conditions
* Don't retry on 404 errors because they are mostly produced by
user not owning DLC for a game
* This helps a lot when using high max retry count
* Show reason for retry attempts
* Show installer and patch version when listing game details
* Fixed getting redirect URL from curl (Patch by: Timotej Lazar)
* Improved reCAPTCHA detection (Patch by: Timotej Lazar)
* Added support for new language: Thai
* Retry download also on CURLE_SSL_CONNECT_ERROR (Patch by: Ismo
Toijala))
* Use duplicate handler for extras
* Check for invalid path in GalaxyAPI::fileJsonNodeToGameFileVector
* Added directory template %gamename_firstletter%
* 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
* Skip files that are listed by API for information purposes only
* 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)
Version 3.7
Check that product id selection was successful in Downloader::downloa…
Wait between retries if --wait option is used
Better retry condition for downloads
Fix return code for Downloader::downloadFileWithId
James Le Cuirot (1):
Fix find_path for newer jsoncpp release
Michał Janiszewski (1):
Add -latomic when required
Sude (26):
Add language: Hebrew
Galaxy: Add option to delete orphaned files
Galaxy: Automatically delete old files when updating or downgrading
GUI: Remove usage of QDesktopWidget
Suppress warnings about unused parameters
Save xml data before skipping complete file
Retry on CURLE_RECV_ERROR
Make Downloader::getRemoteFileHash use Galaxy API
Don't exit when failing to get valid game details json
CMake: Disable search for boost-cmake
Make --download-file option use Galaxy API
Remove old GOG downloader API
Remove dependency on liboauth
Check for HTTP response code 416 in Downloader::repairFile
Override global config values in Downloader::checkOrphans
Use separate thread count option for info threads
Galaxy: Add split file support to MojoSetup hack
Galaxy: Improve split file support in MojoSetup hack
Fix filenames with ampersand
Automatically select appropriate size unit for total remaining
Show HTTP response code in status message
Update README.md and man page
Version 3.6
LGOGDownloader 3.3
- Updated url for login check
- Added support for new language: Ukrainian
- Added support for new language: Spanish (Latin American)
- Added option to select platform architecture for Galaxy
* Allows selecting platform architecture with "--galaxy-arch" when "osBitness" is set for depot in API response
- Check for orphaned files after installing a game with --galaxy-install
- Preserve timestamps for downloaded files
* Get timestamps from server for all downloaded files and set the last modified date to that
* Retroactively changes timestamps for previously downloaded files that have different timestamp
* Retroactively changing timestamps doesn't work for files downloaded with --galaxy-install
- Fixed help text for --subdir-installers
- Added option to set user agent
- Expose Galaxy options as experimental options in help text
- Added option to set interval for progress bar update
- Added retry limit for failed chunk repairs
* Fixes infinite loop caused by failed chunk repair
- Get game details using Galaxy API
* Most features now use Galaxy API and should work without having valid downloader API login
* --download-file still uses the old API and will not work without valid API login
* --update-check option also uses the old API and thus requires valid API login to work properly
- Game details cache version is incremented because of changes to gameFile class
- Show product id for DLCs when using --list-details option
- Fixed serials containing <br> tags
- Fixed crash when using old version of jsoncpp and trying to get unsigned int value as string
This package uses CMake to configure the software. Include the
GNUInstallDirs CMake module to define CMAKE_INSTALL_<dir> macros,
and use CMAKE_INSTALL_MANDIR as the location for the installed
manpages. The correct environment variables are passed so that
${CMAKE_INSTALL_MANDIR} points into ${PKGMANDIR}.
LGOGDownloader 3.2
- Fixed crash in Website::getGames
* Sometimes JSON value for updates was null. For example when user
owns a dlc but not the base game. This caused a crash due to std::stoi
throwing std::invalid_argument exception.
- Changed --login to use GOG Galaxy login method
* Galaxy login tokens are stored to "$XDG_CONFIG_HOME/lgogdownloader/galaxy_tokens.json"
- Added initial support for some Galaxy API features
- Show product id for game when using --list-details
* Product id is used with some Galaxy related commands
LGOGDownloader 3.1
- Make libcurl usage thread-safe (Patch by: Philipp Kerling)
* libcurl internally uses signals by default, which will crash the application when using multiple threads.
* Setting CURLOPT_NOSIGNAL on all handles avoids the crashes and is recommended in the libcurl documentation.
- Made getTerminalWidth detect if it is running in a terminal before trying to get the width (Patch by: Steffan Byrne)
* Before this change, if you tried to pipe the standard out to a file or run this as a process, it would fail.
- Moved global curl init/cleanup and ssl thread setup out of the Downloader class
* Allows using libcurl calls before calling Downloader::init() which can be useful in future
- Some code restructuring
* Moved some code from Downloader::init() to constructor
* Added function API::isLoggedIn()
* Added function Downloader::isLoggedIn()
* Downloader::init() no longer calls Downloader::getGameList() it is now called from other functions when needed
- Fixed some login issues
- Limit download thread count to number of items in download queue
- Rewrote and removed lots of duplicate code from Downloader::checkStatus()
* --status now tries to get remote file hash for patches and language packs
* GOG doesn't provide xml data for extras so we still have to rely on local xml data for those
- Made --list show number of updates for games that have been updated
* Allows user to check for updated games more easily
- Replaced all printf and sprintf calls using new Util::formattedString() function
* Util::formattedString creates formatted std::string using std::snprintf
* Fixes possible buffer overflow in Downloader::printProgress() caused by sprintf call
LGOGDownloader 3.0
- Ported code to use tinyxml2 instead of tinyxml (patch by: Ferdinand Thiessen)
- Added support for new language: Bulgarian
- Added support for parallel downloads
* Use --threads to set how many parallel downloads you want to run
* If libcurl uses openssl then libcrypto is required to compile the downloader
- Added support for getting game details in parallel
- Added support for DLC language packs
- Show average download rate after download has finished
- Fixed issue with some GOG XML data files
* Some GOG XML data files contain additional nodes/elements that were not handled properly and caused issues
- Removed obsolete getpass() calls, use termios to control terminal ECHO
- Added option to set CA certificate path
* --cacert option can be used to set path to CA certificate bundle in PEM format
* CURL_CA_BUNDLE environment variable is used if it is set and CA certificate path is not set with --cacert option
- Moved cover list to git repository
* New url: https://raw.githubusercontent.com/Sude-/lgogdownloader-lists/master/covers.xml
- Use list of games that are known to have DLC and ignore DLC count that GOG provides for those games
* Fixes issues caused by GOG providing incorrect dlc count information for games with DLC
* If local list ($XDG_CONFIG_HOME/lgogdownloader/game_has_dlc.txt) exists then remote list isn't used
* --dlc-list option is used to set url for the list (default: https://raw.githubusercontent.com/Sude-/lgogdownloader-lists/master/game_has_dlc.txt)
- Made downloader work better when invoked by Gentoo's package manager (patches by: James Le Cuirot)
* Exit with non-zero status when --list or --list-details fails
* Exit with non-zero status when at least one --download-file fails
* Add --respect-umask option to prevent adjusting permissions
LGOGDownloader 2.28
- Fixed compiling with JsonCpp 1.7.1
- Moved GOG website related members of Downloader class to new Website class
* Downloader::HTTP_Login --> Website::Login
* Downloader::getGames --> Website::getGames
* Downloader::getFreeGames --> Website::getFreeGames
* Downloader::getGameDetailsJSON --> Website::getGameDetailsJSON
* Getting wishlist details was split from Downloader::showWishlist to Website::getWishlistItems function
- Moved login checks from the login function to their own functions
- Added function to check if user is logged in to GOG website
* Website::IsLoggedIn
- Changed gameFile format and gamedetails cache format
* gameFile now contains gamename and file type info
* Game details cache format has been changed to match gameFile changes
* Cache has a new "gamedetails-cache-version" field that can be used to detect cache format changes
- Fixed downloading language packs with file id
- Started using CURLOPT_XFERINFOFUNCTION instead of deprecated CURLOPT_PROGRESSFUNCTION
* libcurl >= 7.32.0 is required
LGOGDownloader 2.27
- Changed build system to CMake (patch by: Sandy Carter)
- Fixed crash after login
- Added option to set automatic XML creation in config file
* --automatic-xml-creation
- Improved game specific config options
* Directory options can be overriden in game specific config file
* "platform" and "language" options allow using string to set them. Use "+" as separator to combine values and "," as separator to set priority.
* For example: this allows setting "language" to English, German and French with "en+de+fr" which is much easier to understand than setting it to "7"
- Improvements to orphan detection (patch by: Thomas J. Moore)
* blacklist applies to installed files only; use ignorelist for orphans
* blacklisted but present items are orphans, as they should be
* use exact matching for file paths: files in wrong location are orphans
* See man page for more details on how to use ignorelist
- Apply blacklist to status checker to avoid some spurious ND messages (patch by: Thomas J. Moore)
- Use cerr for password prompts, error messages, rolling status messages, and other stuff that shouldn't clutter saved stdout. (patch by: Thomas J. Moore)
- Reduce the amount of HTTP requests
* This also slightly speeds up getting game details for games with DLC
- Added option to save changelogs when downloading
* --save-changelogs
- Added support for two-step login