fix: actions command stopped working
This commit is contained in:
parent
bb5f4d3154
commit
4340c07660
2 changed files with 20 additions and 14 deletions
|
@ -38,6 +38,9 @@ class TelegramAdapter:
|
||||||
"""Register handlers with core module functions"""
|
"""Register handlers with core module functions"""
|
||||||
# Create router
|
# Create router
|
||||||
router = Router()
|
router = Router()
|
||||||
|
actions_router = Router()
|
||||||
|
repeat_router = Router()
|
||||||
|
dummy_router = Router()
|
||||||
|
|
||||||
# Register handlers on router
|
# Register handlers on router
|
||||||
router.message(CommandStart())(handle_start_command)
|
router.message(CommandStart())(handle_start_command)
|
||||||
|
@ -51,27 +54,31 @@ class TelegramAdapter:
|
||||||
# fedi 模块
|
# fedi 模块
|
||||||
router.message(Command('fauth'))(handle_auth)
|
router.message(Command('fauth'))(handle_auth)
|
||||||
router.message(Command('post'))(handle_post_to_fedi)
|
router.message(Command('post'))(handle_post_to_fedi)
|
||||||
|
# link 模块
|
||||||
|
router.message(Command('report_broken_links'))(report_broken_links)
|
||||||
|
router.message(F.text.contains('http') & ~F.text.contains('/report_broken_links'))(handle_links)
|
||||||
# unpin 模块
|
# unpin 模块
|
||||||
# 不知道为什么检测不到频道的消息被置顶这个事件,暂时认为所有的频道消息都是被置顶的
|
# 不知道为什么检测不到频道的消息被置顶这个事件,暂时认为所有的频道消息都是被置顶的
|
||||||
router.message(F.chat.type.in_({'group', 'supergroup'}) & F.sender_chat & (
|
router.message(F.chat.type.in_({'group', 'supergroup'}) & F.sender_chat & (
|
||||||
F.sender_chat.type == 'channel') & F.is_automatic_forward)(
|
F.sender_chat.type == 'channel') & F.is_automatic_forward)(
|
||||||
handle_unpin_channel_message)
|
handle_unpin_channel_message)
|
||||||
# link 模块
|
|
||||||
router.message(Command('report_broken_links'))(report_broken_links)
|
|
||||||
router.message(F.text.contains('http') & ~F.text.contains('/report_broken_links'))(handle_links)
|
|
||||||
# repeater 模块
|
# repeater 模块
|
||||||
router.message(F.chat.type.in_({'group', 'supergroup'}))(MessageRepeater().handle_message)
|
repeat_router.message(F.chat.type.in_({'group', 'supergroup'}))(MessageRepeater().handle_message)
|
||||||
# actions 模块
|
|
||||||
router.message(F.text.startswith('/'))(handle_actions)
|
|
||||||
router.message(F.text.startswith('\\'))(handle_reverse_actions)
|
|
||||||
router.message(F.text == '我是笨蛋')(handle_baka)
|
router.message(F.text == '我是笨蛋')(handle_baka)
|
||||||
# 捕获所有其他消息
|
# 捕获所有其他消息
|
||||||
router.message(F.chat.type.in_({'group', 'supergroup'}))(dummy_handler)
|
dummy_router.message(F.chat.type.in_({'group', 'supergroup'}))(dummy_handler)
|
||||||
|
|
||||||
|
# actions 模块
|
||||||
|
actions_router.message(F.chat.type.in_({'group', 'supergroup'}) & F.text.startswith('/'))(handle_actions)
|
||||||
|
actions_router.message(F.chat.type.in_({'group', 'supergroup'}) & F.text.startswith('\\'))(handle_reverse_actions)
|
||||||
|
|
||||||
# Include router in dispatcher
|
# Include router in dispatcher
|
||||||
|
# 通用的路由
|
||||||
self.dp.include_router(router)
|
self.dp.include_router(router)
|
||||||
|
self.dp.include_router(actions_router)
|
||||||
# 处理联邦宇宙认证相关
|
# 处理联邦宇宙认证相关
|
||||||
self.dp.include_router(fedi_router)
|
self.dp.include_router(fedi_router)
|
||||||
|
self.dp.include_router(dummy_router)
|
||||||
|
|
||||||
def _setup_middleware(self):
|
def _setup_middleware(self):
|
||||||
"""注册中间件"""
|
"""注册中间件"""
|
||||||
|
|
|
@ -6,16 +6,15 @@ from config import config
|
||||||
async def handle_actions(message: Message) -> None:
|
async def handle_actions(message: Message) -> None:
|
||||||
if not config.is_feature_enabled('actions', message.chat.id):
|
if not config.is_feature_enabled('actions', message.chat.id):
|
||||||
return
|
return
|
||||||
if not message.chat.type in ['group', 'supergroup']:
|
|
||||||
return
|
|
||||||
rawtext = message.text
|
rawtext = message.text
|
||||||
from_user = message.from_user.mention_html(message.sender_chat.title) if message.sender_chat else message.from_user.mention_html()
|
|
||||||
replied_user = message.reply_to_message.from_user.mention_html(message.reply_to_message.sender_chat.title) if message.reply_to_message and message.reply_to_message.sender_chat else message.reply_to_message.from_user.mention_html()
|
|
||||||
# 防止识别成命令而被误触发
|
# 防止识别成命令而被误触发
|
||||||
if rawtext.replace('/','',1).isascii() or '@' in rawtext:
|
if rawtext.replace('/','',1).isascii() or '@' in rawtext:
|
||||||
print(rawtext.replace('/','',1).isascii())
|
|
||||||
return
|
return
|
||||||
elif " " in message.text:
|
|
||||||
|
from_user = message.from_user.mention_html(message.sender_chat.title) if message.sender_chat else message.from_user.mention_html()
|
||||||
|
replied_user = message.reply_to_message.from_user.mention_html(message.reply_to_message.sender_chat.title) if message.reply_to_message and message.reply_to_message.sender_chat else (message.reply_to_message.from_user.mention_html() if message.reply_to_message else None)
|
||||||
|
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 else '自己' } {''.join(rawtext.split(" ")[1:])}!",disable_web_page_preview=True)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue