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

×
avatar
SargonAelther: In gogrepoC, what is the default behaviour of Update commend without any parameters, except for -full in terms of OS and Language options?

Does it pick up all OSes and Languages by default, or do they NEED to be specified. If they need to be specified, is there a "record absolutely everything" command? I know we can specify OSes and Languages one by one, but there can be quite a few languages.
I haven't tried it, but here is my fallible understanding from reading the gogrepoc code.

If you use neither -os nor -skipos, the default is the operating system of the computer you are running gogrepoc on (and if that OS is not explicitly windows or linux or mac, it defaults to linux).

If you use use neither -lang nor -skiplang, the default is the system language of the computer you are running gogrepoc on (and if that language is not one of those supported by gogrepoc, it defaults to English).

The languages supported by gogrepoc are:
LANG_TABLE = {'en': u'English', # English
'bl': u'\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438', # Bulgarian
'ru': u'\u0440\u0443\u0441\u0441\u043a\u0438\u0439', # Russian
'gk': u'\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac', # Greek
'sb': u'\u0421\u0440\u043f\u0441\u043a\u0430', # Serbian
'ar': u'\u0627\u0644\u0639\u0631\u0628\u064a\u0629', # Arabic
'br': u'Portugu\xeas do Brasil', # Brazilian Portuguese
'jp': u'\u65e5\u672c\u8a9e', # Japanese
'ko': u'\ud55c\uad6d\uc5b4', # Korean
'fr': u'fran\xe7ais', # French
'cn': u'\u4e2d\u6587', # Chinese
'cz': u'\u010desk\xfd', # Czech
'hu': u'magyar', # Hungarian
'pt': u'portugu\xeas', # Portuguese
'tr': u'T\xfcrk\xe7e', # Turkish
'sk': u'slovensk\xfd', # Slovak
'nl': u'nederlands', # Dutch
'ro': u'rom\xe2n\u0103', # Romanian
'es': u'espa\xf1ol', # Spanish
'pl': u'polski', # Polish
'it': u'italiano', # Italian
'de': u'Deutsch', # German
'da': u'Dansk', # Danish
'sv': u'svenska', # Swedish
'fi': u'Suomi', # Finnish
'no': u'norsk', # Norsk
}

Note that this list was created manually, so if new languages are added to GOG, it could be a problem, as there is really no easy way for Kalanyr (or anyone) to identify this, now that MaGog is gone. For example, I just checked MaGog's list of languages that at least one game had installers for (in late 2020), and it contained languages such as Hebrew, Catalan, and Ukrainian, that I don't see on gogrepoc's list.

I'm not aware of an "all languages" or an "all oses" option, but if you just pick a nonsense value, like "xx", and use it with -skipos and -skiplang (e.g. -skipos xx -skiplang xx), you should get all three oses and all the languages listed above (but not languages gogrepoc is unaware of, as mentioned before).
Post edited July 15, 2022 by mrkgnao
Hi

Yesterday Python 3.8 on my synology was updated to 3.8.13-7

After that of course the script would not run anymore, so I downloadad PIP again and installed the required libraries (html5lib html2text requests pyOpenSSL).

However, after that I got a error again, so I resotred the original kalanyr script from march from github, to make sure it was not because of my doing. The error still persists,however:

"
11:54:00 | loading local manifest...
11:54:03 | fatal...
Traceback (most recent call last):
File "/var/services/homes/MyUser/gogrepo/gogrepoc.py", line 2835, in <module>
main(process_argv(sys.argv))
File "/var/services/homes/MyUser/gogrepo/gogrepoc.py", line 2574, in main
cmd_update(args.os, args.lang, args.skipknown, args.updateonly, not args.full, args.ids, args.skipids,args.skiphidden,args.installers,args.resumemode,args.strictverify)
File "/var/services/homes/MyUser/gogrepo/gogrepoc.py", line 1188, in cmd_update
updateSession = makeGOGSession()
File "/var/services/homes/MyUser/gogrepo/gogrepoc.py", line 1158, in makeGOGSession
gogSession = requests.Session()
AttributeError: module 'requests' has no attribute 'Session'
"

Looks to me as if the pip module 'requests' is not working as it should.
I already tried to uninstall and reinstall it, but that would not change anything.
Any Idea how I can fix that?




Edit: I think I got it.
Since it would not let me install pip and the libraries without root rights, I used the "sudo" command.
But the access rights to the library paths this time were only set to "owner", so my default user could not access them.
I'll change them and see if it does any good.
Post edited July 22, 2022 by neumi5694
Despite using the latest version, I'm now getting several XML parsing error messages for several games. Something broke again or is the site still not working properly after yesterday's outage?
avatar
racofer: Despite using the latest version, I'm now getting several XML parsing error messages for several games. Something broke again or is the site still not working properly after yesterday's outage?
Those XML errors are the "new normal" for the last 5 months or so.

