@@ -48,7 +48,7 @@ async def to_onebot_event(self, event: Event) -> List[OneBotEvent]:
4848 event_dict ["time" ] = event .date
4949 event_dict ["detail_type" ] = event .get_event_name ().split ("." )[1 ]
5050 event_dict ["sub_type" ] = ""
51- event_dict ["message_id" ] = str ( event .message_id )
51+ event_dict ["message_id" ] = f" { event .chat . id } / { event . message_id } "
5252 event_dict ["message" ] = await self .to_onebot_message (event .message )
5353 event_dict ["alt_message" ] = str (event .message )
5454 if isinstance (event , PrivateMessageEvent ):
@@ -65,7 +65,7 @@ async def to_onebot_event(self, event: Event) -> List[OneBotEvent]:
6565 event_dict ["message" ].insert (
6666 0 ,
6767 OneBotMessageSegment .reply (
68- str ( event .reply_to_message .message_id ) ,
68+ f" { event .reply_to_message .chat . id } / { event . reply_to_message . message_id } " ,
6969 user_id = event .reply_to_message .get_user_id ()
7070 if not isinstance (event .reply_to_message , ChannelPostEvent )
7171 else "" ,
@@ -204,7 +204,9 @@ async def send_message(
204204
205205 reply_to_message_id = None
206206 if message .count ("reply" ):
207- reply_to_message_id = int (message ["reply" , 0 ].data ["message_id" ])
207+ reply_to_message_id = int (
208+ message ["reply" , 0 ].data ["message_id" ].split ("/" )[1 ]
209+ )
208210
209211 result = await self .send (
210212 int (chat_id ),
@@ -217,6 +219,10 @@ async def send_message(
217219 result = result [0 ]
218220 return {"message_id" : str (result .message_id ), "time" : result .date }
219221
222+ @supported_action
223+ async def delete_message (self , * , message_id : str , ** kwargs : Any ) -> None :
224+ await self .bot .delete_message (* map (int , message_id .split ("/" )))
225+
220226 @supported_action
221227 async def get_self_info (
222228 self , ** kwargs : Any
@@ -270,3 +276,48 @@ async def set_group_name(
270276 @supported_action
271277 async def leave_group (self , * , group_id : str , ** kwargs : Any ) -> None :
272278 await self .bot .leave_chat (int (group_id ))
279+
280+ @supported_action
281+ async def get_guild_info (
282+ self , * , guild_id : str , ** kwargs : Any
283+ ) -> Dict [Union [Literal ["guild_id" , "guild_name" ], str ], str ]:
284+ result = await self .bot .get_chat (int (guild_id ))
285+ return {"guild_id" : str (result .id ), "guild_id" : result .title } # type: ignore
286+
287+ @supported_action
288+ async def set_guild_name (
289+ self , * , guild_id : str , guild_name : str , ** kwargs : Any
290+ ) -> None :
291+ await self .bot .set_chat_title (int (guild_id ), guild_name )
292+
293+ @supported_action
294+ async def get_guild_member_info (
295+ self , * , guild_id : str , user_id : str , ** kwargs : Any
296+ ) -> Dict [Union [Literal ["user_id" , "user_name" , "user_displayname" ], str ], str ]:
297+ result = await self .bot .get_chat_member (int (guild_id ), int (user_id ))
298+ return {
299+ "user_id" : str (result .user .id ),
300+ "user_name" : result .user .username if result .user .username else "" ,
301+ "user_displayname" : result .user .first_name ,
302+ }
303+
304+ @supported_action
305+ async def leave_guild (self , * , guild_id : str , ** kwargs : Any ) -> None :
306+ await self .bot .leave_chat (int (guild_id ))
307+
308+ @supported_action
309+ async def set_channel_name (
310+ self , * , guild_id : str , channel_id : str , channel_name : str , ** kwargs : Any
311+ ) -> None :
312+ await self .bot .edit_forum_topic (int (guild_id ), int (channel_id ), channel_name )
313+
314+ @supported_action
315+ async def get_channel_member_info (
316+ self , * , guild_id : str , channel_id : str , user_id : str , ** kwargs : Any
317+ ) -> Dict [Union [Literal ["user_id" , "user_name" , "user_displayname" ], str ], str ]:
318+ result = await self .bot .get_chat_member (int (guild_id ), int (user_id ))
319+ return {
320+ "user_id" : str (result .user .id ),
321+ "user_name" : result .user .username if result .user .username else "" ,
322+ "user_displayname" : result .user .first_name ,
323+ }
0 commit comments