fix: format beauty

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
This commit is contained in:
yihong0618
2025-07-16 19:55:47 +08:00
parent fee37fc96f
commit b20051ef8e

View File

@ -9,7 +9,6 @@ import telegramify_markdown
from telebot import TeleBot from telebot import TeleBot
from telebot.types import Message from telebot.types import Message
from wcwidth import wcswidth from wcwidth import wcswidth
from wcwidth import wcswidth
from config import settings from config import settings
from handlers._utils import non_llm_handler 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) 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 @non_llm_handler
def handle_message(message: Message): def handle_message(message: Message):
logger.debug( logger.debug(
@ -93,10 +99,10 @@ def stats_command(message: Message, bot: TeleBot):
bot.reply_to(message, "没有找到任何统计信息。") bot.reply_to(message, "没有找到任何统计信息。")
return 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( 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 for entry in stats
) )
@ -104,10 +110,10 @@ def stats_command(message: Message, bot: TeleBot):
if user_stats: if user_stats:
# 计算用户消息数量的最大宽度 # 计算用户消息数量的最大宽度
max_user_count_width = max( 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( 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 for entry in user_stats
) )
else: else: