fix(telegram): 优化 bot 启动方式及安装命令逻辑,避免重复安装和卸载 aria2

This commit is contained in:
dnslin
2025-12-12 09:25:25 +08:00
parent e3079ddf0b
commit 084ab6d9b4
2 changed files with 16 additions and 1 deletions

View File

@@ -48,6 +48,8 @@ def create_app(config: BotConfig) -> Application:
def run() -> None:
"""加载配置并启动 bot"""
import asyncio
logger = setup_logger()
config = BotConfig.from_env()
@@ -57,4 +59,11 @@ def run() -> None:
app = create_app(config)
logger.info("Bot starting...")
app.run_polling()
async def main():
async with app:
await app.start()
await app.updater.start_polling()
await asyncio.Event().wait()
asyncio.run(main())

View File

@@ -75,6 +75,9 @@ class Aria2BotAPI:
async def install(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
logger.info(f"收到 /install 命令 - {_get_user_info(update)}")
if is_aria2_installed():
await self._reply(update, context, "aria2 已安装,无需重复安装。如需重新安装,请先运行 /uninstall")
return
await self._reply(update, context, "正在安装 aria2处理中请稍候...")
try:
result = await self.installer.install()
@@ -106,6 +109,9 @@ class Aria2BotAPI:
async def uninstall(self, update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
logger.info(f"收到 /uninstall 命令 - {_get_user_info(update)}")
if not is_aria2_installed():
await self._reply(update, context, "aria2 未安装,无需卸载")
return
await self._reply(update, context, "正在卸载 aria2处理中请稍候...")
try:
try: