Добавлен get_channel_chat_badges

This commit is contained in:
2025-12-11 16:21:55 +03:00
parent 33d498015b
commit 3c6154913a
2 changed files with 53 additions and 0 deletions

View File

@ -822,3 +822,30 @@ class TwitchAPIClient(AioHTTPXClient):
case _: case _:
raise s.Error(req.status_code, 'Internal Server Error') raise s.Error(req.status_code, 'Internal Server Error')
async def get_channel_chat_badges(
self,
access_token: str,
broadcaster_id: int | str,
cache_time: int | None = None,
):
req = await self.get(
'/chat/badges',
headers=self.clean_dict(
{
'Authorization': f'Bearer {access_token}',
'X-Cache-TTL': cache_time,
}
),
params={'broadcaster_id': broadcaster_id},
)
match req.status_code:
case st.OK:
return s.ChannelChatBadges.model_validate(req.json())
case st.BAD_REQUEST | st.UNAUTHORIZED:
raise s.Error(req.status_code, req.json()['message'])
case _:
raise s.Error(req.status_code, 'Internal Server Error')

View File

@ -511,3 +511,29 @@ class GlobalEmotes(ChannelEmotes):
class EmoteSets(ChannelEmotes): class EmoteSets(ChannelEmotes):
pass pass
class ChannelChatBadgesVersion(BaseModel):
model_config = ConfigDict(extra='forbid')
id: str
image_url_1x: str
image_url_2x: str
image_url_4x: str
title: str
description: str
click_action: str | None
click_url: str | None
class ChannelChatBadgesData(BaseModel):
model_config = ConfigDict(extra='forbid')
set_id: str
versions: list[ChannelChatBadgesVersion]
class ChannelChatBadges(BaseModel):
model_config = ConfigDict(extra='forbid')
data: list[ChannelChatBadgesData]