It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Wohoo! Finally got off my but and got this done.
LGOGDownloader installed on Slackware64 14.1.

I need to upload htmlcxx and lgogdownloader slackbuilds on my git page but that will probably take some time as I'm a bit tired now.
I will post instructions and link to slackbuilds here when it's done.

==============================
Here are quick insctructions on how to get this done:

Needed dependecies:
tinyxml
liboauth
rhash
jsoncpp
htmlcxx

You can get tinyxml from slackbuilds.org.
As for the rest, you can grab slackbuilds for them from my git page: https://github.com/sbolokanov/slackbuilds

Compile all dependecies and install them.
note: I had trouble with htmlcxx version 0.85 so I had to fall back to 0.84

Compile lgogdownloader (you can get my slackbuild if you are way too lazy!):
# make release
# install -D -m 755 bin/Release/lgogdownloader /usr/bin/lgogdownloader

That's it. Now you can run lgogdownloader.
$ lgogdownloader

If you have any issues with my slackbuilds please drop me an e-mail.
Post edited January 11, 2014 by simon_vd
avatar
Sude: wget http://pastie.org/pastes/8227248/download -O initialize.diff
patch -p1 < initialize.diff
Thanks. Now, it compiles without a hitch and works as long as I pass --insecure. :)
2.11 isn't working for me. After installing liboauth-dev separately and getting things installed, I run the command and it doesn't appear to do anything. No error message, it just pauses for a moment and then returns the command line to me.
When trying to download the_witcher with lgogdownloader 2.11 like this:

logdownloader --download --no-extras --no-cover --timeout 20 --game the_witcher

it also attempted to pull the_witcher_2. I guess instead of exact name it does some pattern matching? That shouldn't be a default behavior.
Post edited January 20, 2014 by shmerl
avatar
shmerl: When trying to download the_witcher with lgogdownloader 2.11 like this:

logdownloader --download --no-extras --no-cover --timeout 20 --game the_witcher

it also attempted to pull the_witcher_2. I guess instead of exact name it does some pattern matching? That shouldn't be a default behavior.
That does seem to contradict the example. Try:

logdownloader --download --no-extras --no-cover --timeout 20 --game "the_witcher$"

I believe that should work, but I'm a bit unclear as to what the exact naming convention here is.
hedwards is correct here, simply add $ to the end of the name and it will not download The Witcher 2 as well.

It actually compares the_witcher with all games in your game library, and any game that contains that phrase will be downloaded. When you add $ at the end, it means it will only look for game names that END with what you typed. As long as you then typed the full game name and end it with $ then you are ensured to only download the game you want.
avatar
Daerandin: hedwards is correct here, simply add $ to the end of the name and it will not download The Witcher 2 as well.

