From ac67cdef7ddbd214fd1459a2fceeb966815dd7d3 Mon Sep 17 00:00:00 2001 From: grassblock Date: Mon, 4 Aug 2025 14:35:40 +0800 Subject: [PATCH] feat: more logs into the terminal --- core/actions.py | 10 ++++++++-- core/link.py | 9 ++++++++- core/middleware/rikki.py | 7 +++++-- core/unpin.py | 8 ++++++-- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/core/actions.py b/core/actions.py index 830cb91..b188fb0 100644 --- a/core/actions.py +++ b/core/actions.py @@ -2,14 +2,18 @@ from aiogram.types import Message from config import config +import logging async def handle_actions(message: Message) -> None: if not config.is_feature_enabled('actions', message.chat.id): + logging.debug(f"收到了命中 / 开头的的消息,但是 actions 功能未启用,跳过处理") return rawtext = message.text - + logging.debug(f"收到了命中 / 开头的消息: {rawtext}") # 防止识别成命令而被误触发 - if rawtext.replace('/','',1).isascii() or '@' in rawtext: + import re + if re.match("^[a-zA-Z]+$", rawtext.replace('/','',1)) or '@' in rawtext: + logging.debug(f"{rawtext} 看起来是一条命令,跳过处理") return from_user = message.from_user.mention_html(message.sender_chat.title) if message.sender_chat else message.from_user.mention_html() @@ -25,5 +29,7 @@ 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() 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 not config.is_feature_enabled('actions', message.chat.id): + logging.debug(f"收到了命中 \\ 开头的的消息,但是 actions 功能未启用,跳过处理") return + 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) \ No newline at end of file diff --git a/core/link.py b/core/link.py index a8e5c8c..b6234a6 100644 --- a/core/link.py +++ b/core/link.py @@ -1,3 +1,5 @@ +import logging + import aiohttp import re import html @@ -181,6 +183,7 @@ def transform_into_fixed_url(url): return url async def process_url(url): + logging.debug('发现链接,正在尝试清理') # 对于适配的网站,直接保留白名单参数并返回 if urlparse(url).hostname in whitelist_param_links: final_url = reserve_whitelisted_params(url) @@ -232,4 +235,8 @@ async def handle_links(message: Message): await message.reply(f"{"\n".join(final_urls)}\n消息里有包含跟踪参数的链接,已经帮你转换了哦~\n\n注意:" f"这个功能是试验性的,可能会出现链接无法访问等问题,如果出现链接没有清理干净的情况," f"可以将返回的结果再次发送给bot,或者尝试手动清理。\n如果你找到了这个工具的问题,欢迎" - f"把它通过 `/report_broken_links 链接 需要去除的参数等等` 报告给开发者!") \ No newline at end of file + f"把它通过 `/report_broken_links 链接 需要去除的参数等等` 报告给开发者!") + else: + no_link_message = await message.reply("我没有发现可以处理的链接。\n此消息将会在 5 秒后被删除。", disable_web_page_preview=True) + await asyncio.sleep(5) + await no_link_message.delete() \ No newline at end of file diff --git a/core/middleware/rikki.py b/core/middleware/rikki.py index 6abb963..56fff50 100644 --- a/core/middleware/rikki.py +++ b/core/middleware/rikki.py @@ -1,8 +1,10 @@ +import logging import random -from aiogram import BaseMiddleware +from aiogram import BaseMiddleware, Router from aiogram.types import Message from typing import Dict, Optional, Callable, Awaitable, Any +router = Router() class RikkiMiddleware(BaseMiddleware): def __init__(self, target_user_id: str = "5545347637"): @@ -71,10 +73,11 @@ class RikkiMiddleware(BaseMiddleware): if event.chat.type in ['group', 'supergroup'] and user_id == self.target_user_id: # 更新几率 self.update_probability(user_id, event.text) + logging.debug("当前欠打的几率是{}".format(self.get_user_probability(user_id))) if event.text and event.text.startswith('/打') and event.reply_to_message and str(event.reply_to_message.from_user.id) == self.target_user_id: self.update_probability(user_id, event.text, hit_by_others=True) - + logging.debug("当前欠打的几率是{}".format(self.get_user_probability(user_id))) if self.get_user_probability(user_id) >= 80.0: await event.reply("泥欠打了") diff --git a/core/unpin.py b/core/unpin.py index 7a5fde7..54c7b25 100644 --- a/core/unpin.py +++ b/core/unpin.py @@ -1,3 +1,5 @@ +import logging + from aiogram.types import Message from config import config @@ -6,6 +8,7 @@ from config import config async def handle_unpin_channel_message(message: Message): """Handle unpinning messages from linked channels without a specific hashtag""" if not config.is_feature_enabled('unpin', message.chat.id): + logging.debug('发现了频道试图置顶消息,但未启用 unpin 功能,跳过处理') return try: regex_pattern = config.get_feature_config('unpin', message.chat.id)['regex'] @@ -13,10 +16,11 @@ async def handle_unpin_channel_message(message: Message): if regex_pattern: import re if re.search(regex_pattern, message.text or message.caption or ""): + logging.debug(f"发现了频道试图置顶消息,但消息匹配了正则表达式{regex_pattern},跳过取消置顶") # Message matches regex, don't unpin return # Either no regex pattern or message doesn't match, proceed to unpin - print("trying to unpin the message") + logging.debug('正在尝试取消频道消息的置顶') await message.unpin() except Exception as e: - print('Error unpinning message:', e) \ No newline at end of file + logging.error('Error unpinning message:', e) \ No newline at end of file