From 3cfb3c50281722b1573e11334119a1591c8e7b6d Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:05:14 +0200 Subject: [PATCH] Update SGDBSave to use Game class --- src/preferences.py | 8 ++++---- src/utils/create_details_window.py | 2 +- src/utils/importer.py | 10 ++++------ src/utils/steamgriddb.py | 27 +++++++++++++-------------- 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/preferences.py b/src/preferences.py index 4b353c4..ff8c9fe 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -332,9 +332,9 @@ class PreferencesWindow(Adw.PreferencesWindow): self.file_chooser.select_folder(self.win, None, function, None) def undo_remove_all(self, *_args): - for game_id in self.removed_games: - self.win.games[game_id].removed = False - self.win.games[game_id].save() + for game in self.removed_games: + game.removed = False + game.save() self.removed_games = set() self.toast.dismiss() @@ -342,7 +342,7 @@ class PreferencesWindow(Adw.PreferencesWindow): def remove_all_games(self, *_args): for game in self.win.games.values(): if not game.removed: - self.removed_games.add(game.game_id) + self.removed_games.add(game) game.removed = True game.save() diff --git a/src/utils/create_details_window.py b/src/utils/create_details_window.py index 174cee0..d93f430 100644 --- a/src/utils/create_details_window.py +++ b/src/utils/create_details_window.py @@ -321,7 +321,7 @@ def create_details_window(win, game=None): game.save() if not game_cover.pixbuf: - SGDBSave(win, {(game.game_id, game.name)}) + SGDBSave(win, {game}) game.game_cover.pictures.remove(cover) diff --git a/src/utils/importer.py b/src/utils/importer.py index 7dc247b..26346eb 100644 --- a/src/utils/importer.py +++ b/src/utils/importer.py @@ -56,17 +56,15 @@ class Importer: def save_game(self, values=None, cover_path=None): if values: - Game(self.win, values) + game = Game(self.win, values) if cover_path: - save_cover( - self.win, values["game_id"], resize_cover(self.win, cover_path) - ) + save_cover(self.win, game.game_id, resize_cover(self.win, cover_path)) - self.games.add((values["game_id"], values["name"])) + self.games.add(game) self.games_no += 1 - if values.get("blacklisted"): + if game.blacklisted: self.games_no -= 1 self.queue -= 1 diff --git a/src/utils/steamgriddb.py b/src/utils/steamgriddb.py index 164d98c..5891973 100644 --- a/src/utils/steamgriddb.py +++ b/src/utils/steamgriddb.py @@ -30,12 +30,12 @@ class SGDBSave: if self.win.schema.get_boolean("sgdb") and ( self.win.schema.get_boolean("sgdb-prefer") or ( - not (self.win.covers_dir / f"{game[0]}.gif").is_file() - and not (self.win.covers_dir / f"{game[0]}.tiff").is_file() + not (self.win.covers_dir / f"{game.game_id}.gif").is_file() + and not (self.win.covers_dir / f"{game.game_id}.tiff").is_file() ) ): if not self.importer: - self.win.games[game[0]].set_loading(1) + game.set_loading(1) url = "https://www.steamgriddb.com/api/v2/" headers = { @@ -44,7 +44,7 @@ class SGDBSave: try: search_result = requests.get( - f"{url}search/autocomplete/{game[1]}", + f"{url}search/autocomplete/{game.name}", headers=headers, timeout=5, ) @@ -56,7 +56,7 @@ class SGDBSave: ) search_result.raise_for_status() except requests.exceptions.RequestException: - task.return_value(game[0]) + task.return_value(game) return response = None @@ -82,7 +82,7 @@ class SGDBSave: ) response = requests.get(grid.json()["data"][0]["url"], timeout=5) except (requests.exceptions.RequestException, IndexError): - task.return_value(game[0]) + task.return_value(game) return tmp_file = Gio.File.new_tmp()[0] @@ -90,11 +90,11 @@ class SGDBSave: save_cover( self.win, - game[0], + game.game_id, resize_cover(self.win, tmp_file.get_path()), ) - task.return_value(game[0]) + task.return_value(game) def task_done(self, _task, result): if self.importer: @@ -111,14 +111,13 @@ class SGDBSave: _("Preferences"), ).connect("response", self.response) - game = self.win.games.get(result.propagate_value()[1]) + game = result.propagate_value()[1] game.set_loading(-1) - if game: - if self.importer: - game.save() - else: - game.update() + if self.importer: + game.save() + else: + game.update() def response(self, _widget, response): if response == "open_preferences":