If you are using my patch:
https://www.gog.com/forum/general/gogrepopy_python_script_for_regularly_backing_up_your_purchased_gog_collection_for_full_offline_e/post3167,
just rerun the failing games (with -ids) again after a minute or so, and most will resolve. Repeat as necessary until all are resolved (usually after 1-2 attempts).

If you are not using my patch, just try again every day or two in hope it gets resolved.
Post edited July 22, 2022 by mrkgnao
avatar
neumi5694: Looks to me as if the pip module 'requests' is not working as it should.
I already tried to uninstall and reinstall it, but that would not change anything.
Any Idea how I can fix that?

Edit: I think I got it.
Since it would not let me install pip and the libraries without root rights, I used the "sudo" command.
But the access rights to the library paths this time were only set to "owner", so my default user could not access them.
I'll change them and see if it does any good.
I use pipenv which seems to work well.
https://pipenv.pypa.io/en/latest/basics/

There are lots of virtual environments for Python so take your pick but pipenv is simple enough for me.

For me it's basically

sudo dnf install pipenv # or apt install/pacman/your distro's thingamybob.

Then in user-mode:

cd /to/my/GOG/directory

pipenv shell # the first time it will set up a new virtualenv with your GOG directory as the default starting directory, and then enter the virtualenv

#only need to do these the first time:
pipenv install requests
pipenv install html5lib
pipenv install ..whateverelse

python gogrepoc.py update ...

Ctrl-D to exit the virtualenv.

more Pipfile # to inspect the Pipfile (configuration for pipenv)
Post edited July 23, 2022 by lupineshadow
avatar
SargonAelther: Lol, turns out it's a browser caching issue. Going to this page via in-private window seems to display all the DLCs. False alarm. I knew there was no way they'd ever bundle seperately-sold 28 DLCs into a single user-specific installer, without having to make thousands of combinations of said installer for every combination of DLCs possible.

This is not akin to Witcher 3, where they release a GOTY edition with all DLCs bundled as a single separate game.
Yep, on gogdb.org this edition is listed as package, and that's really all it is. It does not change anyhting in the installer architecture.
Post edited July 23, 2022 by neumi5694
Is there a way to add an exception to -skipfiles parameter?

