1.0.0: Релиз #1

Merged
Miwory merged 15 commits from dev into latest 2025-12-17 06:31:42 +03:00
3 changed files with 325 additions and 20 deletions
Showing only changes of commit a95ddc36d4 - Show all commits

View File

@ -913,3 +913,30 @@ class TwitchAPIClient(AioHTTPXClient):
case _:
raise s.Error(req.status_code, 'Internal Server Error')
async def get_shared_chat_session(
self,
access_token: str,
broadcaster_id: int | str,
cache_time: int | None = None,
):
req = await self.get(
'/shared_chat/session',
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.SharedChatSession.model_validate(req.json()).data
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

@ -563,3 +563,25 @@ class ChatSettings(BaseModel):
model_config = ConfigDict(extra='forbid')
data: list[ChatSettingsData]
class SharedChatSessionParticipant(BaseModel):
model_config = ConfigDict(extra='forbid')
broadcaster_id: int
class SharedChatSessionData(BaseModel):
model_config = ConfigDict(extra='forbid')
session_id: str
host_broadcaster_id: int
participants: list[SharedChatSessionParticipant]
created_at: datetime
updated_at: datetime
class SharedChatSession(BaseModel):
model_config = ConfigDict(extra='forbid')
data: list[SharedChatSessionData]