diff --git a/src/store/managers/steam_api_manager.py b/src/store/managers/steam_api_manager.py index 3b319c0..8a1b2f9 100644 --- a/src/store/managers/steam_api_manager.py +++ b/src/store/managers/steam_api_manager.py @@ -2,6 +2,7 @@ from src.game import Game from src.store.managers.async_manager import AsyncManager from src.utils.steam import ( HTTPError, + SteamForbiddenError, SteamGameNotFoundError, SteamHelper, SteamNotAGameError, @@ -23,7 +24,7 @@ class SteamAPIManager(AsyncManager): steam = SteamHelper() try: online_data = steam.get_api_data(appid=appid) - except (SteamNotAGameError, SteamGameNotFoundError): + except (SteamNotAGameError, SteamGameNotFoundError, SteamForbiddenError): game.update_values({"blacklisted": True}) else: game.update_values(online_data) diff --git a/src/utils/steam.py b/src/utils/steam.py index 458dc77..9e576d7 100644 --- a/src/utils/steam.py +++ b/src/utils/steam.py @@ -22,6 +22,10 @@ class SteamInvalidManifestError(SteamError): pass +class SteamForbiddenError(SteamError): + pass + + class SteamManifestData(TypedDict): """Dict returned by SteamHelper.get_manifest_data""" @@ -64,6 +68,8 @@ class SteamHelper: with requests.get( f"{self.base_url}/appdetails?appids={appid}", timeout=5 ) as response: + if response.status_code == 403: + raise SteamForbiddenError() response.raise_for_status() data = response.json()[appid] except HTTPError as error: