fix: 企微 API 通过代理绕过 IP 白名单限制,补充错误日志

- 新增 WECHAT_API_BASE_URL 配置项,支持企微 API 代理转发
- _send_message 增加 API 错误日志(errcode + errmsg)
- _get_access_token 增加失败日志
- handle_text 不再为空,返回菜单引导提示
- 防重入触发时通知用户等待时间
- menu.py API 调用统一使用配置化的 base URL

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-12 08:43:03 +08:00
parent 103de16a8f
commit 18f415b363
5 changed files with 37 additions and 6 deletions
+15
View File
@@ -92,6 +92,17 @@ class WeChatMessageHandler:
return None
async def handle_text(self, content: str, from_user: str) -> str | None:
"""文本消息:返回帮助提示"""
help_text = (
"请使用菜单操作:\n"
"---\n"
"📋 最新公告 - 获取最新公告\n"
"📊 查询 → 监控配置/系统状态/今日工作日\n"
"⚙️ 系统管理 → 立即爬取/同步节假日/AI 分析"
)
ok = await self.client.send_text(help_text, from_user)
if not ok:
logger.warning(f"发送帮助消息失败, touser={from_user}")
return None
async def _handle_today_stats(self, from_user: str) -> str | None:
@@ -128,7 +139,11 @@ class WeChatMessageHandler:
async with _crawl_lock:
now = time.monotonic()
if now - _last_crawl_time < 60:
remaining = int(60 - (now - _last_crawl_time))
logger.info(f"爬取请求被忽略(防重入),距上次 {now - _last_crawl_time:.1f}s")
await self.client.send_text(
f"爬取任务进行中,请 {remaining} 秒后再试", from_user
)
return None
_last_crawl_time = now