Add exception-catchers that point out exactly which game or channel causes a crash

This commit is contained in:
DevilXD committed 2024-02-17 11:31:37 +01:00
1 parent dbd3cd82a0
commit a536dde677
2 files changed
+19 -13

No files matched your search

+6 -3
View File
@@ -244,9 +244,12 @@ class Channel:
return URLType(match.group(1)) return URLType(match.group(1))
async def get_stream(self) -> Stream | None: async def get_stream(self) -> Stream | None:
response: JsonType = await self._twitch.gql_request( try:
GQL_OPERATIONS["GetStreamInfo"].with_variables({"channel": self._login}) response: JsonType = await self._twitch.gql_request(
) GQL_OPERATIONS["GetStreamInfo"].with_variables({"channel": self._login})
)
except MinerException as exc:
raise MinerException(f"Channel: {self._login}") from exc
stream_data: JsonType | None = response["data"]["user"] stream_data: JsonType | None = response["data"]["user"]
if not stream_data: if not stream_data:
return None return None
+13 -10
View File
@@ -1710,16 +1710,19 @@ class Twitch:
return None return None
async def get_live_streams(self, game: Game, *, limit: int = 30) -> list[Channel]: async def get_live_streams(self, game: Game, *, limit: int = 30) -> list[Channel]:
response = await self.gql_request( try:
GQL_OPERATIONS["GameDirectory"].with_variables({ response = await self.gql_request(
"limit": limit, GQL_OPERATIONS["GameDirectory"].with_variables({
"slug": game.slug, "limit": limit,
"options": { "slug": game.slug,
"includeRestricted": ["SUB_ONLY_LIVE"], "options": {
"systemFilters": ["DROPS_ENABLED"], "includeRestricted": ["SUB_ONLY_LIVE"],
}, "systemFilters": ["DROPS_ENABLED"],
}) },
) })
)
except MinerException as exc:
raise MinerException(f"Game: {game.slug}") from exc
if "game" in response["data"]: if "game" in response["data"]:
return [ return [
Channel.from_directory(self, stream_channel_data["node"], drops_enabled=True) Channel.from_directory(self, stream_channel_data["node"], drops_enabled=True)