From e3079ddf0b9a7133f482e79d79f1759ba816336e Mon Sep 17 00:00:00 2001 From: dnslin Date: Fri, 12 Dec 2025 09:22:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(telegram):=20=E6=B7=BB=E5=8A=A0=20Telegram?= =?UTF-8?q?=20Bot=20=E5=91=BD=E4=BB=A4=E5=88=97=E8=A1=A8=E5=8F=8A=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E5=91=BD=E4=BB=A4=E8=8F=9C=E5=8D=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/telegram/app.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/telegram/app.py b/src/telegram/app.py index 1eaf476..784bf98 100644 --- a/src/telegram/app.py +++ b/src/telegram/app.py @@ -3,6 +3,7 @@ from __future__ import annotations import sys +from telegram import BotCommand from telegram.ext import Application from src.core import BotConfig @@ -10,9 +11,30 @@ from src.telegram.handlers import Aria2BotAPI, build_handlers from src.utils import setup_logger +# Bot 命令列表,用于 Telegram 命令自动补全 +BOT_COMMANDS = [ + BotCommand("install", "安装 aria2"), + BotCommand("uninstall", "卸载 aria2"), + BotCommand("start", "启动 aria2 服务"), + BotCommand("stop", "停止 aria2 服务"), + BotCommand("restart", "重启 aria2 服务"), + BotCommand("status", "查看 aria2 状态"), + BotCommand("logs", "查看最近日志"), + BotCommand("clear_logs", "清空日志"), + BotCommand("set_secret", "设置自定义 RPC 密钥"), + BotCommand("reset_secret", "重新生成随机 RPC 密钥"), + BotCommand("help", "显示帮助"), +] + + +async def post_init(application: Application) -> None: + """应用初始化后设置命令菜单""" + await application.bot.set_my_commands(BOT_COMMANDS) + + def create_app(config: BotConfig) -> Application: """创建 Telegram Application""" - builder = Application.builder().token(config.token) + builder = Application.builder().token(config.token).post_init(post_init) if config.api_base_url: builder = builder.base_url(config.api_base_url).base_file_url(config.api_base_url + "/file") app = builder.build()