feat: more logs into the terminal

This commit is contained in:
草师傅 2025-08-04 14:35:40 +08:00
parent f591d546a5
commit ac67cdef7d
4 changed files with 27 additions and 7 deletions

View file

@ -2,14 +2,18 @@ from aiogram.types import Message
from config import config from config import config
import logging
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):
logging.debug(f"收到了命中 / 开头的的消息,但是 actions 功能未启用,跳过处理")
return return
rawtext = message.text 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 return
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()
@ -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() 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() 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): if not config.is_feature_enabled('actions', message.chat.id):
logging.debug(f"收到了命中 \\ 开头的的消息,但是 actions 功能未启用,跳过处理")
return 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) await message.reply(f"{from_user}{replied_user if message.reply_to_message else '自己'} {message.text.replace('\\','')}了!",disable_web_page_preview=True)

View file

@ -1,3 +1,5 @@
import logging
import aiohttp import aiohttp
import re import re
import html import html
@ -181,6 +183,7 @@ def transform_into_fixed_url(url):
return url return url
async def process_url(url): async def process_url(url):
logging.debug('发现链接,正在尝试清理')
# 对于适配的网站,直接保留白名单参数并返回 # 对于适配的网站,直接保留白名单参数并返回
if urlparse(url).hostname in whitelist_param_links: if urlparse(url).hostname in whitelist_param_links:
final_url = reserve_whitelisted_params(url) 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注意:" await message.reply(f"{"\n".join(final_urls)}\n消息里有包含跟踪参数的链接,已经帮你转换了哦~\n\n注意:"
f"这个功能是试验性的,可能会出现链接无法访问等问题,如果出现链接没有清理干净的情况," f"这个功能是试验性的,可能会出现链接无法访问等问题,如果出现链接没有清理干净的情况,"
f"可以将返回的结果再次发送给bot或者尝试手动清理。\n如果你找到了这个工具的问题,欢迎" f"可以将返回的结果再次发送给bot或者尝试手动清理。\n如果你找到了这个工具的问题,欢迎"
f"把它通过 `/report_broken_links 链接 需要去除的参数等等` 报告给开发者!") 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()

View file

@ -1,8 +1,10 @@
import logging
import random import random
from aiogram import BaseMiddleware from aiogram import BaseMiddleware, Router
from aiogram.types import Message from aiogram.types import Message
from typing import Dict, Optional, Callable, Awaitable, Any from typing import Dict, Optional, Callable, Awaitable, Any
router = Router()
class RikkiMiddleware(BaseMiddleware): class RikkiMiddleware(BaseMiddleware):
def __init__(self, target_user_id: str = "5545347637"): 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: if event.chat.type in ['group', 'supergroup'] and user_id == self.target_user_id:
# 更新几率 # 更新几率
self.update_probability(user_id, event.text) 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: 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) 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: if self.get_user_probability(user_id) >= 80.0:
await event.reply("泥欠打了") await event.reply("泥欠打了")

View file

@ -1,3 +1,5 @@
import logging
from aiogram.types import Message from aiogram.types import Message
from config import config from config import config
@ -6,6 +8,7 @@ from config import config
async def handle_unpin_channel_message(message: Message): async def handle_unpin_channel_message(message: Message):
"""Handle unpinning messages from linked channels without a specific hashtag""" """Handle unpinning messages from linked channels without a specific hashtag"""
if not config.is_feature_enabled('unpin', message.chat.id): if not config.is_feature_enabled('unpin', message.chat.id):
logging.debug('发现了频道试图置顶消息,但未启用 unpin 功能,跳过处理')
return return
try: try:
regex_pattern = config.get_feature_config('unpin', message.chat.id)['regex'] 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: if regex_pattern:
import re import re
if re.search(regex_pattern, message.text or message.caption or ""): if re.search(regex_pattern, message.text or message.caption or ""):
logging.debug(f"发现了频道试图置顶消息,但消息匹配了正则表达式{regex_pattern},跳过取消置顶")
# Message matches regex, don't unpin # Message matches regex, don't unpin
return return
# Either no regex pattern or message doesn't match, proceed to unpin # Either no regex pattern or message doesn't match, proceed to unpin
print("trying to unpin the message") logging.debug('正在尝试取消频道消息的置顶')
await message.unpin() await message.unpin()
except Exception as e: except Exception as e:
print('Error unpinning message:', e) logging.error('Error unpinning message:', e)