Posted March 05, 2011
Simple downloader written in C++
It uses libcurl for downloading, libhtmlcxx for html parsing, libtinyxml for xml parsing, librhash for verifying md5 hashes, libjsoncpp for JSON parsing and libboost for regex and filesystem functions
You need libcurl, libhtmlcxx, libtinyxml, librhash, libjsoncpp, libboost-regex, libboost-filesystem and libboost-system for compiling
Debian/Ubuntu:sudo apt-get install build-essential libhtmlcxx-dev libcurl4-openssl-dev libtinyxml-dev librhash-dev libjsoncpp-dev libboost-regex-dev libboost-filesystem-dev libboost-system-dev
you can probably also use libcurl4-gnutls-dev or libcurl4-nss-dev if you want
0.12
Fixed login with email/password containing some special characters
Added verbose option. Useful for debugging
Changed default cookie path to ~/.gogdownloader/cookies.txt
Dropped Windows support now that GOG has new working downloader
0.12a
Some minor cosmetic changes to source code
Makefile: gogdownloader rule now depends on clean
Added license
0.12b
fixed a typo that caused batch download to ignore verbose mode
0.13
Re-use one curl handle for all operations
Fix buffer problems in cookie path caused by strcat and getenv
Makefile changes by mgol (don't make elf objs as they are unnecessary)
Use pkg-config for CFLAGS and LDFLAGS in Makefile
0.14
- Parse download details from xml files used by the official GOG Downloader (added dependency: libtinyxml)
- Get MD5 hash for downloaded files (added dependency: libcrypto++)
- Verify file integrity if xml data is available
- Verification is turned off by default. You can activate it with "-v"
- Verbose mode is now activated with "-V"
0.15
- Added repair mode
0.16
- Use getopt for command line interface
- Merged repairFile() with getFile()
0.17
- Added "--xml" to read XML data from file or create XML data for file
- Added "--xml-dir" to set path for local XML storage (default: ~/.gogdownloader/xml/)
- Try reading XML data from user specified XML file, then try remote file and finally try local file from xml-dir
- Added "--no-remote-xml" to skip trying to get XML data from GOG
- Added "--chunk-size" to use custom size for chunks when creating XML
0.18
- Rewrite some parts of code (mainly curl stuff)
- Login function now checks if login was successful
0.19
- Change progressbar in createXML to use the same progressbar as progress_callback
- Fixed bug where specifying cookie location created/updated 2 cookie files
- Fixed bug when using https urls to download single file
0.20
- Check that cookie file exists
- Silence a warning about freopen
- Changed libcrypto++ to librhash which is much smaller library
- Some small code changes to make it easier use other hash algorithms if needed in the future
0.21
- Added some comments to code
- Replaced htmlparser class with a function
- Fixed bug with filtering system that caused downloading of all links if filter didn't match anything
0.22
- Fixed downloading games from amazonaws instead of edgecastcdn
- Changed the downloader to use the shelf view (should fix the extras not showing problem)
0.23
- Make downloader work with new account page layout
0.24
- Include unistd.h : fixes compiling on Arch Linux
- Use list view to get shelf data : fixes bug with downloader not showing all games because shelf view is loaded incrementally using ajax
0.25
- Incorporated the changes by mgol
- Fixed the bug with downloader not showing all games because of ajax calls
- Some Makefile changes
- Use libjsoncpp for JSON parsing
- Show progress of getting shelf data instead of just printing dots
0.26
- Added option to limit download rate
* -L, --limit-rate <int> Limit download rate to value in kB [0 / unlimited]
0.27
- Create subdirectories for downloads
- Regular expression support for filtering (uses Perl syntax)
0.28
- Fixed login (GOG changed the login url)
- Added simple cover image download support (might not work for all games; needs better regex)
- Added "--no-cover" to skip cover image downloading
0.29
- Fixed "Unknown SSL protocol error in connection to www.gog.com:443" by using secure.gog.com
0.30
- Removed --verify as unnecessary option (--repair does practically the same job and is more useful)
- Some minor changes to regex in cover downloading
- Check for update notifications (--update-check)
0.31
- Fixed login (GOG added a parameter to login form)
https://sites.google.com/site/gogdownloader/gogdownloader-0.31.tar.gz
tar -xvzf gogdownloader-0.31.tar.gz
cd gogdownloader-0.31
make
sudo make install
Windows version 0.11: http://www.mediafire.com/?jbfbmplh1d66l3c
It uses libcurl for downloading, libhtmlcxx for html parsing, libtinyxml for xml parsing, librhash for verifying md5 hashes, libjsoncpp for JSON parsing and libboost for regex and filesystem functions
You need libcurl, libhtmlcxx, libtinyxml, librhash, libjsoncpp, libboost-regex, libboost-filesystem and libboost-system for compiling
Debian/Ubuntu:sudo apt-get install build-essential libhtmlcxx-dev libcurl4-openssl-dev libtinyxml-dev librhash-dev libjsoncpp-dev libboost-regex-dev libboost-filesystem-dev libboost-system-dev
you can probably also use libcurl4-gnutls-dev or libcurl4-nss-dev if you want
0.12
Fixed login with email/password containing some special characters
Added verbose option. Useful for debugging
Changed default cookie path to ~/.gogdownloader/cookies.txt
Dropped Windows support now that GOG has new working downloader
0.12a
Some minor cosmetic changes to source code
Makefile: gogdownloader rule now depends on clean
Added license
0.12b
fixed a typo that caused batch download to ignore verbose mode
0.13
Re-use one curl handle for all operations
Fix buffer problems in cookie path caused by strcat and getenv
Makefile changes by mgol (don't make elf objs as they are unnecessary)
Use pkg-config for CFLAGS and LDFLAGS in Makefile
0.14
- Parse download details from xml files used by the official GOG Downloader (added dependency: libtinyxml)
- Get MD5 hash for downloaded files (added dependency: libcrypto++)
- Verify file integrity if xml data is available
- Verification is turned off by default. You can activate it with "-v"
- Verbose mode is now activated with "-V"
0.15
- Added repair mode
0.16
- Use getopt for command line interface
- Merged repairFile() with getFile()
0.17
- Added "--xml" to read XML data from file or create XML data for file
- Added "--xml-dir" to set path for local XML storage (default: ~/.gogdownloader/xml/)
- Try reading XML data from user specified XML file, then try remote file and finally try local file from xml-dir
- Added "--no-remote-xml" to skip trying to get XML data from GOG
- Added "--chunk-size" to use custom size for chunks when creating XML
0.18
- Rewrite some parts of code (mainly curl stuff)
- Login function now checks if login was successful
0.19
- Change progressbar in createXML to use the same progressbar as progress_callback
- Fixed bug where specifying cookie location created/updated 2 cookie files
- Fixed bug when using https urls to download single file
0.20
- Check that cookie file exists
- Silence a warning about freopen
- Changed libcrypto++ to librhash which is much smaller library
- Some small code changes to make it easier use other hash algorithms if needed in the future
0.21
- Added some comments to code
- Replaced htmlparser class with a function
- Fixed bug with filtering system that caused downloading of all links if filter didn't match anything
0.22
- Fixed downloading games from amazonaws instead of edgecastcdn
- Changed the downloader to use the shelf view (should fix the extras not showing problem)
0.23
- Make downloader work with new account page layout
0.24
- Include unistd.h : fixes compiling on Arch Linux
- Use list view to get shelf data : fixes bug with downloader not showing all games because shelf view is loaded incrementally using ajax
0.25
- Incorporated the changes by mgol
- Fixed the bug with downloader not showing all games because of ajax calls
- Some Makefile changes
- Use libjsoncpp for JSON parsing
- Show progress of getting shelf data instead of just printing dots
0.26
- Added option to limit download rate
* -L, --limit-rate <int> Limit download rate to value in kB [0 / unlimited]
0.27
- Create subdirectories for downloads
- Regular expression support for filtering (uses Perl syntax)
0.28
- Fixed login (GOG changed the login url)
- Added simple cover image download support (might not work for all games; needs better regex)
- Added "--no-cover" to skip cover image downloading
0.29
- Fixed "Unknown SSL protocol error in connection to www.gog.com:443" by using secure.gog.com
0.30
- Removed --verify as unnecessary option (--repair does practically the same job and is more useful)
- Some minor changes to regex in cover downloading
- Check for update notifications (--update-check)
0.31
- Fixed login (GOG added a parameter to login form)
https://sites.google.com/site/gogdownloader/gogdownloader-0.31.tar.gz
tar -xvzf gogdownloader-0.31.tar.gz
cd gogdownloader-0.31
make
sudo make install
Windows version 0.11: http://www.mediafire.com/?jbfbmplh1d66l3c
Post edited July 20, 2012 by Sude