mirror of
				https://github.com/cdryzun/tg_bot_collections.git
				synced 2025-11-04 16:56:43 +08:00 
			
		
		
		
	@ -9,7 +9,6 @@ import telegramify_markdown
 | 
			
		||||
from telebot import TeleBot
 | 
			
		||||
from telebot.types import Message
 | 
			
		||||
from wcwidth import wcswidth
 | 
			
		||||
from wcwidth import wcswidth
 | 
			
		||||
 | 
			
		||||
from config import settings
 | 
			
		||||
from handlers._utils import non_llm_handler
 | 
			
		||||
@ -27,6 +26,13 @@ def get_display_width(text: str) -> int:
 | 
			
		||||
    return width if width is not None else len(text)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def pad_to_width(text: str, target_width: int) -> str:
 | 
			
		||||
    """根据显示宽度填充字符串到指定宽度"""
 | 
			
		||||
    current_width = get_display_width(text)
 | 
			
		||||
    padding = target_width - current_width
 | 
			
		||||
    return text + " " * max(0, padding)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@non_llm_handler
 | 
			
		||||
def handle_message(message: Message):
 | 
			
		||||
    logger.debug(
 | 
			
		||||
@ -93,10 +99,10 @@ def stats_command(message: Message, bot: TeleBot):
 | 
			
		||||
        bot.reply_to(message, "没有找到任何统计信息。")
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    # 计算消息数量的最大宽度
 | 
			
		||||
    max_count_width = max(len(f"{entry.message_count} messages") for entry in stats)
 | 
			
		||||
    # 计算数字部分的最大宽度
 | 
			
		||||
    max_count_width = max(len(str(entry.message_count)) for entry in stats)
 | 
			
		||||
    stats_text = "\n".join(
 | 
			
		||||
        f"{f'{entry.message_count} messages':<{max_count_width}} - {entry.date}"
 | 
			
		||||
        f"{entry.message_count:>{max_count_width}} messages - {entry.date}"
 | 
			
		||||
        for entry in stats
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@ -104,10 +110,10 @@ def stats_command(message: Message, bot: TeleBot):
 | 
			
		||||
    if user_stats:
 | 
			
		||||
        # 计算用户消息数量的最大宽度
 | 
			
		||||
        max_user_count_width = max(
 | 
			
		||||
            len(f"{entry.message_count} messages") for entry in user_stats
 | 
			
		||||
            len(str(entry.message_count)) for entry in user_stats
 | 
			
		||||
        )
 | 
			
		||||
        user_text = "\n".join(
 | 
			
		||||
            f"{f'{entry.message_count} messages':<{max_user_count_width}} - {entry.user_name}"
 | 
			
		||||
            f"{entry.message_count:>{max_user_count_width}} messages - {entry.user_name}"
 | 
			
		||||
            for entry in user_stats
 | 
			
		||||
        )
 | 
			
		||||
    else:
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user