ForcePilot/backend/package/yuxi/channels/adapters/whatsapp/connection.py
Kris e9b57546ea feat(whatsapp): 新增WhatsApp适配器完整功能模块
新增大量WhatsApp适配器相关代码,包括账号管理、会话处理、消息收发、验证授权、媒体处理、互动命令、审批流程、健康检测等完整功能模块,搭建基础的Baileys协议WhatsApp接入能力
2026-05-12 00:51:58 +08:00

33 lines
910 B
Python

from __future__ import annotations
from typing import Any, Literal
ConnectionState = Literal["open", "close", "connecting", "error"]
class ConnectionStateManager:
def __init__(self):
self._state: ConnectionState = "close"
self._last_error: str | None = None
@property
def state(self) -> ConnectionState:
return self._state
@property
def is_connected(self) -> bool:
return self._state == "open"
@property
def last_error(self) -> str | None:
return self._last_error
def update(self, sse_event: dict[str, Any]) -> None:
new_state = sse_event.get("status", self._state)
if new_state in ("open", "close", "connecting", "error"):
self._state = new_state
if new_state == "error":
self._last_error = sse_event.get("error", "unknown error")
else:
self._last_error = None