Skip to content

Commit 6bcc5a7

Browse files
chillymoshIAmTomahawkx
authored andcommitted
Add SuspiciousUserUpdateData
1 parent c1d0dee commit 6bcc5a7

File tree

2 files changed

+49
-18
lines changed

2 files changed

+49
-18
lines changed

twitchio/ext/eventsub/models.py

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,7 +1277,7 @@ class StreamOnlineData(EventData):
12771277

12781278
__slots__ = "broadcaster", "id", "type", "started_at"
12791279

1280-
def __init__(self, client: EventSubClient, data: dict):
1280+
def __init__(self, client: EventSubClient, data: dict) -> None:
12811281
self.broadcaster = _transform_user(client, data, "broadcaster_user")
12821282
self.id: str = data["id"]
12831283
self.type: Literal["live", "playlist", "watch_party", "premier", "rerun"] = data["type"]
@@ -1296,7 +1296,7 @@ class StreamOfflineData(EventData):
12961296

12971297
__slots__ = ("broadcaster",)
12981298

1299-
def __init__(self, client: EventSubClient, data: dict):
1299+
def __init__(self, client: EventSubClient, data: dict) -> None:
13001300
self.broadcaster = _transform_user(client, data, "broadcaster_user")
13011301

13021302

@@ -1314,7 +1314,7 @@ class UserAuthorizationGrantedData(EventData):
13141314

13151315
__slots__ = "client_id", "user"
13161316

1317-
def __init__(self, client: EventSubClient, data: dict):
1317+
def __init__(self, client: EventSubClient, data: dict) -> None:
13181318
self.user = _transform_user(client, data, "user")
13191319
self.client_id: str = data["client_id"]
13201320

@@ -1333,7 +1333,7 @@ class UserAuthorizationRevokedData(EventData):
13331333

13341334
__slots__ = "client_id", "user"
13351335

1336-
def __init__(self, client: EventSubClient, data: dict):
1336+
def __init__(self, client: EventSubClient, data: dict) -> None:
13371337
self.user = _transform_user(client, data, "user")
13381338
self.client_id: str = data["client_id"]
13391339

@@ -1354,7 +1354,7 @@ class UserUpdateData(EventData):
13541354

13551355
__slots__ = "user", "email", "description"
13561356

1357-
def __init__(self, client: EventSubClient, data: dict):
1357+
def __init__(self, client: EventSubClient, data: dict) -> None:
13581358
self.user = _transform_user(client, data, "user")
13591359
self.email: Optional[str] = data["email"]
13601360
self.description: str = data["description"]
@@ -1384,7 +1384,7 @@ class ChannelGoalBeginProgressData(EventData):
13841384

13851385
__slots__ = "user", "id", "type", "description", "current_amount", "target_amount", "started_at"
13861386

1387-
def __init__(self, client: EventSubClient, data: dict):
1387+
def __init__(self, client: EventSubClient, data: dict) -> None:
13881388
self.user = _transform_user(client, data, "broadcaster_user")
13891389
self.id: str = data["id"]
13901390
self.type: str = data["type"]
@@ -1432,7 +1432,7 @@ class ChannelGoalEndData(EventData):
14321432
"ended_at",
14331433
)
14341434

1435-
def __init__(self, client: EventSubClient, data: dict):
1435+
def __init__(self, client: EventSubClient, data: dict) -> None:
14361436
self.user = _transform_user(client, data, "broadcaster_user")
14371437
self.id: str = data["id"]
14381438
self.type: str = data["type"]
@@ -1460,7 +1460,7 @@ class ChannelShieldModeBeginData(EventData):
14601460

14611461
__slots__ = ("broadcaster", "moderator", "started_at")
14621462

1463-
def __init__(self, client: EventSubClient, data: dict):
1463+
def __init__(self, client: EventSubClient, data: dict) -> None:
14641464
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
14651465
self.moderator: PartialUser = _transform_user(client, data, "moderator_user")
14661466
self.started_at: datetime.datetime = _parse_datetime(data["started_at"])
@@ -1482,7 +1482,7 @@ class ChannelShieldModeEndData(EventData):
14821482

14831483
__slots__ = ("broadcaster", "moderator", "ended_at")
14841484

1485-
def __init__(self, client: EventSubClient, data: dict):
1485+
def __init__(self, client: EventSubClient, data: dict) -> None:
14861486
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
14871487
self.moderator: PartialUser = _transform_user(client, data, "moderator_user")
14881488
self.ended_at: datetime.datetime = _parse_datetime(data["ended_at"])
@@ -1522,7 +1522,7 @@ class ChannelShoutoutCreateData(EventData):
15221522
"target_cooldown_ends_at",
15231523
)
15241524

1525-
def __init__(self, client: EventSubClient, data: dict):
1525+
def __init__(self, client: EventSubClient, data: dict) -> None:
15261526
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
15271527
self.moderator: PartialUser = _transform_user(client, data, "moderator_user")
15281528
self.to_broadcaster: PartialUser = _transform_user(client, data, "to_broadcaster_user")
@@ -1552,7 +1552,7 @@ class ChannelShoutoutReceiveData(EventData):
15521552

15531553
__slots__ = ("broadcaster", "from_broadcaster", "started_at", "viewer_count")
15541554

1555-
def __init__(self, client: EventSubClient, data: dict):
1555+
def __init__(self, client: EventSubClient, data: dict) -> None:
15561556
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
15571557
self.from_broadcaster: PartialUser = _transform_user(client, data, "to_broadcaster_user")
15581558
self.started_at: datetime.datetime = _parse_datetime(data["started_at"])
@@ -1605,7 +1605,7 @@ class ChannelCharityDonationData(EventData):
16051605
"donation_currency",
16061606
)
16071607

1608-
def __init__(self, client: EventSubClient, data: dict):
1608+
def __init__(self, client: EventSubClient, data: dict) -> None:
16091609
self.id: str = data["id"]
16101610
self.campaign_id: str = data["campaign_id"]
16111611
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster")
@@ -1639,7 +1639,7 @@ class ChannelUnbanRequestCreateData(EventData):
16391639

16401640
__slots__ = ("id", "broadcaster", "user", "text", "created_at")
16411641

1642-
def __init__(self, client: EventSubClient, data: dict):
1642+
def __init__(self, client: EventSubClient, data: dict) -> None:
16431643
self.id: str = data["id"]
16441644
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster")
16451645
self.user: PartialUser = _transform_user(client, data, "user")
@@ -1669,7 +1669,7 @@ class ChannelUnbanRequestResolveData(EventData):
16691669

16701670
__slots__ = ("id", "broadcaster", "user", "text", "created_at")
16711671

1672-
def __init__(self, client: EventSubClient, data: dict):
1672+
def __init__(self, client: EventSubClient, data: dict) -> None:
16731673
self.id: str = data["id"]
16741674
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster")
16751675
self.user: PartialUser = _transform_user(client, data, "user")
@@ -1737,7 +1737,7 @@ class AutomodMessageHoldData(EventData):
17371737
"created_at",
17381738
)
17391739

1740-
def __init__(self, client: EventSubClient, data: dict):
1740+
def __init__(self, client: EventSubClient, data: dict) -> None:
17411741
self.message_id: str = data["message_id"]
17421742
self.message_content: str = data["message"]
17431743
self.message_fragments: Dict[str, Dict[str, Any]] = data["fragments"]
@@ -1814,7 +1814,7 @@ class AutomodMessageUpdateData(EventData):
18141814
"status",
18151815
)
18161816

1817-
def __init__(self, client: EventSubClient, data: dict):
1817+
def __init__(self, client: EventSubClient, data: dict) -> None:
18181818
self.message_id: str = data["message_id"]
18191819
self.message_content: str = data["message"]
18201820
self.message_fragments: Dict[str, Dict[str, Any]] = data["fragments"]
@@ -1871,7 +1871,7 @@ class AutomodSettingsUpdateData(EventData):
18711871
"sexual_terms",
18721872
)
18731873

1874-
def __init__(self, client: EventSubClient, data: dict):
1874+
def __init__(self, client: EventSubClient, data: dict) -> None:
18751875
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
18761876
self.moderator: PartialUser = _transform_user(client, data, "moderator_user")
18771877
self.overall: Optional[int] = data["overall"]
@@ -1909,13 +1909,38 @@ class AutomodTermsUpdateData(EventData):
19091909

19101910
__slots__ = ("broadcaster", "moderator", "action", "from_automod", "terms")
19111911

1912-
def __init__(self, client: EventSubClient, data: dict):
1912+
def __init__(self, client: EventSubClient, data: dict) -> None:
19131913
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
19141914
self.moderator: PartialUser = _transform_user(client, data, "moderator_user")
19151915
self.action: str = data["action"]
19161916
self.from_automod: bool = data["from_automod"]
19171917
self.terms: List[str] = data["terms"]
19181918

1919+
class SuspiciousUserUpdateData(EventData):
1920+
"""
1921+
Represents a suspicious user update event.
1922+
1923+
Attributes
1924+
-----------
1925+
broadcaster: :class:`PartialUser`
1926+
The channel where the treatment for a suspicious user was updated.
1927+
moderator: :class:`PartialUser`
1928+
The moderator who updated the terms.
1929+
user: :class:`PartialUser`
1930+
The the user that sent the message.
1931+
trust_status: :class:`Literal["active_monitoring", "restricted", "none"]`
1932+
The status set for the suspicious user. Can be the following: “none”, “active_monitoring”, or “restricted”.
1933+
"""
1934+
1935+
__slots__ = ("broadcaster", "moderator", "user", "trust_status")
1936+
1937+
def __init__(self, client: EventSubClient, data: dict) -> None:
1938+
self.broadcaster: PartialUser = _transform_user(client, data, "broadcaster_user")
1939+
self.moderator: PartialUser = _transform_user(client, data, "moderator_user")
1940+
self.user: PartialUser = _transform_user(client, data, "user")
1941+
self.trust_status: Literal["active_monitoring", "restricted", "none"] = data["low_trust_status"]
1942+
1943+
19191944

19201945
_DataType = Union[
19211946
ChannelBanData,
@@ -1956,6 +1981,7 @@ def __init__(self, client: EventSubClient, data: dict):
19561981
AutomodMessageUpdateData,
19571982
AutomodSettingsUpdateData,
19581983
AutomodTermsUpdateData,
1984+
SuspiciousUserUpdateData,
19591985
]
19601986

19611987

@@ -2038,6 +2064,8 @@ class _SubscriptionTypes(metaclass=_SubTypesMeta):
20382064
user_authorization_revoke = "user.authorization.revoke", 1, UserAuthorizationRevokedData
20392065

20402066
user_update = "user.update", 1, UserUpdateData
2067+
2068+
suspicious_user_update = "channel.suspicious_user.update", 1, SuspiciousUserUpdateData
20412069

20422070

20432071
SubscriptionTypes = _SubscriptionTypes()

twitchio/ext/eventsub/server.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ def subscribe_automod_terms_update(
321321
def subscribe_channel_charity_donate(self, broadcaster: Union[PartialUser, str, int]):
322322
return self._subscribe_with_broadcaster(models.SubscriptionTypes.channel_charity_donate, broadcaster)
323323

324+
def subscribe_suspicious_user_update(self, broadcaster: Union[PartialUser, str, int], moderator: Union[PartialUser, str, int]):
325+
return self._subscribe_with_broadcaster_moderator(models.SubscriptionTypes.suspicious_user_update, broadcaster, moderator)
326+
324327
async def subscribe_user_authorization_granted(self):
325328
return await self._http.create_webhook_subscription(
326329
models.SubscriptionTypes.user_authorization_grant, {"client_id": self.client._http.client_id}

0 commit comments

Comments
 (0)