Cleanups
This commit is contained in:
@@ -31,7 +31,7 @@ from src.errors.friendly_error import FriendlyError
|
||||
from src.game import Game
|
||||
from src.game_cover import GameCover
|
||||
from src.store.managers.cover_manager import CoverManager
|
||||
from src.store.managers.sgdb_manager import SGDBManager
|
||||
from src.store.managers.sgdb_manager import SgdbManager
|
||||
from src.utils.create_dialog import create_dialog
|
||||
from src.utils.save_cover import convert_cover, save_cover
|
||||
|
||||
@@ -245,7 +245,7 @@ class DetailsWindow(Adw.Window):
|
||||
# Get a cover from SGDB if none is present
|
||||
if not self.game_cover.get_texture():
|
||||
self.game.set_loading(1)
|
||||
sgdb_manager = shared.store.managers[SGDBManager]
|
||||
sgdb_manager = shared.store.managers[SgdbManager]
|
||||
sgdb_manager.reset_cancellable()
|
||||
sgdb_manager.process_game(self.game, {}, self.update_cover_callback)
|
||||
|
||||
@@ -254,7 +254,7 @@ class DetailsWindow(Adw.Window):
|
||||
self.close()
|
||||
shared.win.show_details_page(self.game)
|
||||
|
||||
def update_cover_callback(self, manager: SGDBManager) -> None:
|
||||
def update_cover_callback(self, manager: SgdbManager) -> None:
|
||||
# Set the game as not loading
|
||||
self.game.set_loading(-1)
|
||||
self.game.update()
|
||||
|
||||
@@ -51,7 +51,7 @@ from src.preferences import PreferencesWindow
|
||||
from src.store.managers.cover_manager import CoverManager
|
||||
from src.store.managers.display_manager import DisplayManager
|
||||
from src.store.managers.file_manager import FileManager
|
||||
from src.store.managers.sgdb_manager import SGDBManager
|
||||
from src.store.managers.sgdb_manager import SgdbManager
|
||||
from src.store.managers.steam_api_manager import SteamAPIManager
|
||||
from src.store.store import Store
|
||||
from src.utils.migrate_files_v1_to_v2 import migrate_files_v1_to_v2
|
||||
@@ -107,7 +107,7 @@ class CartridgesApplication(Adw.Application):
|
||||
# Add rest of the managers for game imports
|
||||
shared.store.add_manager(CoverManager())
|
||||
shared.store.add_manager(SteamAPIManager())
|
||||
shared.store.add_manager(SGDBManager())
|
||||
shared.store.add_manager(SgdbManager())
|
||||
shared.store.toggle_manager_in_pipelines(FileManager, True)
|
||||
|
||||
# Create actions
|
||||
|
||||
@@ -38,7 +38,7 @@ from src.importer.sources.lutris_source import LutrisSource
|
||||
from src.importer.sources.retroarch_source import RetroarchSource
|
||||
from src.importer.sources.source import Source
|
||||
from src.importer.sources.steam_source import SteamSource
|
||||
from src.store.managers.sgdb_manager import SGDBManager
|
||||
from src.store.managers.sgdb_manager import SgdbManager
|
||||
from src.utils.create_dialog import create_dialog
|
||||
|
||||
|
||||
@@ -175,15 +175,15 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
)
|
||||
)
|
||||
|
||||
def redownload_sgdb(*_args) -> None:
|
||||
def update_sgdb(*_args: Any) -> None:
|
||||
counter = 0
|
||||
games_len = len(shared.store)
|
||||
sgdb_manager = shared.store.managers[SGDBManager]
|
||||
sgdb_manager = shared.store.managers[SgdbManager]
|
||||
sgdb_manager.reset_cancellable()
|
||||
|
||||
self.add_toast(download_toast := Adw.Toast.new(_("Downloading covers…")))
|
||||
|
||||
def update_cover_callback(manager: SGDBManager) -> None:
|
||||
def update_cover_callback(manager: SgdbManager) -> None:
|
||||
nonlocal counter
|
||||
nonlocal games_len
|
||||
nonlocal download_toast
|
||||
@@ -208,7 +208,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
for game in shared.store:
|
||||
sgdb_manager.process_game(game, {}, update_cover_callback)
|
||||
|
||||
self.sgdb_fetch_button.connect("clicked", redownload_sgdb)
|
||||
self.sgdb_fetch_button.connect("clicked", update_sgdb)
|
||||
|
||||
# Switches
|
||||
self.bind_switches(
|
||||
|
||||
@@ -21,14 +21,14 @@ from src import shared
|
||||
from src.game import Game
|
||||
from src.game_cover import GameCover
|
||||
from src.store.managers.manager import Manager
|
||||
from src.store.managers.sgdb_manager import SGDBManager
|
||||
from src.store.managers.sgdb_manager import SgdbManager
|
||||
from src.store.managers.steam_api_manager import SteamAPIManager
|
||||
|
||||
|
||||
class DisplayManager(Manager):
|
||||
"""Manager in charge of adding a game to the UI"""
|
||||
|
||||
run_after = (SteamAPIManager, SGDBManager)
|
||||
run_after = (SteamAPIManager, SgdbManager)
|
||||
signals = {"update-ready"}
|
||||
|
||||
def main(self, game: Game, _additional_data: dict) -> None:
|
||||
|
||||
@@ -26,10 +26,10 @@ from src.game import Game
|
||||
from src.store.managers.async_manager import AsyncManager
|
||||
from src.store.managers.cover_manager import CoverManager
|
||||
from src.store.managers.steam_api_manager import SteamAPIManager
|
||||
from src.utils.steamgriddb import SGDBAuthError, SGDBHelper
|
||||
from src.utils.steamgriddb import SgdbAuthError, SgdbHelper
|
||||
|
||||
|
||||
class SGDBManager(AsyncManager):
|
||||
class SgdbManager(AsyncManager):
|
||||
"""Manager in charge of downloading a game's cover from SteamGridDB"""
|
||||
|
||||
run_after = (SteamAPIManager, CoverManager)
|
||||
@@ -37,9 +37,9 @@ class SGDBManager(AsyncManager):
|
||||
|
||||
def main(self, game: Game, _additional_data: dict) -> None:
|
||||
try:
|
||||
sgdb = SGDBHelper()
|
||||
sgdb = SgdbHelper()
|
||||
sgdb.conditionaly_update_cover(game)
|
||||
except SGDBAuthError as error:
|
||||
except SgdbAuthError as error:
|
||||
# If invalid auth, cancel all SGDBManager tasks
|
||||
self.cancellable.cancel()
|
||||
raise FriendlyError(
|
||||
|
||||
@@ -31,27 +31,27 @@ from src.game import Game
|
||||
from src.utils.save_cover import convert_cover, save_cover
|
||||
|
||||
|
||||
class SGDBError(Exception):
|
||||
class SgdbError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class SGDBAuthError(SGDBError):
|
||||
class SgdbAuthError(SgdbError):
|
||||
pass
|
||||
|
||||
|
||||
class SGDBGameNotFoundError(SGDBError):
|
||||
class SgdbGameNotFound(SgdbError):
|
||||
pass
|
||||
|
||||
|
||||
class SGDBBadRequestError(SGDBError):
|
||||
class SgdbBadRequest(SgdbError):
|
||||
pass
|
||||
|
||||
|
||||
class SGDBNoImageFoundError(SGDBError):
|
||||
class SgdbNoImageFound(SgdbError):
|
||||
pass
|
||||
|
||||
|
||||
class SGDBHelper:
|
||||
class SgdbHelper:
|
||||
"""Helper class to make queries to SteamGridDB"""
|
||||
|
||||
base_url = "https://www.steamgriddb.com/api/v2/"
|
||||
@@ -70,9 +70,9 @@ class SGDBHelper:
|
||||
case 200:
|
||||
return res.json()["data"][0]["id"]
|
||||
case 401:
|
||||
raise SGDBAuthError(res.json()["errors"][0])
|
||||
raise SgdbAuthError(res.json()["errors"][0])
|
||||
case 404:
|
||||
raise SGDBGameNotFoundError(res.status_code)
|
||||
raise SgdbGameNotFound(res.status_code)
|
||||
case _:
|
||||
res.raise_for_status()
|
||||
|
||||
@@ -86,12 +86,12 @@ class SGDBHelper:
|
||||
case 200:
|
||||
data = res.json()["data"]
|
||||
if len(data) == 0:
|
||||
raise SGDBNoImageFoundError()
|
||||
raise SgdbNoImageFound()
|
||||
return data[0]["url"]
|
||||
case 401:
|
||||
raise SGDBAuthError(res.json()["errors"][0])
|
||||
raise SgdbAuthError(res.json()["errors"][0])
|
||||
case 404:
|
||||
raise SGDBGameNotFoundError(res.status_code)
|
||||
raise SgdbGameNotFound(res.status_code)
|
||||
case _:
|
||||
res.raise_for_status()
|
||||
|
||||
@@ -115,7 +115,7 @@ class SGDBHelper:
|
||||
# Get ID for the game
|
||||
try:
|
||||
sgdb_id = self.get_game_id(game)
|
||||
except (HTTPError, SGDBError) as error:
|
||||
except (HTTPError, SgdbError) as error:
|
||||
logging.warning(
|
||||
"%s while getting SGDB ID for %s", type(error).__name__, game.name
|
||||
)
|
||||
@@ -135,10 +135,10 @@ class SGDBHelper:
|
||||
tmp_file_path = tmp_file.get_path()
|
||||
Path(tmp_file_path).write_bytes(response.content)
|
||||
save_cover(game.game_id, convert_cover(tmp_file_path))
|
||||
except SGDBAuthError as error:
|
||||
except SgdbAuthError as error:
|
||||
# Let caller handle auth errors
|
||||
raise error
|
||||
except (HTTPError, SGDBError) as error:
|
||||
except (HTTPError, SgdbError) as error:
|
||||
logging.warning(
|
||||
"%s while getting image for %s kwargs=%s",
|
||||
type(error).__name__,
|
||||
@@ -156,4 +156,4 @@ class SGDBHelper:
|
||||
game.name,
|
||||
sgdb_id,
|
||||
)
|
||||
raise SGDBNoImageFoundError()
|
||||
raise SgdbNoImageFound()
|
||||
|
||||
Reference in New Issue
Block a user