@@ -1916,6 +1916,130 @@ def __init__(self, client: EventSubClient, data: dict) -> None:
19161916 self .from_automod : bool = data ["from_automod" ]
19171917 self .terms : List [str ] = data ["terms" ]
19181918
1919+
1920+ class ChannelModerateData (EventData ):
1921+ """
1922+ Represents a channel moderation event.
1923+
1924+ Attributes
1925+ -----------
1926+ broadcaster: :class:`PartialUser`
1927+ The channel where the moderation event occurred.
1928+ moderator: :class:`PartialUser`
1929+ The moderator who performed the action.
1930+ action: :class:`str`
1931+ The action performed.
1932+ """
1933+
1934+ __slots__ = (
1935+ "broadcaster" ,
1936+ "moderator" ,
1937+ "action" ,
1938+ "followers" ,
1939+ "slow" ,
1940+ "vip" ,
1941+ "unvip" ,
1942+ "mod" ,
1943+ "unmod" ,
1944+ "ban" ,
1945+ "unban" ,
1946+ "timeout" ,
1947+ "untimeout" ,
1948+ "raid" ,
1949+ "unraid" ,
1950+ "delete" ,
1951+ "automod_terms" ,
1952+ "unban_request" ,
1953+ )
1954+
1955+ class Followers :
1956+ def __init__ (self , data : dict ) -> None :
1957+ self .follow_duration_minutes : int = data ["follow_duration_minutes" ]
1958+
1959+ class Slow :
1960+ def __init__ (self , data : dict ) -> None :
1961+ self .wait_time_seconds : int = data ["wait_time_seconds" ]
1962+
1963+ class VIPStatus :
1964+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1965+ self .user : PartialUser = _transform_user (client , data , "user" )
1966+
1967+ class ModeratorStatus :
1968+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1969+ self .user : PartialUser = _transform_user (client , data , "user" )
1970+
1971+ class Ban :
1972+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1973+ self .user : PartialUser = _transform_user (client , data , "user" )
1974+ self .reason : Optional [str ] = data .get ("reason" )
1975+
1976+ class UnBan :
1977+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1978+ self .user : PartialUser = _transform_user (client , data , "user" )
1979+
1980+ class Timeout :
1981+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1982+ self .user : PartialUser = _transform_user (client , data , "user" )
1983+ self .reason : Optional [str ] = data .get ("reason" )
1984+ self .expires_at : datetime .datetime = _parse_datetime (data ["expires_at" ])
1985+
1986+ class UnTimeout :
1987+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1988+ self .user : PartialUser = _transform_user (client , data , "user" )
1989+
1990+ class Raid :
1991+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1992+ self .user : PartialUser = _transform_user (client , data , "user" )
1993+ self .viewer_count : int = data ["viewer_count" ]
1994+
1995+ class UnRaid :
1996+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
1997+ self .user : PartialUser = _transform_user (client , data , "user" )
1998+
1999+ class Delete :
2000+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
2001+ self .user : PartialUser = _transform_user (client , data , "user" )
2002+ self .message_id : str = data ["message_id" ]
2003+ self .message_body : str = data ["message_body" ]
2004+
2005+ class AutoModTerms :
2006+ def __init__ (self , data : dict ) -> None :
2007+ self .action : str = data ["action" ]
2008+ self .list : str = data ["list" ]
2009+ self .terms : List [str ] = data ["terms" ]
2010+ self .from_automod : bool = data ["from_automod" ]
2011+
2012+ class UnBanRequest :
2013+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
2014+ self .user : PartialUser = _transform_user (client , data , "user" )
2015+ self .is_approved : bool = data ["is_approved" ]
2016+ self .moderator_message : str = data ["moderator_message" ]
2017+
2018+ def __init__ (self , client : EventSubClient , data : dict ) -> None :
2019+ self .broadcaster = _transform_user (client , data , "broadcaster_user" )
2020+ self .moderator = _transform_user (client , data , "moderator_user" )
2021+ self .action : str = data ["action" ]
2022+ self .followers = self .Followers (data ["followers" ]) if data .get ("followers" ) is not None else None
2023+ self .slow = self .Slow (data ["slow" ]) if data .get ("slow" ) is not None else None
2024+ self .vip = self .VIPStatus (client , data ["vip" ]) if data .get ("vip" ) is not None else None
2025+ self .unvip = self .VIPStatus (client , data ["unvip" ]) if data .get ("unvip" ) is not None else None
2026+ self .mod = self .ModeratorStatus (client , data ["mod" ]) if data .get ("mod" ) is not None else None
2027+ self .unmod = self .ModeratorStatus (client , data ["unmod" ]) if data .get ("unmod" ) is not None else None
2028+ self .ban = self .Ban (client , data ["ban" ]) if data .get ("ban" ) is not None else None
2029+ self .unban = self .UnBan (client , data ["unban" ]) if data .get ("unban" ) is not None else None
2030+ self .timeout = self .Timeout (client , data ["timeout" ]) if data .get ("timeout" ) is not None else None
2031+ self .untimeout = self .UnTimeout (client , data ["untimeout" ]) if data .get ("untimeout" ) is not None else None
2032+ self .raid = self .Raid (client , data ["raid" ]) if data .get ("raid" ) is not None else None
2033+ self .unraid = self .UnRaid (client , data ["unraid" ]) if data .get ("unraid" ) is not None else None
2034+ self .delete = self .Delete (client , data ["delete" ]) if data .get ("delete" ) is not None else None
2035+ self .automod_terms = (
2036+ self .AutoModTerms (client , data ["automod_terms" ]) if data .get ("automod_terms" ) is not None else None
2037+ )
2038+ self .unban_request = (
2039+ self .UnBanRequest (client , data ["unban_request" ]) if data .get ("unban_request" ) is not None else None
2040+ )
2041+
2042+
19192043class SuspiciousUserUpdateData (EventData ):
19202044 """
19212045 Represents a suspicious user update event.
@@ -1941,7 +2065,6 @@ def __init__(self, client: EventSubClient, data: dict) -> None:
19412065 self .trust_status : Literal ["active_monitoring" , "restricted" , "none" ] = data ["low_trust_status" ]
19422066
19432067
1944-
19452068_DataType = Union [
19462069 ChannelBanData ,
19472070 ChannelUnbanData ,
@@ -1982,6 +2105,7 @@ def __init__(self, client: EventSubClient, data: dict) -> None:
19822105 AutomodSettingsUpdateData ,
19832106 AutomodTermsUpdateData ,
19842107 SuspiciousUserUpdateData ,
2108+ ChannelModerateData ,
19852109]
19862110
19872111
@@ -2041,6 +2165,8 @@ class _SubscriptionTypes(metaclass=_SubTypesMeta):
20412165
20422166 channel_charity_donate = "channel.charity_campaign.donate" , 1 , ChannelCharityDonationData
20432167
2168+ channel_moderate = "channel.moderate" , 1 , ChannelModerateData
2169+
20442170 hypetrain_begin = "channel.hype_train.begin" , 1 , HypeTrainBeginProgressData
20452171 hypetrain_progress = "channel.hype_train.progress" , 1 , HypeTrainBeginProgressData
20462172 hypetrain_end = "channel.hype_train.end" , 1 , HypeTrainEndData
@@ -2064,7 +2190,7 @@ class _SubscriptionTypes(metaclass=_SubTypesMeta):
20642190 user_authorization_revoke = "user.authorization.revoke" , 1 , UserAuthorizationRevokedData
20652191
20662192 user_update = "user.update" , 1 , UserUpdateData
2067-
2193+
20682194 suspicious_user_update = "channel.suspicious_user.update" , 1 , SuspiciousUserUpdateData
20692195
20702196
0 commit comments