fix: unexpected actions and self-reply

This commit is contained in:
草师傅 2025-08-05 21:30:26 +08:00
parent 330579a837
commit 3a6426d7da

View file

@ -10,6 +10,10 @@ async def handle_actions(message: Message) -> None:
return return
rawtext = message.text rawtext = message.text
logging.debug(f"收到了命中 / 开头的消息: {rawtext}") logging.debug(f"收到了命中 / 开头的消息: {rawtext}")
logging.debug(rawtext.replace('/',''))
# 如果消息是 / 开头的,但是没有后续有意义的内容,则不处理
if len(rawtext.replace('/','')) == 0 or not rawtext.replace('/','').isalpha():
return
# 防止识别成命令而被误触发 # 防止识别成命令而被误触发
import re import re
if re.match("^[a-zA-Z]+$", rawtext.replace('/','',1)) or '@' in rawtext: if re.match("^[a-zA-Z]+$", rawtext.replace('/','',1)) or '@' in rawtext:
@ -21,9 +25,9 @@ async def handle_actions(message: Message) -> None:
if " " in rawtext: if " " in rawtext:
if rawtext.split(" ")[0].replace('/','',1).isascii(): if rawtext.split(" ")[0].replace('/','',1).isascii():
return return
await message.reply(f"{from_user} {rawtext.split(" ")[0].replace('/','')}{replied_user if message.reply_to_message else '自己' } {''.join(rawtext.split(" ")[1:])}",disable_web_page_preview=True) await message.reply(f"{from_user} {rawtext.split(" ")[0].replace('/','')}{replied_user if message.reply_to_message and replied_user != from_user else '自己' } {''.join(rawtext.split(" ")[1:])}",disable_web_page_preview=True)
else: else:
await message.reply(f"{from_user} {message.text.replace('/','')}{replied_user if message.reply_to_message else '自己'}",disable_web_page_preview=True) await message.reply(f"{from_user} {message.text.replace('/','')}{replied_user if message.reply_to_message and replied_user != from_user else '自己'}",disable_web_page_preview=True)
async def handle_reverse_actions(message: Message) -> None: async def handle_reverse_actions(message: Message) -> None:
from_user = message.from_user.mention_html(message.sender_chat.title) if message.sender_chat else message.from_user.mention_html() from_user = message.from_user.mention_html(message.sender_chat.title) if message.sender_chat else message.from_user.mention_html()
@ -32,4 +36,4 @@ async def handle_reverse_actions(message: Message) -> None:
logging.debug(f"收到了命中 \\ 开头的的消息,但是 actions 功能未启用,跳过处理") logging.debug(f"收到了命中 \\ 开头的的消息,但是 actions 功能未启用,跳过处理")
return return
logging.debug(f"收到了命中 \\ 开头的消息: {message.text}") logging.debug(f"收到了命中 \\ 开头的消息: {message.text}")
await message.reply(f"{from_user}{replied_user if message.reply_to_message else '自己'} {message.text.replace('\\','')}了!",disable_web_page_preview=True) await message.reply(f"{from_user}{replied_user if message.reply_to_message and replied_user != from_user else '自己'} {message.text.replace('\\','')}了!",disable_web_page_preview=True)