From cfdd0f8cb21f1fa6716d58fbac8b2cc7edef557c Mon Sep 17 00:00:00 2001 From: WangCham Date: Fri, 21 Mar 2025 14:04:13 +0800 Subject: [PATCH] fix: Format the code in a standardized way (#1222) --- libs/official_account_api/api.py | 39 ++++++++++++++++--------- pkg/platform/sources/officialaccount.py | 27 ++++------------- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/libs/official_account_api/api.py b/libs/official_account_api/api.py index 58c9d067..a8d318dc 100644 --- a/libs/official_account_api/api.py +++ b/libs/official_account_api/api.py @@ -27,7 +27,6 @@ xml_template = """ """ -user_msg_queue = {} class OAClient(): @@ -45,6 +44,7 @@ class OAClient(): } self.access_token_expiry_time = None self.msg_id_map = {} + self.generated_content = {} async def handle_callback_request(self): @@ -87,12 +87,10 @@ class OAClient(): from_user = root.find("FromUserName").text # 发送者 to_user = root.find("ToUserName").text # 机器人 - from pkg.platform.sources import officialaccount - timeout = 4.80 interval = 0.1 while True: - content = officialaccount.generated_content.pop(message_data["MsgId"], None) + content = self.generated_content.pop(message_data["MsgId"], None) if content: response_xml = xml_template.format( to_user=from_user, @@ -172,6 +170,9 @@ class OAClient(): for handler in self._message_handlers[msg_type]: await handler(event) + async def set_message(self,msg_id:int,content:str): + self.generated_content[msg_id] = content + class OAClientForLongerResponse(): @@ -190,6 +191,8 @@ class OAClientForLongerResponse(): } self.access_token_expiry_time = None self.loading_message = LoadingMessage + self.msg_queue = {} + self.user_msg_queue = {} async def handle_callback_request(self): try: @@ -222,17 +225,15 @@ class OAClientForLongerResponse(): from_user = root.find("FromUserName").text to_user = root.find("ToUserName").text - - from pkg.platform.sources import officialaccount as oa - - if oa.msg_queue.get(from_user) and oa.msg_queue[from_user][0]["content"]: - queue_top = oa.msg_queue[from_user].pop(0) + if self.msg_queue.get(from_user) and self.msg_queue[from_user][0]["content"]: + + queue_top = self.msg_queue[from_user].pop(0) queue_content = queue_top["content"] # 弹出用户消息 - if user_msg_queue.get(from_user) and user_msg_queue[from_user]: - user_msg_queue[from_user].pop(0) + if self.user_msg_queue.get(from_user) and self.user_msg_queue[from_user]: + self.user_msg_queue[from_user].pop(0) response_xml = xml_template.format( to_user=from_user, @@ -250,7 +251,7 @@ class OAClientForLongerResponse(): content=self.loading_message ) - if user_msg_queue.get(from_user) and user_msg_queue[from_user][0]["content"]: + if self.user_msg_queue.get(from_user) and self.user_msg_queue[from_user][0]["content"]: return response_xml else: message_data = await self.get_message(xml_msg) @@ -258,7 +259,7 @@ class OAClientForLongerResponse(): if message_data: event = OAEvent.from_payload(message_data) if event: - user_msg_queue.setdefault(from_user,[]).append( + self.user_msg_queue.setdefault(from_user,[]).append( { "content":event.message, } @@ -318,6 +319,18 @@ class OAClientForLongerResponse(): for handler in self._message_handlers[msg_type]: await handler(event) + async def set_message(self,from_user:int,message_id:int,content:str): + if from_user not in self.msg_queue: + self.msg_queue[from_user] = [] + + self.msg_queue[from_user].append( + { + "msg_id":message_id, + "content":content, + } + ) + + diff --git a/pkg/platform/sources/officialaccount.py b/pkg/platform/sources/officialaccount.py index 518794a6..0816824f 100644 --- a/pkg/platform/sources/officialaccount.py +++ b/pkg/platform/sources/officialaccount.py @@ -22,10 +22,6 @@ from ..types import entities as platform_entities from ...command.errors import ParamNotEnoughError -# 生成的ai回答 -generated_content = {} -msg_queue = {} - class OAMessageConverter(adapter.MessageConverter): @staticmethod async def yiri2target(message_chain: platform_message.MessageChain): @@ -69,7 +65,7 @@ class OAEventConverter(adapter.EventConverter): class OfficialAccountAdapter(adapter.MessagePlatformAdapter): - bot : OAClient + bot : OAClient | OAClientForLongerResponse ap : app.Application bot_account_id: str message_converter: OAMessageConverter = OAMessageConverter() @@ -114,26 +110,15 @@ class OfficialAccountAdapter(adapter.MessagePlatformAdapter): async def reply_message(self, message_source: platform_events.FriendMessage, message: platform_message.MessageChain, quote_origin: bool = False): - global generated_content content = await OAMessageConverter.yiri2target( message ) - - generated_content[message_source.message_chain.message_id] = content - - from_user = message_source.sender.id - - - if from_user not in msg_queue: - msg_queue[from_user] = [] - - msg_queue[from_user].append( - { - "msg_id":message_source.message_chain.message_id, - "content":content, - } - ) + if type(self.bot) == OAClient: + await self.bot.set_message(message_source.message_chain.message_id,content) + if type(self.bot) == OAClientForLongerResponse: + from_user = message_source.sender.id + await self.bot.set_message(from_user,message_source.message_chain.message_id,content) async def send_message(