[game-data-packager] 02/02: GOG: prefer linux archives over win ones, handle unexpected linux archives

Alexandre Detiste detiste-guest at moszumanska.debian.org
Thu Sep 17 06:59:45 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit 912f5218b36cbdabce37fa48264ff68026100ad3
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Thu Sep 17 08:57:43 2015 +0200

    GOG: prefer linux archives over win ones, handle unexpected linux archives
    
    ... obey to self.save_downloads
---
 game_data_packager/__init__.py | 14 ++++++++++++--
 tools/fake_lgog.py             |  1 +
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index 8258fd1..d61bf9a 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -2768,6 +2768,7 @@ class GameData(object):
             raise NoPackagesPossible()
 
         ready = set()
+        lgogdownloaded = set()
 
         for package in possible:
             if (package.better_version
@@ -2849,6 +2850,10 @@ class GameData(object):
                 ready.add(package)
             elif download and package.name in possible_with_lgogdownloader:
                 gog_id = self.gog_download_name(package)
+                if gog_id in lgogdownloaded:
+                    # something went bad, G-D-P will complain a lot anyway
+                    continue
+                lgogdownloaded.add(gog_id)
                 tmpdir = os.path.join(self.get_workdir(), gog_id)
                 mkdir_p(tmpdir)
                 try:
@@ -2856,10 +2861,15 @@ class GameData(object):
                                        '--download', '--no-extra',
                                        '--directory', tmpdir,
                                        '--subdir-game', '',
-                                       '--platform', '1',
+                                       '--platform-priority', 'linux,windows',
                                        '--language', package.lang,
                                        '--game', '^' + gog_id + '$'])
-                    self.consider_file_or_dir(tmpdir)
+                    for dirpath, dirnames, filenames in os.walk(tmpdir):
+                        for fn in filenames:
+                            archive = os.path.join(dirpath, fn)
+                            self.consider_file(archive, True)
+                            if self.save_downloads:
+                                shutil.move(archive, self.save_downloads)
                     # recheck file status
                     if self.fill_gaps(package, log=True, download=True,
                        recheck=True) is not FillResult.IMPOSSIBLE:
diff --git a/tools/fake_lgog.py b/tools/fake_lgog.py
index db65204..981947d 100755
--- a/tools/fake_lgog.py
+++ b/tools/fake_lgog.py
@@ -27,6 +27,7 @@ parser.add_argument('--no-extra', action='store_true')
 parser.add_argument('--directory', metavar='DIR')
 parser.add_argument('--subdir-game', type=str)
 parser.add_argument('--platform', type=str)
+parser.add_argument('--platform-priority', type=str)
 parser.add_argument('--language', type=str)
 parser.add_argument('--game', type=str)
 args = parser.parse_args()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list