Sude
7b1127a85e
Use CURLOPT_XFERINFOFUNCTION instead of obsolete CURLOPT_PROGRESSFUNCTION
...
CURLOPT_XFERINFOFUNCTION was introduced in libcurl 7.32.0
Newer libcurl prefers the new callback even if both CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION are set. Therefore we can still support older versions libcurl.
2016-04-25 19:26:02 +03:00
Sude
51026efec0
Fix issue with cache update
...
Fixes an issue caused by 33fb004cdd
Website handle didn't have updated config which caused overridden values to be ignored
2016-04-25 18:20:00 +03:00
Sude
5bfb00bb31
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 also has a new "gamedetails-cache-version" field that can be used to detect cache format changes
2016-04-25 18:14:04 +03:00
Sude
2538825fb2
Add missing WTFPL license text to gameDetails and gameFile classes
2016-04-18 20:39:31 +03:00
Sude
33fb004cdd
Move 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 is split from Downloader::showWishlist to Website::getWishlistItems function
2016-04-18 20:33:19 +03:00
Sude
987e053ad4
Add option to save changelogs
2016-03-06 15:45:22 +02:00
Sude
852cb563ba
Reduce the amount HTTP requests
...
Save game details json for later use when DLC info is downloaded in Downloader::getGames.
This reduces the amount of HTTP requests because we don't need to download the info again in Downloader::getGameDetails.
2016-03-06 14:02:30 +02:00
Thomas J. Moore
9520f3f3b7
Improvements to orphan detection:
...
- 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
2016-02-20 14:59:52 -06:00
Thomas J. Moore
f786e94970
Remove excess semicolon warnings
2016-02-20 14:55:52 -06:00
Sude
0de2a9f64b
Add support for priority in game specific language and platform options
2016-02-20 15:34:51 +02:00
Sude
4d4aaa1792
Improve game specific config options
...
"platform" and "language" options allow using string to set them.
This allows user to set them more easily without needing to calculate the sum of integer values and makes the config easier to understand later.
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".
Directory options can be overridden using game specific config file
New options in game specific config file:
- "subdirectories" - <bool>
- "directory" - <string>
- "subdir-game" - <string>
- "subdir-installers" - <string>
- "subdir-extras" - <string>
- "subdir-patches" - <string>
- "subdir-language-packs" - <string>
- "subdir-dlc" - <string>
2016-02-15 14:27:29 +02:00
Sude
fc88679b12
Add option to set automatic XML creation in config file
2016-02-04 11:51:11 +02:00
Sude
3465384e0b
Use include/exclude options to select what to download/list/repair
...
The default is "--include all --exclude covers"
2015-10-07 11:52:04 +03:00
Sude
82aa604b3e
Add language: Slovak
2015-10-06 15:44:36 +03:00
Sude
d648d3a073
Add Util::getOptionNameString to reduce some duplicate code
2015-10-03 19:03:24 +03:00
Sude
ba27e4fbcc
Add version string and number to cached game details
2015-10-03 19:00:51 +03:00
Sude
b4fd9fcf5c
Use regular expressions for getting language and platform option values
...
Selecting languages with --language and --language-priority
- Whatever code GOG happens to use in their API (mostly ISO 639-1)
- ISO 639-1
- ISO 639-2/T
- ISO 639-2/B
- English name
Selecting platforms with --platform and --platform-priority
- Windows: "w, win, windows"
- Linux: "l, lin, linux"
- Mac: "m, mac, osx"
2015-09-02 11:16:00 +03:00
Sude
2206e988a6
Initial support for using platform/language strings to set options
2015-09-01 14:45:34 +03:00
Sude
9b560d786e
Some minor code cleanup
2015-09-01 13:59:54 +03:00
Sude
887ac52563
Some improvements to priority handling
...
Fixes issues with some strings that caused issues previously
For example: 4,,1 is now handled correctly
2015-08-29 16:18:20 +03:00
Sude
a8e09a7f48
Use same structure for language and platform structs
2015-08-29 15:03:20 +03:00
Sude
06d211f534
Simplify and remove duplicate code for getting config directory paths
2015-08-29 14:26:36 +03:00
Sude
b6d07f5343
Merge branch 'outname' of https://github.com/bwrsandman/lgogdownloader
2015-08-15 07:56:53 +03:00
Sandy Carter
bc92655702
Add output filename option
...
Add -o option to specify path and downloaded file name when using
--download-file
Overrides --directory
2015-08-14 23:15:15 -04:00
Sandy Carter
fe314869c1
Factor out protol string as a constant
2015-08-14 21:09:27 -04:00
Sude
f51cca5dff
Add options to login separately to website and API
2015-08-12 16:42:54 +03:00
Erik Fleischer
7e8f707846
Fixed segmentation fault on startup on 32 bit platforms.
...
Fixed downloading files > 2GB on 32 bit systems.
2015-07-05 15:50:16 +02:00
Erik Fleischer
9fbf791a78
Fixed createXML declaration.
2015-07-04 20:52:12 +02:00
Erik Fleischer
23df30d7be
Continued replacing size_t with uintmax_t in order to handle file larger than 2GB on 32 bit platforms.
2015-07-03 22:09:50 +02:00
Sude
2c02435157
Use correct language code for Brazilian Portuguese
2015-06-17 06:12:19 +03:00
Sude
cd5b79b3c9
Add support for Brazilian Portuguese
2015-06-15 04:26:51 +03:00
Sude
6d1c05294d
Set language and platform constants by using left shift
...
Makes the code easier to understand
2015-06-15 04:23:43 +03:00
Sude
834e6baa7a
Add options to ignore DLC count information
...
Ignoring DLC count information helps in situations where the account page doesn't provide accurate information about DLCs.
--ignore-dlc-count sets regular expression filter for games to ignore DLC count information.
Game specific option "ignore-dlc-count" can be used to ignore DLC count for specific game.
2015-06-01 10:45:30 +03:00
Sude
29e6b6290c
Add option to show wishlist
2015-05-13 17:13:30 +03:00
Sude
b5cdf10078
Support new account page layout
2015-05-12 02:19:16 +03:00
Sude
21e6c6119d
Make progressbar display 10 second average download speed
2015-04-27 16:51:17 +03:00
Sude
d97849818e
Add option to download files using file id
2015-04-11 16:42:10 +03:00
Sude
3834c1e612
Add option to skip fast platform detection
...
Useful in case platform identifier is missing for some games in the game shelf.
Using --platform with --list doesn't work when using --no-platform-detection
2015-03-28 12:52:41 +02:00
Sude
216cfaedfe
Add support for saving serial numbers
2015-03-19 09:50:50 +02:00
Sude
f039db5c65
Change jsoncpp include path
2015-01-22 09:22:48 +02:00
Sude
d04cfbae1f
Make progress bar adapt to terminal width
2014-11-27 23:20:22 +02:00
Sude
cb2395b0ba
Make config and cookie files only readable/writable by current user
2014-10-28 21:03:02 +02:00
Gael Le Mignot
a46fad588b
First working version of priority handling
2014-10-26 10:47:13 +01:00
Gael Le Mignot
1204ea247e
Preparation work on priority mode: config file parsing, documentation.
2014-10-25 17:57:04 +02:00
Sude
9235ee8b4a
Add support for caching game details
...
Helps with large libraries when running the downloader multiple times.
Getting game details for many games takes a long time. Caching the game details makes the process much faster for subsequent runs.
Game details are cached to "$XDG_CACHE_HOME/lgogdownloader/gamedetails.json"
--update-cache creates and updates the cache.
--use-cache enables loading game details from cache.
--cache-valid specifies how long cached game details are considered valid
2014-10-16 11:05:57 +03:00
Sude
5635909e20
Add support for setting subdirectories
...
Allows user to specify subdirectories for games, installers, extras, patches, language packs and dlc
2014-09-19 22:46:03 +03:00
Sude
810506b74b
Create filepaths in gameDetails class
...
Add makeFilepaths method to gameDetails class
Add setFilepath and getFilepath methods to gameFile class
2014-09-19 21:08:46 +03:00
Sude
7a00b59345
Move gameFile and gameDetails classes to their own files
2014-09-19 20:23:21 +03:00
Sude
7a15a93676
Change --report option to allow setting the filename of report
2014-09-17 12:41:01 +03:00
Sude
0d39bcb460
Add platform info to gameFile class
2014-09-07 23:09:08 +03:00
Sude
cd2d1f22f8
Added --cover-list option to set url for cover list
2014-08-28 16:00:24 +03:00
Sude
705bde3f6f
Add support for some game specific settings
2014-08-01 20:34:44 +03:00
Sude
5102f812a4
Make sure that large file support is enabled on 32 bit systems
2014-08-01 20:32:29 +03:00
Sude
01d8479d18
Remove the ugly hack to get details for Linux installers
...
GOG fixed API response for Linux installers
2014-07-24 16:00:50 +03:00
Sude
5b879190fe
Forgot to rename function argument in api.h
2014-07-24 15:50:53 +03:00
Sude
630d8a31c3
Add support for Linux installers
2014-07-24 15:36:50 +03:00
Sude
31c547be8a
Fix saving config when init fails but --login was not used
2014-07-07 15:57:07 +03:00
Petr Běhan
95fd2bbff1
implemented blacklist for --download, --repair and --check-orphans
2014-07-02 19:56:18 +03:00
Sude
f25c37074a
Added --wait option to set delay for http requests
...
May help with some errors that could be caused by too many requests in short time
2014-06-10 12:16:49 +03:00
Sude
50cc5a2565
Added DLC support
2014-03-29 01:51:39 +02:00
Sude
c70a6c3775
Save xml data to subdirectories
...
$XDG_CACHE_HOME/lgogdownloader/xml/gamename/filename.xml
Fixes problem with some games using same filenames for extras
2014-02-26 15:04:16 +02:00
Sude
f671834068
Retry failed/partially downloaded files
...
Added --retries option to set maximum number of retries
2014-02-26 14:59:23 +02:00
Sude
3f7669a775
Added --no-subdirectories option
2014-02-23 03:16:10 +02:00
Sude
c70356bf49
Include <sys/time.h> in api.h
...
Fixes compiling in some environments that didn't automatically include sys/time.h
2014-02-20 10:13:03 +02:00
Sude
1c26af48d2
Use subdirectories for extras, patches and languagepacks
...
The simple extras detection in Util::makeFilePath is replaced with argument for setting subdirectory
2014-02-17 14:19:40 +02:00
Sude
cfe4311209
Save to log after each file instead of waiting until destructor is called
2014-02-13 11:16:31 +02:00
Sude
9dda0fccdc
Added --report option
2014-02-13 10:05:16 +02:00
Sude
83e9954579
Added support for more installer languages and language packs
...
Dutch, Swedish, Norwegian, Danish and Finnish
2014-02-06 09:57:37 +02:00
Sude
3b4def2ebe
Add support for setting default options in config file
...
Added --save-config and --reset-config options
2014-02-03 19:28:48 +02:00
Sude
1238f54143
Remove environment check because it's not used for anything
2014-01-05 16:04:23 +02:00
Sude
b59210c251
Changed --check-orphans to set regular expression filter for orphan check.
...
If no argument is given then the regex defaults to '.*\.(zip|exe|bin|dmg|old)$'
2013-12-22 13:02:48 +02:00
Sude
d430af63d0
Support XDG Base Directory Specification
...
Configuration files and cookies are now stored in "$XDG_CONFIG_HOME/lgogdownloader"
if $XDG_CONFIG_HOME is not set it will use "$HOME/.config/lgogdownloader"
XML files are now stored in "$XDG_CACHE_HOME/lgogdownloader/xml"
if $XDG_CACHE_HOME is not set it will use "$HOME/.cache/lgogdownloader/xml"
2013-12-11 11:27:53 +02:00
Sude
6b4010d9c5
Changed all remaining "negative" variables to "positive" in config.h
...
Code was becoming really confusing with all the double negatives in conditions, for example: if(!bNoInstallers)
Added some comments to code
2013-11-19 12:47:10 +02:00
Sude
c4585d3d61
API change: added duplicate handler for installers
...
API::getGameDetails now has a parameter to enable duplicate handling (default: false)
The duplicate handler applies a language id flag on the original installer so it shows support for multiple languages
Downloader uses duplicate handler by default
Added --no-duplicate-handling option to disable duplicate handler
2013-11-18 13:28:27 +02:00
Sude
0d9c27d20a
Added --status command and made createXML output easier to read
...
Version check before download now works without local XML data. However it is much slower without the XML data because it calculates MD5 for the files
Some changes to config.h
- Removed "bHelp" from config because it was not needed
- Changed "bNoColor" to "bColor"
- Changed "bNoUnicode" to "bUnicode"
2013-11-14 15:40:59 +02:00
Sude
f2794ededf
Added --check-orphans to check for orphaned files
...
Checks for orphaned files (files found on local filesystem that are not found on GOG servers) and prints their path
2013-10-14 22:31:12 +03:00
Sude
08b0e10429
API changes: preliminary support for the new "silent" flag
2013-10-13 12:21:14 +03:00
Sude
eb0208fffa
API changes: "#updated" flag is replaced by "notificated" flag
2013-10-13 12:16:25 +03:00
Sude
2a253f6357
Get details about game extras from account page
2013-10-13 11:55:46 +03:00
Sude
fe238a2959
Added support for language packs and improved patch detection
2013-08-09 23:14:10 +03:00
Sude
b73a095f5f
Move the API constants from GlobalConstants to API as private members
2013-08-02 16:18:55 +03:00
Sude
c5d8665593
Added support for Portuguese and Korean installers
2013-08-02 16:03:06 +03:00
Sude
b3792554bf
Added curlSetOpt() method to API for setting curl options
2013-06-28 16:06:08 +03:00
Sude
fe70090b74
Added --timeout option to set timeout for connection phase
2013-06-10 15:15:08 +03:00
Sude
f11ff9e7e4
Added support for downloading patches
2013-05-15 01:28:37 +03:00
Sude
7a9dd503a1
Made API config private member
2013-05-04 19:46:42 +03:00
Sude
e27c585ed7
Verify authenticity of SSL certificates by default
...
Added option --unsecure to disable authenticity verification
2013-04-25 12:05:17 +03:00
Sude
8b0de12fe4
Forgot to change a comment in 9ee5f75
2013-04-25 10:56:53 +03:00
Sude
9ee5f75bfb
Rename global constants to better describe what they mean
2013-04-25 10:48:10 +03:00
Sude
d4db79e783
Added version detection before resuming download
...
Tries to detect if remote file is different from local file before resuming
Remote XML data is saved when download is started
2013-04-08 13:43:11 +03:00
Sude
55134979fb
Update the url for WTFPL license
2013-03-24 23:56:57 +02:00
Sude
e2253ebeca
Partially revert "Add language to installer path if it is missing"
...
Reverts some changes from 97e948abb4
.
Revert automatically adding the language code to filename:
http://gog.com/forum/general/introducing_the_beta_release_of_the_new_gogcom_downloader/post1483
Keep language in gameFile class because it may be useful later.
2013-03-24 00:23:40 +02:00
Sude
3131b00589
Use global constants to simplify adding support for more languages/platforms
2013-03-23 20:12:49 +02:00
Sude
c40b4d96fe
Added support for more languages
...
Chinese, Czech, Spanish, Hungarian, Italian, Japanese and Turkish
2013-03-23 16:07:42 +02:00
Sude
97e948abb4
Add language to installer path if it is missing
2013-03-23 15:42:09 +02:00
Sude
6aa24207c3
--verbose now also sets curlhandle in API to verbose
2013-03-16 22:33:03 +02:00
Sude
90c0b2be79
Use static memory allocation for extras and installers in gameDetails
2013-03-15 23:33:53 +02:00
Sude
2d045c4052
Initial commit
2013-03-15 22:46:16 +02:00