ForcePilot/backend/package/yuxi/channels/adapters/zalo_user/probe.py
Kris 9285da5c55 feat(zalo-user): 实现完整的Zalo用户频道适配器
新增了Zalo用户频道的完整适配器实现,包括:
- 基础的适配器初始化与导出结构
- 群组同步与成员获取功能
- 请求限流与退避重试机制
- 健康检查与状态探针
- 消息反应/表情处理工具
- 贴纸缓存与消息去重功能
- 消息ID格式化与追踪
- TTS语音合成支持
- 消息发送权限校验
- 长文本分块发送
- 操作审批流程
- 常量配置与国际化支持
- 图像视觉分析功能
- 贴纸消息处理
- 登录与配置向导
- 群组上下文缓存
- 网关连接管理
- 配置Schema校验
- 状态问题与安全审计
- 内联按钮与交互组件
- 交互式回调分发
- 联系人与群组目录管理
- 富媒体卡片消息支持
2026-05-12 00:53:13 +08:00

33 lines
979 B
Python

from __future__ import annotations
import httpx
from yuxi.channels.models import HealthStatus
from .bridge import BridgeClient
async def check_bridge_health(bridge: BridgeClient) -> HealthStatus:
try:
data = await bridge.check_health()
ok = data.get("ok") or data.get("status") == "running"
if ok:
return HealthStatus(
status="healthy",
metadata={
"service": data.get("service", "zalo-bridge"),
"bridge_url": bridge.base_url,
},
)
return HealthStatus(
status="degraded",
last_error=data.get("message", "Bridge unhealthy"),
)
except httpx.ConnectError:
return HealthStatus(
status="unhealthy",
last_error=f"Cannot connect to bridge at {bridge.base_url}",
)
except Exception as e:
return HealthStatus(status="unhealthy", last_error=str(e))