1
This commit is contained in:
112
telegram_bot.py
112
telegram_bot.py
@@ -3692,14 +3692,18 @@ class ProvisionerBot:
|
|||||||
|
|
||||||
new_display = f"{new_token[:8]}...{new_token[-4:]}" if len(new_token) > 12 else new_token
|
new_display = f"{new_token[:8]}...{new_token[-4:]}" if len(new_token) > 12 else new_token
|
||||||
|
|
||||||
await update.message.reply_text(
|
# 发送更新成功消息
|
||||||
|
progress_msg = await update.message.reply_text(
|
||||||
f"<b>✅ Token 更新成功</b>\n\n"
|
f"<b>✅ Token 更新成功</b>\n\n"
|
||||||
f"旧 Token: <code>{old_display}</code>\n"
|
f"旧 Token: <code>{old_display}</code>\n"
|
||||||
f"新 Token: <code>{new_display}</code>\n\n"
|
f"新 Token: <code>{new_display}</code>\n\n"
|
||||||
f"配置已自动重载生效",
|
f"⏳ 正在检测邮件 API 连接...",
|
||||||
parse_mode="HTML"
|
parse_mode="HTML"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 测试 API 连接
|
||||||
|
await self._test_mail_api_connection(update.effective_chat.id, progress_msg.message_id, new_token, config)
|
||||||
|
|
||||||
except ImportError:
|
except ImportError:
|
||||||
await update.message.reply_text(
|
await update.message.reply_text(
|
||||||
"❌ 缺少 tomli_w 依赖\n"
|
"❌ 缺少 tomli_w 依赖\n"
|
||||||
@@ -3708,6 +3712,110 @@ class ProvisionerBot:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
await update.message.reply_text(f"❌ 更新 Token 失败: {e}")
|
await update.message.reply_text(f"❌ 更新 Token 失败: {e}")
|
||||||
|
|
||||||
|
async def _test_mail_api_connection(self, chat_id: int, message_id: int, token: str, config: dict):
|
||||||
|
"""测试邮件 API 连接"""
|
||||||
|
import requests
|
||||||
|
|
||||||
|
mail_api_base = config.get("autogptplus", {}).get("mail_api_base", "")
|
||||||
|
|
||||||
|
if not mail_api_base:
|
||||||
|
await self.app.bot.edit_message_text(
|
||||||
|
chat_id=chat_id,
|
||||||
|
message_id=message_id,
|
||||||
|
text="<b>❌ 邮件 API 连接失败</b>\n\n"
|
||||||
|
"错误: mail_api_base 未配置\n\n"
|
||||||
|
"请检查配置后重试:\n"
|
||||||
|
"• mail_api_base: 未配置\n"
|
||||||
|
"• mail_api_token: 已配置",
|
||||||
|
parse_mode="HTML"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
# 测试 API 连接
|
||||||
|
url = f"{mail_api_base}/api/public/emailList"
|
||||||
|
headers = {
|
||||||
|
"Authorization": token,
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
}
|
||||||
|
payload = {
|
||||||
|
"toEmail": "test@test.com",
|
||||||
|
"timeSort": "desc",
|
||||||
|
"size": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
start_time = time.time()
|
||||||
|
response = requests.post(url, headers=headers, json=payload, timeout=10)
|
||||||
|
elapsed = time.time() - start_time
|
||||||
|
|
||||||
|
data = response.json()
|
||||||
|
|
||||||
|
token_display = f"{token[:8]}...{token[-4:]}" if len(token) > 12 else token
|
||||||
|
|
||||||
|
if response.status_code == 200 and data.get("code") == 200:
|
||||||
|
await self.app.bot.edit_message_text(
|
||||||
|
chat_id=chat_id,
|
||||||
|
message_id=message_id,
|
||||||
|
text=f"<b>✅ Token 更新成功</b>\n\n"
|
||||||
|
f"新 Token: <code>{token_display}</code>\n\n"
|
||||||
|
f"<b>✅ 邮件 API 连接成功</b>\n"
|
||||||
|
f"• 服务器: {mail_api_base}\n"
|
||||||
|
f"• 响应时间: {elapsed*1000:.0f}ms\n"
|
||||||
|
f"• 状态: 正常",
|
||||||
|
parse_mode="HTML"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
error_msg = data.get("message", "未知错误")
|
||||||
|
await self.app.bot.edit_message_text(
|
||||||
|
chat_id=chat_id,
|
||||||
|
message_id=message_id,
|
||||||
|
text=f"<b>✅ Token 更新成功</b>\n\n"
|
||||||
|
f"新 Token: <code>{token_display}</code>\n\n"
|
||||||
|
f"<b>❌ 邮件 API 连接失败</b>\n"
|
||||||
|
f"错误: API 响应异常: {error_msg}\n\n"
|
||||||
|
f"请检查配置后重试:\n"
|
||||||
|
f"• mail_api_base: {mail_api_base}\n"
|
||||||
|
f"• mail_api_token: 已配置",
|
||||||
|
parse_mode="HTML"
|
||||||
|
)
|
||||||
|
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
await self.app.bot.edit_message_text(
|
||||||
|
chat_id=chat_id,
|
||||||
|
message_id=message_id,
|
||||||
|
text=f"<b>✅ Token 更新成功</b>\n\n"
|
||||||
|
f"<b>❌ 邮件 API 连接失败</b>\n"
|
||||||
|
f"错误: 无法连接到服务器\n\n"
|
||||||
|
f"请检查配置后重试:\n"
|
||||||
|
f"• mail_api_base: {mail_api_base}\n"
|
||||||
|
f"• mail_api_token: 已配置",
|
||||||
|
parse_mode="HTML"
|
||||||
|
)
|
||||||
|
except requests.exceptions.Timeout:
|
||||||
|
await self.app.bot.edit_message_text(
|
||||||
|
chat_id=chat_id,
|
||||||
|
message_id=message_id,
|
||||||
|
text=f"<b>✅ Token 更新成功</b>\n\n"
|
||||||
|
f"<b>❌ 邮件 API 连接失败</b>\n"
|
||||||
|
f"错误: 连接超时\n\n"
|
||||||
|
f"请检查配置后重试:\n"
|
||||||
|
f"• mail_api_base: {mail_api_base}\n"
|
||||||
|
f"• mail_api_token: 已配置",
|
||||||
|
parse_mode="HTML"
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
await self.app.bot.edit_message_text(
|
||||||
|
chat_id=chat_id,
|
||||||
|
message_id=message_id,
|
||||||
|
text=f"<b>✅ Token 更新成功</b>\n\n"
|
||||||
|
f"<b>❌ 邮件 API 连接失败</b>\n"
|
||||||
|
f"错误: {str(e)}\n\n"
|
||||||
|
f"请检查配置后重试:\n"
|
||||||
|
f"• mail_api_base: {mail_api_base}\n"
|
||||||
|
f"• mail_api_token: 已配置",
|
||||||
|
parse_mode="HTML"
|
||||||
|
)
|
||||||
|
|
||||||
@admin_only
|
@admin_only
|
||||||
async def cmd_autogptplus(self, update: Update, context: ContextTypes.DEFAULT_TYPE):
|
async def cmd_autogptplus(self, update: Update, context: ContextTypes.DEFAULT_TYPE):
|
||||||
"""AutoGPTPlus 配置管理 - 交互式菜单"""
|
"""AutoGPTPlus 配置管理 - 交互式菜单"""
|
||||||
|
|||||||
Reference in New Issue
Block a user