Добавлен send_chat_announcement
This commit is contained in:
@ -975,3 +975,83 @@ 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 update_chat_settings(
|
||||||
|
self,
|
||||||
|
access_token: str,
|
||||||
|
broadcaster_id: int | str,
|
||||||
|
moderator_id: int | str,
|
||||||
|
*,
|
||||||
|
emote_mode: bool | None = None,
|
||||||
|
follower_mode: bool | None = None,
|
||||||
|
follower_mode_duration: int | None = None,
|
||||||
|
non_moderator_chat_delay: bool | None = None,
|
||||||
|
non_moderator_chat_delay_duration: Literal[2, 4, 6] | None = None,
|
||||||
|
slow_mode: bool | None = None,
|
||||||
|
slow_mode_wait_time: int | None = None,
|
||||||
|
subscriber_mode: bool | None = None,
|
||||||
|
unique_chat_mode: bool | None = None,
|
||||||
|
):
|
||||||
|
req = await self.put(
|
||||||
|
'/chat/settings',
|
||||||
|
headers={'Authorization': f'Bearer {access_token}'},
|
||||||
|
params={
|
||||||
|
'broadcaster_id': broadcaster_id,
|
||||||
|
'moderator_id': moderator_id,
|
||||||
|
},
|
||||||
|
json=self.clean_dict(
|
||||||
|
{
|
||||||
|
'emote_mode': emote_mode,
|
||||||
|
'follower_mode': follower_mode,
|
||||||
|
'follower_mode_duration': follower_mode_duration,
|
||||||
|
'non_moderator_chat_delay': non_moderator_chat_delay,
|
||||||
|
'non_moderator_chat_delay_duration': (
|
||||||
|
non_moderator_chat_delay_duration
|
||||||
|
),
|
||||||
|
'slow_mode': slow_mode,
|
||||||
|
'slow_mode_wait_time': slow_mode_wait_time,
|
||||||
|
'subscriber_mode': subscriber_mode,
|
||||||
|
'unique_chat_mode': unique_chat_mode,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
match req.status_code:
|
||||||
|
case st.OK:
|
||||||
|
return s.ChatSettings.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')
|
||||||
|
|
||||||
|
async def send_chat_announcement(
|
||||||
|
self,
|
||||||
|
access_token: str,
|
||||||
|
broadcaster_id: int | str,
|
||||||
|
moderator_id: int | str,
|
||||||
|
message: str,
|
||||||
|
color: Literal[
|
||||||
|
'blue', 'green', 'orange', 'purple', 'primary'
|
||||||
|
] = 'primary',
|
||||||
|
):
|
||||||
|
req = await self.post(
|
||||||
|
'/chat/announcements',
|
||||||
|
headers={'Authorization': f'Bearer {access_token}'},
|
||||||
|
params={
|
||||||
|
'broadcaster_id': broadcaster_id,
|
||||||
|
'moderator_id': moderator_id,
|
||||||
|
},
|
||||||
|
json=self.clean_dict({'message': message, 'color': color}),
|
||||||
|
)
|
||||||
|
|
||||||
|
match req.status_code:
|
||||||
|
case st.NO_CONTENT:
|
||||||
|
return True
|
||||||
|
|
||||||
|
case st.BAD_REQUEST | st.UNAUTHORIZED | st.TOO_MANY_REQUESTS:
|
||||||
|
raise s.Error(req.status_code, req.json()['message'])
|
||||||
|
|
||||||
|
case _:
|
||||||
|
raise s.Error(req.status_code, 'Internal Server Error')
|
||||||
|
|||||||
Reference in New Issue
Block a user