Update SGDBSave to use Game class

This commit is contained in:
kramo
2023-04-19 22:05:14 +02:00
parent b92e316729
commit 3cfb3c5028
4 changed files with 22 additions and 25 deletions

View File

@@ -332,9 +332,9 @@ class PreferencesWindow(Adw.PreferencesWindow):
self.file_chooser.select_folder(self.win, None, function, None) self.file_chooser.select_folder(self.win, None, function, None)
def undo_remove_all(self, *_args): def undo_remove_all(self, *_args):
for game_id in self.removed_games: for game in self.removed_games:
self.win.games[game_id].removed = False game.removed = False
self.win.games[game_id].save() game.save()
self.removed_games = set() self.removed_games = set()
self.toast.dismiss() self.toast.dismiss()
@@ -342,7 +342,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
def remove_all_games(self, *_args): def remove_all_games(self, *_args):
for game in self.win.games.values(): for game in self.win.games.values():
if not game.removed: if not game.removed:
self.removed_games.add(game.game_id) self.removed_games.add(game)
game.removed = True game.removed = True
game.save() game.save()

View File

@@ -321,7 +321,7 @@ def create_details_window(win, game=None):
game.save() game.save()
if not game_cover.pixbuf: if not game_cover.pixbuf:
SGDBSave(win, {(game.game_id, game.name)}) SGDBSave(win, {game})
game.game_cover.pictures.remove(cover) game.game_cover.pictures.remove(cover)

View File

@@ -56,17 +56,15 @@ class Importer:
def save_game(self, values=None, cover_path=None): def save_game(self, values=None, cover_path=None):
if values: if values:
Game(self.win, values) game = Game(self.win, values)
if cover_path: if cover_path:
save_cover( save_cover(self.win, game.game_id, resize_cover(self.win, cover_path))
self.win, values["game_id"], resize_cover(self.win, cover_path)
)
self.games.add((values["game_id"], values["name"])) self.games.add(game)
self.games_no += 1 self.games_no += 1
if values.get("blacklisted"): if game.blacklisted:
self.games_no -= 1 self.games_no -= 1
self.queue -= 1 self.queue -= 1

View File

@@ -30,12 +30,12 @@ class SGDBSave:
if self.win.schema.get_boolean("sgdb") and ( if self.win.schema.get_boolean("sgdb") and (
self.win.schema.get_boolean("sgdb-prefer") self.win.schema.get_boolean("sgdb-prefer")
or ( or (
not (self.win.covers_dir / f"{game[0]}.gif").is_file() not (self.win.covers_dir / f"{game.game_id}.gif").is_file()
and not (self.win.covers_dir / f"{game[0]}.tiff").is_file() and not (self.win.covers_dir / f"{game.game_id}.tiff").is_file()
) )
): ):
if not self.importer: if not self.importer:
self.win.games[game[0]].set_loading(1) game.set_loading(1)
url = "https://www.steamgriddb.com/api/v2/" url = "https://www.steamgriddb.com/api/v2/"
headers = { headers = {
@@ -44,7 +44,7 @@ class SGDBSave:
try: try:
search_result = requests.get( search_result = requests.get(
f"{url}search/autocomplete/{game[1]}", f"{url}search/autocomplete/{game.name}",
headers=headers, headers=headers,
timeout=5, timeout=5,
) )
@@ -56,7 +56,7 @@ class SGDBSave:
) )
search_result.raise_for_status() search_result.raise_for_status()
except requests.exceptions.RequestException: except requests.exceptions.RequestException:
task.return_value(game[0]) task.return_value(game)
return return
response = None response = None
@@ -82,7 +82,7 @@ class SGDBSave:
) )
response = requests.get(grid.json()["data"][0]["url"], timeout=5) response = requests.get(grid.json()["data"][0]["url"], timeout=5)
except (requests.exceptions.RequestException, IndexError): except (requests.exceptions.RequestException, IndexError):
task.return_value(game[0]) task.return_value(game)
return return
tmp_file = Gio.File.new_tmp()[0] tmp_file = Gio.File.new_tmp()[0]
@@ -90,11 +90,11 @@ class SGDBSave:
save_cover( save_cover(
self.win, self.win,
game[0], game.game_id,
resize_cover(self.win, tmp_file.get_path()), resize_cover(self.win, tmp_file.get_path()),
) )
task.return_value(game[0]) task.return_value(game)
def task_done(self, _task, result): def task_done(self, _task, result):
if self.importer: if self.importer:
@@ -111,14 +111,13 @@ class SGDBSave:
_("Preferences"), _("Preferences"),
).connect("response", self.response) ).connect("response", self.response)
game = self.win.games.get(result.propagate_value()[1]) game = result.propagate_value()[1]
game.set_loading(-1) game.set_loading(-1)
if game: if self.importer:
if self.importer: game.save()
game.save() else:
else: game.update()
game.update()
def response(self, _widget, response): def response(self, _widget, response):
if response == "open_preferences": if response == "open_preferences":