@@ -927,7 +927,7 @@ async def get_goals(self, broadcaster_id: str, token: str):
927927 return await self .request (Route ("GET" , "goals" , query = [("broadcaster_id" , broadcaster_id )], token = token ))
928928
929929 async def get_chat_settings (
930- self , broadcaster_id : str , moderator_id : Optional [str ] = None , token : Optional [str ] = None
930+ self , broadcaster_id : str , token : Optional [str ] = None , moderator_id : Optional [str ] = None
931931 ):
932932 q = [("broadcaster_id" , broadcaster_id )]
933933 if moderator_id and token :
@@ -936,9 +936,9 @@ async def get_chat_settings(
936936
937937 async def patch_chat_settings (
938938 self ,
939+ token : str ,
939940 broadcaster_id : str ,
940941 moderator_id : str ,
941- token : str ,
942942 emote_mode : Optional [bool ] = None ,
943943 follower_mode : Optional [bool ] = None ,
944944 follower_mode_duration : Optional [int ] = None ,
@@ -969,3 +969,69 @@ async def patch_chat_settings(
969969 }
970970 data = {k : v for k , v in data .items () if v is not None }
971971 return await self .request (Route ("PATCH" , "chat/settings" , query = q , body = data , token = token ))
972+
973+ async def post_chat_announcement (
974+ self , token : str , broadcaster_id : str , moderator_id : str , message : str , color : Optional [str ] = "primary"
975+ ):
976+ q = [("broadcaster_id" , broadcaster_id ), ("moderator_id" , moderator_id )]
977+ body = {"message" : message , "color" : color }
978+ return await self .request (Route ("POST" , "chat/announcements" , query = q , body = body , token = token ))
979+
980+ async def delete_chat_messages (
981+ self , token : str , broadcaster_id : str , moderator_id : str , message_id : Optional [str ] = None
982+ ):
983+ q = [("broadcaster_id" , broadcaster_id ), ("moderator_id" , moderator_id )]
984+ if message_id :
985+ q .append (("message_id" , message_id ))
986+ return await self .request (Route ("DELETE" , "moderation/chat" , query = q , token = token ))
987+
988+ async def put_user_chat_color (self , token : str , user_id : str , color : str ):
989+ q = [("user_id" , user_id ), ("color" , color )]
990+ return await self .request (Route ("PUT" , "chat/color" , query = q , token = token ))
991+
992+ async def get_user_chat_color (self , user_ids : List [int ], token : Optional [str ] = None ):
993+ if len (user_ids ) > 100 :
994+ raise ValueError ("You can only get up to 100 user chat colors at once" )
995+ q = [("user_id" , str (user_id )) for user_id in user_ids ]
996+ return await self .request (Route ("GET" , "chat/color" , query = q , token = token ))
997+
998+ async def post_channel_moderator (self , token : str , broadcaster_id : str , user_id : str ):
999+ q = [("broadcaster_id" , broadcaster_id ), ("user_id" , user_id )]
1000+ return await self .request (Route ("POST" , "moderation/moderators" , query = q , token = token ))
1001+
1002+ async def delete_channel_moderator (self , token : str , broadcaster_id : str , user_id : str ):
1003+ q = [("broadcaster_id" , broadcaster_id ), ("user_id" , user_id )]
1004+ return await self .request (Route ("DELETE" , "moderation/moderators" , query = q , token = token ))
1005+
1006+ async def get_channel_vips (
1007+ self , token : str , broadcaster_id : str , first : int = 20 , user_ids : Optional [List [str ]] = None
1008+ ):
1009+ q = [("broadcaster_id" , broadcaster_id ), ("first" , first )]
1010+ if first > 100 :
1011+ raise ValueError ("You can only get up to 100 VIPs at once" )
1012+ if user_ids and len (user_ids ) <= 100 :
1013+ q .extend (("user_id" , user_id ) for user_id in user_ids )
1014+ else :
1015+ raise ValueError ("You can can only specify up to 100 VIPs" )
1016+ return await self .request (Route ("GET" , "channels/vips" , query = q , token = token ))
1017+
1018+ async def post_channel_vip (self , token : str , broadcaster_id : str , user_id : str ):
1019+ q = [("broadcaster_id" , broadcaster_id ), ("user_id" , user_id )]
1020+ return await self .request (Route ("POST" , "channels/vips" , query = q , token = token ))
1021+
1022+ async def delete_channel_vip (self , token : str , broadcaster_id : str , user_id : str ):
1023+ q = [("broadcaster_id" , broadcaster_id ), ("user_id" , user_id )]
1024+ return await self .request (Route ("DELETE" , "channels/vips" , query = q , token = token ))
1025+
1026+ async def post_whisper (self , token : str , from_user_id : str , to_user_id : str , message : str ):
1027+ q = [("from_user_id" , from_user_id ), ("to_user_id" , to_user_id )]
1028+ body = {"message" : message }
1029+ return await self .request (Route ("POST" , "whispers" , query = q , body = body , token = token ))
1030+
1031+ async def post_raid (self , token : str , from_broadcaster_id : str , to_broadcaster_id : str ):
1032+ q = [("from_broadcaster_id" , from_broadcaster_id ), ("to_broadcaster_id" , to_broadcaster_id )]
1033+ return await self .request (Route ("POST" , "raids" , query = q , token = token ))
1034+
1035+ async def delete_raid (self , token : str , broadcaster_id : str ):
1036+ q = [("broadcaster_id" , broadcaster_id )]
1037+ return await self .request (Route ("DELETE" , "raids" , query = q , token = token ))
0 commit comments