It actually compares the_witcher with all games in your game library, and any game that contains that phrase will be downloaded. When you add $ at the end, it means it will only look for game names that END with what you typed. As long as you then typed the full game name and end it with $ then you are ensured to only download the game you want.
I think the original examples might need a bit of a tweak as there's a bit of inconsistency over whether or not you need to include the .* at the end in order to include things that start with the given string.
Apparently it uses regular expressions with partial matching (I can check in the code, but it's obvious from the tests). For example this downloads both Witchers:

--game 'the_wit.+'

So, in order to make a full matching, you can precede the name with ^ and end it with $:

--game '^the_witcher$'

This will produce a full match (^ means beginning of the string, and $ means the end). I didn't realize the matcher uses such logic first. But now I see that help message even mentions that:

--game arg
Set regular expression filter for download/list/repair (Perl syntax)
It's probably good to add a note that it uses a partial matching (not a full matching).
Post edited January 20, 2014 by shmerl
avatar
shmerl: Apparently it uses regular expressions with partial matching (I can check in the code, but it's obvious from the tests). For example this downloads both Witchers:

--game 'the_wit.+'

So, in order to make a full matching, you can precede the name with ^ and end it with $:

--game '^the_witcher$'

This will produce a full match (^ means beginning of the string, and $ means the end). I didn't realize the matcher uses such logic first. But now I see that help message even mentions that:
Usually that's the beginning and the end of the line. I'm assuming that in this case that really means the end of the field. Yeah, I know that's slightly nitpicky. :-P
avatar
hedwards: 2.11 isn't working for me. After installing liboauth-dev separately and getting things installed, I run the command and it doesn't appear to do anything. No error message, it just pauses for a moment and then returns the command line to me.
Try running debug build with --verbose to see what it does before returning to command line.

avatar
shmerl: It's probably good to add a note that it uses a partial matching (not a full matching).
Either that or change it to do full matching by default.

I'm not able to test at the moment but this should change it do full matching
sed -e 's/boost::regex_search/boost::regex_match/g' -i src/downloader.cpp
avatar
hedwards: 2.11 isn't working for me. After installing liboauth-dev separately and getting things installed, I run the command and it doesn't appear to do anything. No error message, it just pauses for a moment and then returns the command line to me.
avatar
Sude: Try running debug build with --verbose to see what it does before returning to command line.
Thanks, I think I figured it out though, I was able to get it working when I pasted my password in rather than typing it. Not sure why that worked. I'll see abouttrying that debug build and see if it comes up with anything.
I'm actually OK with partial matching, since it's more flexible, and you can always turn it into full matching using the ^...$ method.
Think I have located a minor error.

Click here to see issue on git hub
and here i am again with another feature request! :)

i currently have an alias set up in my .bashrc with the download directory and xml directory specified to lgogdownloader thus:
alias gog='lgogdownloader --directory /data/common_stuff/file_store/games/goodoldgames/ --create-xml automatic --xml-directory /data/common_stuff/lgog_xml/'

in my case i store the files on a server where all my home machines can see them.

it occurs to me that the config file would be a good place to specify defaults, that could then be overridden on the command line. it could include settings for the rate limiting and other stuff.

what do you think? is this a lot to implement?

diziet
have any of the packagers of lgogdownloader rustled up a man page?
if not i've knocked up a quick effort using the help output of lgogdownloader and sude's posts here.
it could do with a copyright section and contact details., but i guess that's up to you sude what you might like in it?
so far i have:

.\" Manpage for LGOGDownloader.
.\" Contact <insert> to correct errors or typos.
.TH "LGOGDownloader" "man 1" "02 February 2014"
.SH NAME
LGOGDownloader \- download / query games purchased from GOG.com
.SH SYNOPSIS
lgogdownloader [options]
.SH DESCRIPTION
LGOGDownloader is a program for downloading games purchased from GOG.com. LGOGDownloader can also query GOG.com to see if game files have changed, it can download extras provided by GOG.com such as artwork and manuals. It is capable of downloading language specific installers for games where they exist. These games are currently for the Microsoft Windows(tm) and Apple(tm) systems only. To play these games under GNU/Linux will require wine or some similar program. Usage of such a program is outside the scope of this document.

.SH OPTIONS
The following options are available.
-h [ --help ] Print help message
--login Login
--list List games
--list-details List games with detailed info
--download Download
--repair Repair downloaded files
Use --repair --download to redownload files when
filesizes don't match (possibly different version).
Redownload will delete the old file
--game arg Set regular expression filter
for download/list/repair (Perl syntax)
Aliases: "all", "free"
--directory arg Set download directory
--limit-rate arg (=0) Limit download rate to value in kB
0 = unlimited
--create-xml arg Create GOG XML for file
"automatic" to enable automatic XML creation
--xml-directory arg Set directory for GOG XML files
--chunk-size arg (=10) Chunk size (in MB) when creating XML
--update-check Check for update notifications
--platform arg (=1) Select which installers are downloaded
1 = Windows
2 = Mac
3 = All
--language arg (=1) Select which language installers are downloaded
1 = English
2 = German
4 = French
8 = Polish
16 = Russian
32 = Chinese
64 = Czech
128 = Spanish
256 = Hungarian
512 = Italian
1024 = Japanese
2048 = Turkish
4096 = Portuguese
8192 = Korean
Add the values to download multiple languages
All = 16383
French + Polish = 4+8 = 12
--no-installers Don't download/list/repair installers
--no-extras Don't download/list/repair extras
--no-patches Don't download/list/repair patches
--no-language-packs Don't download/list/repair language packs
--no-cover Don't download cover images
--no-remote-xml Don't use remote XML for repair
--no-unicode Don't use Unicode in the progress bar
--no-color Don't use coloring in the progress bar
--no-duplicate-handling Don't use duplicate handler for installers
Duplicate installers from different languages are
handled separately
--verbose Print lots of information
--insecure Don't verify authenticity of SSL certificates
--timeout arg (=10) Set timeout for connection
Maximum time in seconds that connection phase is
allowed to take
--check-orphans 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 '.*\.(zip|exe|bin|dmg|old)$'
--status Show status of files

Output format:
statuscode gamename filename filesize filehash

Status codes:
OK - File is OK
ND - File is not downloaded
MD5 - MD5 mismatch, different version
.SH FILES
Configuration files and cookies are stored in "$XDG_CONFIG_HOME/lgogdownloader".
.br
If $XDG_CONFIG_HOME is not set it will use "$HOME/.config/lgogdownloader".

XML files are now stored in "$XDG_CACHE_HOME/lgogdownloader/xml".
.br
If $XDG_CACHE_HOME is not set it will use "$HOME/.cache/lgogdownloader/xml".

.SH SEE ALSO

.SH BUGS
No known bugs.
.SH AUTHOR
Sude
.SH WEBSITE
https://github.com/Sude-/lgogdownloader


so, any suggestions?
sude, what do you think?

diziet