Skip to content

Commit 9e6ecc9

Browse files
committed
add ban request eventsub endpoints
1 parent 8fa39a5 commit 9e6ecc9

File tree

4 files changed

+94
-0
lines changed

4 files changed

+94
-0
lines changed

docs/changelog.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
:orphan:
22

3+
2.10.0
4+
=======
5+
- ext.eventsub
6+
- Additions
7+
- Added :method:`Twitchio.ext.eventsub.EventSubClient.subscribe_channel_unban_request_create <EventSubClient.subscribe_channel_unban_request_create>` /
8+
:method:`Twitchio.ext.eventsub.EventSubWSClient.subscribe_channel_unban_request_create <EventSubWSClient.subscribe_channel_unban_request_create>`
9+
- Added :method:`Twitchio.ext.eventsub.EventSubClient.subscribe_channel_unban_request_resolve <EventSubClient.subscribe_channel_unban_request_resolve>` /
10+
:method:`Twitchio.ext.eventsub.EventSubWSClient.subscribe_channel_unban_request_resolve <EventSubWSClient.subscribe_channel_unban_request_resolve>`
11+
312
2.9.2
413
=======
514
- TwitchIO

twitchio/ext/eventsub/models.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1619,6 +1619,74 @@ def __init__(self, client: EventSubClient, data: dict):
16191619
self.donation_decimal_places: int = data["amount"]["decimal_places"]
16201620

16211621

1622+
class ChannelUnbanRequestCreate(EventData):
1623+
"""
1624+
Represents an unban request created by a user.
1625+
1626+
Attributes
1627+
-----------
1628+
id: :class:`str`
1629+
The ID of the ban request.
1630+
broadcaster: :class:`PartialUser`
1631+
The broadcaster from which the user was banned.
1632+
user: :class:`PartialUser`
1633+
The user that was banned.
1634+
text: :class:`str`
1635+
The unban request text the user submitted.
1636+
created_at: :class:`datetime.datetime`
1637+
When the user submitted the request.
1638+
"""
1639+
1640+
__slots__ = (
1641+
"id",
1642+
"broadcaster",
1643+
"user",
1644+
"text",
1645+
"created_at"
1646+
)
1647+
1648+
def __init__(self, client: EventSubClient, data: dict):
1649+
self.id: str = data["id"]
1650+
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster")
1651+
self.user: PartialUser = _transform_user(client, data, "user")
1652+
self.text: str = data["text"]
1653+
self.created_at: datetime.datetime = _parse_datetime(data["created_at"])
1654+
1655+
class ChannelUnbanRequestResolve(EventData):
1656+
"""
1657+
Represents an unban request that has been resolved by a moderator.
1658+
1659+
Attributes
1660+
-----------
1661+
id: :class:`str`
1662+
The ID of the ban request.
1663+
broadcaster: :class:`PartialUser`
1664+
The broadcaster from which the user was banned.
1665+
user: :class:`PartialUser`
1666+
The user that was banned.
1667+
moderator: :class:`PartialUser`
1668+
The moderator that handled this unban request.
1669+
resolution_text: :class:`str`
1670+
The reasoning provided by the moderator.
1671+
status: :class:`str`
1672+
The resolution. either `accepted` or `denied`.
1673+
"""
1674+
1675+
__slots__ = (
1676+
"id",
1677+
"broadcaster",
1678+
"user",
1679+
"text",
1680+
"created_at"
1681+
)
1682+
1683+
def __init__(self, client: EventSubClient, data: dict):
1684+
self.id: str = data["id"]
1685+
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster")
1686+
self.user: PartialUser = _transform_user(client, data, "user")
1687+
self.text: str = data["text"]
1688+
self.created_at: datetime.datetime = _parse_datetime(data["created_at"])
1689+
16221690
_DataType = Union[
16231691
ChannelBanData,
16241692
ChannelUnbanData,
@@ -1652,6 +1720,8 @@ def __init__(self, client: EventSubClient, data: dict):
16521720
ChannelShoutoutCreateData,
16531721
ChannelShoutoutReceiveData,
16541722
ChannelCharityDonationData,
1723+
ChannelUnbanRequestCreate,
1724+
ChannelUnbanRequestResolve
16551725
]
16561726

16571727

@@ -1722,6 +1792,9 @@ class _SubscriptionTypes(metaclass=_SubTypesMeta):
17221792
stream_start = "stream.online", 1, StreamOnlineData
17231793
stream_end = "stream.offline", 1, StreamOfflineData
17241794

1795+
unban_request_create = "channel.unban_request.create", 1, ChannelUnbanRequestCreate
1796+
unban_request_resolve = "channel.unban_request.resolve", 1, ChannelUnbanRequestResolve
1797+
17251798
user_authorization_grant = "user.authorization.grant", 1, UserAuthorizationGrantedData
17261799
user_authorization_revoke = "user.authorization.revoke", 1, UserAuthorizationRevokedData
17271800

twitchio/ext/eventsub/server.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,12 @@ def subscribe_channel_shoutout_receive(
275275
return self._subscribe_with_broadcaster_moderator(
276276
models.SubscriptionTypes.channel_shoutout_receive, broadcaster, moderator
277277
)
278+
279+
def subscribe_channel_unban_request_create(self, broadcaster: Union[PartialUser, str, int], moderator: Union[PartialUser, str, int]):
280+
return self._subscribe_with_broadcaster_moderator(models.SubscriptionTypes.unban_request_create, broadcaster, moderator)
281+
282+
def subscribe_channel_unban_request_resolve(self, broadcaster: Union[PartialUser, str, int], moderator: Union[PartialUser, str, int]):
283+
return self._subscribe_with_broadcaster_moderator(models.SubscriptionTypes.unban_request_resolve, broadcaster, moderator)
278284

279285
def subscribe_channel_charity_donate(self, broadcaster: Union[PartialUser, str, int]):
280286
return self._subscribe_with_broadcaster(models.SubscriptionTypes.channel_charity_donate, broadcaster)

twitchio/ext/eventsub/websocket.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,3 +513,9 @@ async def subscribe_channel_shoutout_receive(
513513

514514
async def subscribe_channel_charity_donate(self, broadcaster: Union[PartialUser, str, int], token: str):
515515
await self._subscribe_with_broadcaster(models.SubscriptionTypes.channel_charity_donate, broadcaster, token)
516+
517+
async def subscribe_channel_unban_request_create(self, broadcaster: Union[PartialUser, str, int], moderator: Union[PartialUser, str, int], token: str):
518+
await self._subscribe_with_broadcaster_moderator(models.SubscriptionTypes.unban_request_create, broadcaster, moderator, token)
519+
520+
async def subscribe_channel_unban_request_resolve(self, broadcaster: Union[PartialUser, str, int], moderator: Union[PartialUser, str, int], token: str):
521+
await self._subscribe_with_broadcaster_moderator(models.SubscriptionTypes.unban_request_resolve, broadcaster, moderator, token)

0 commit comments

Comments
 (0)