The situation is: I'm fine with soundtracks in mp3 format, so added *_flac.zip and *_wav.zip to -skipfiles. But, one of the games has its soundtrack only in flac format, and I don't want it removed (for single game, I just copied it elsewhere, but if there'd be more of those, that could be more of an issue, plus I might just miss it).

In theory I could also add every file it's supposed to ignore to -skipfiles, but that's partially missing the point of automating it in the first place (if it could even work with so many parameters?).
Post edited July 26, 2022 by piranha1
avatar
piranha1: Is there a way to add an exception to -skipfiles parameter?

The situation is: I'm fine with soundtracks in mp3 format, so added *_flac.zip and *_wav.zip to -skipfiles. But, one of the games has its soundtrack only in flac format, and I don't want it removed (for single game, I just copied it elsewhere, but if there'd be more of those, that could be more of an issue, plus I might just miss it).

In theory I could also add every file it's supposed to ignore to -skipfiles, but that's partially missing the point of automating it in the first place (if it could even work with so many parameters?).
You mean something like 'only skip flac if mp3 is present' ... no.
You're better off if you just delete what you don't need.

That would be a second script (bash, batch, python, whatever).
Check if there is a file having 'mp3' in its name (not as extension tho), then replace 'mp3' with 'wav' in the filename and 'flac' and delete these files.
avatar
neumi5694: Looks to me as if the pip module 'requests' is not working as it should.
I already tried to uninstall and reinstall it, but that would not change anything.
Any Idea how I can fix that?

Edit: I think I got it.
Since it would not let me install pip and the libraries without root rights, I used the "sudo" command.
But the access rights to the library paths this time were only set to "owner", so my default user could not access them.
I'll change them and see if it does any good.
avatar
lupineshadow: I use pipenv which seems to work well.
https://pipenv.pypa.io/en/latest/basics/

There are lots of virtual environments for Python so take your pick but pipenv is simple enough for me.

For me it's basically

sudo dnf install pipenv # or apt install/pacman/your distro's thingamybob.

Then in user-mode:

cd /to/my/GOG/directory

pipenv shell # the first time it will set up a new virtualenv with your GOG directory as the default starting directory, and then enter the virtualenv

#only need to do these the first time:
pipenv install requests
pipenv install html5lib
pipenv install ..whateverelse

python gogrepoc.py update ...

Ctrl-D to exit the virtualenv.

more Pipfile # to inspect the Pipfile (configuration for pipenv)
Thanks for the tip. I'll check the pipenv link, see if that is what I am looking for.
For now I created a virtual python environment, that did the trick.

I am not much of a python programmer, prefer high level languages, didn't even know this existed.
The whole thing was caused because DSM now has python integrated and it's not a user package anymore.
avatar
neumi5694: I am not much of a python programmer, prefer high level languages, didn't even know this existed.
Actually, Python is pretty much as high level as a general purpose imperative programming language will get as of now anyhow.
Post edited July 28, 2022 by Magnitus
avatar
neumi5694: You mean something like 'only skip flac if mp3 is present' ... no.
You're better off if you just delete what you don't need.

That would be a second script (bash, batch, python, whatever).
Check if there is a file having 'mp3' in its name (not as extension tho), then replace 'mp3' with 'wav' in the filename and 'flac' and delete these files.
Not quite, I was thinking about something like "-skipfile *_flac.zip -exception gameA_soundtrack_flac.zip" (made up syntax, obviously). An exception to skipping the file(s).

Deleting is not a problem, other than I'd have to do it every time I check for updates. For now I just kept the soundtrack in question from before I added the -skipfile parameter. With only one it's fine (the script doesn't remove it when using "clean" command etc.), but could becoem an issue if there ever is much more of them (not asking Kalanyr to add it for one game of one user, just wanted to know if it's already possible, guess not, fair enough).
Post edited July 29, 2022 by piranha1
My session is currently suddenly not authenticated any longer, and using login prompts for user name and password, but then says GOG is asking for a reCaptcha and to try again later.

I tried manually editing the gog-cookies.dat by pulling the cookie data from my logged in browser using the Cookie Manager extension, but still no go. Anyone else having issues? Maybe GOG did something on their end? I need to update my library.
avatar
MatrixRaven: My session is currently suddenly not authenticated any longer, and using login prompts for user name and password, but then says GOG is asking for a reCaptcha and to try again later.

I tried manually editing the gog-cookies.dat by pulling the cookie data from my logged in browser using the Cookie Manager extension, but still no go. Anyone else having issues? Maybe GOG did something on their end? I need to update my library.
Tried just now. Had no issues.

Are you using two-step authentication? If so, perhaps try disabling it to see whether it is the problem.
avatar
MatrixRaven: My session is currently suddenly not authenticated any longer, and using login prompts for user name and password, but then says GOG is asking for a reCaptcha and to try again later.

I tried manually editing the gog-cookies.dat by pulling the cookie data from my logged in browser using the Cookie Manager extension, but still no go. Anyone else having issues? Maybe GOG did something on their end? I need to update my library.
The captcha locking can't be fully automated* and is bound to the IP. All you can do is use a cookie from a signed in browser where one in the correct format can be extracted or wait for the Captcha marking to time our or your IP to be rotated.

*It is possible to work around it with a rewrite that involves the user manually doing some stuff in the browser and copying some stuff back. But I only have that written for the Galaxy API.
Post edited August 01, 2022 by Kalanyr
avatar
MatrixRaven: My session is currently suddenly not authenticated any longer, and using login prompts for user name and password, but then says GOG is asking for a reCaptcha and to try again later.

I tried manually editing the gog-cookies.dat by pulling the cookie data from my logged in browser using the Cookie Manager extension, but still no go. Anyone else having issues? Maybe GOG did something on their end? I need to update my library.
avatar
Kalanyr: The captcha locking can't be fully automated* and is bound to the IP. All you can do is use a cookie from a signed in browser where one in the correct format can be extracted or wait for the Captcha marking to time our or your IP to be rotated.

*It is possible to work around it with a rewrite that involves the user manually doing some stuff in the browser and copying some stuff back. But I only have that written for the Galaxy API.
Ok, I tried copying the cookies over, but that didn't seem to work. Is there a particular way you recommend for doing it properly?

I just tried again in Firefox, taking the cookies from the dev console and still it's telling me...

22:33:01 | attempting gog login as 'matrixraven' ...
22:33:04 | cannot continue, gog is asking for a reCAPTCHA :( try again in a few minutes.
22:33:04 | exiting...

I'm logged in from this IP in my browser. I'm not sure I understand why it's not working for the python script which has been running nearly flawlessly for months. My IP won't be rotated. I have cable internet.
Post edited August 01, 2022 by MatrixRaven