新增大量WhatsApp适配器相关代码,包括账号管理、会话处理、消息收发、验证授权、媒体处理、互动命令、审批流程、健康检测等完整功能模块,搭建基础的Baileys协议WhatsApp接入能力
33 lines
910 B
Python
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
|