From 43be52a2b38cc7b88a3074fdfdc49661e35979ba Mon Sep 17 00:00:00 2001 From: zrzluck99 Date: Tue, 27 May 2025 22:10:37 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=20chat?= =?UTF-8?q?=20=E6=8F=92=E4=BB=B6=E4=B8=AD=E4=B8=8D=E8=83=BD=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E8=AF=86=E5=88=ABat=E7=9A=84=E9=94=99=E8=AF=AF,=20?= =?UTF-8?q?=E5=B9=B6=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=AF=B9linuxqq=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/utils/utils.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index 19703ec40..fd59e4c24 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -63,7 +63,11 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> tuple[bool, float]: ) # 判断是否被@ - if re.search(f"@[\s\S]*?(id:{global_config.bot.qq_account})", message.processed_plain_text): + if re.search( + rf"@(.+?)(id:{global_config.bot.qq_account})", message.processed_plain_text + ) or re.search( + rf"@<(.+?)(?=:{global_config.bot.qq_account}>)\:{global_config.bot.qq_account}>", message.processed_plain_text + ): is_at = True is_mentioned = True @@ -74,13 +78,17 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> tuple[bool, float]: if not is_mentioned: # 判断是否被回复 if re.match( - f"\[回复 [\s\S]*?\({str(global_config.bot.qq_account)}\):[\s\S]*?],说:", message.processed_plain_text + rf"\[回复 (.+?)\({str(global_config.bot.qq_account)}\):(.+?)\],说:", message.processed_plain_text + ) or re.match( + rf"\[回复<(.+?)(?=:{str(global_config.bot.qq_account)}>)\:{str(global_config.bot.qq_account)}>:(.+?)\],说:", message.processed_plain_text ): is_mentioned = True else: # 判断内容中是否被提及 - message_content = re.sub(r"@[\s\S]*?((\d+))", "", message.processed_plain_text) - message_content = re.sub(r"\[回复 [\s\S]*?\(((\d+)|未知id)\):[\s\S]*?],说:", "", message_content) + message_content = re.sub(r"@(.+?)((\d+))", "", message.processed_plain_text) + message_content = re.sub(r"@<(.+?)(?=:(\d+))\:(\d+)>", "", message_content) + message_content = re.sub(r"\[回复 (.+?)\(((\d+)|未知id)\):(.+?)\],说:", "", message_content) + message_content = re.sub(r"\[回复<(.+?)(?=:(\d+))\:(\d+)>:(.+?)\],说:", "", message_content) for keyword in keywords: if keyword in message_content: is_mentioned = True From e25755118e9ba46f8974df0313fe32a6b1eab106 Mon Sep 17 00:00:00 2001 From: zrzluck99 <50124826+zrzluck99@users.noreply.github.com> Date: Tue, 27 May 2025 22:22:15 +0800 Subject: [PATCH 2/3] Update src/chat/utils/utils.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/chat/utils/utils.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index fd59e4c24..0501e4362 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -64,9 +64,7 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> tuple[bool, float]: # 判断是否被@ if re.search( - rf"@(.+?)(id:{global_config.bot.qq_account})", message.processed_plain_text - ) or re.search( - rf"@<(.+?)(?=:{global_config.bot.qq_account}>)\:{global_config.bot.qq_account}>", message.processed_plain_text + rf"@<(.+?):{global_config.bot.qq_account}>" ): is_at = True is_mentioned = True From aa67b595408952583351e26f5d1d7eec96652c66 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 27 May 2025 14:53:17 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=A4=96=20=E8=87=AA=E5=8A=A8=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/utils/utils.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index 0501e4362..2c183934a 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -63,9 +63,7 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> tuple[bool, float]: ) # 判断是否被@ - if re.search( - rf"@<(.+?):{global_config.bot.qq_account}>" - ): + if re.search(rf"@<(.+?):{global_config.bot.qq_account}>"): is_at = True is_mentioned = True @@ -78,7 +76,8 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> tuple[bool, float]: if re.match( rf"\[回复 (.+?)\({str(global_config.bot.qq_account)}\):(.+?)\],说:", message.processed_plain_text ) or re.match( - rf"\[回复<(.+?)(?=:{str(global_config.bot.qq_account)}>)\:{str(global_config.bot.qq_account)}>:(.+?)\],说:", message.processed_plain_text + rf"\[回复<(.+?)(?=:{str(global_config.bot.qq_account)}>)\:{str(global_config.bot.qq_account)}>:(.+?)\],说:", + message.processed_plain_text, ): is_mentioned = True else: