该提交新增了完整的BlueBubbles渠道插件,支持通过BlueBubbles Server集成iMessage功能,包含以下核心能力: 1. 支持私聊和群聊会话管理,自动区分会话类型 2. 完整的消息收发支持,包括文本、图片、语音、文件、视频消息 3. 支持消息反应、已读回执、消息编辑与撤回 4. 内置去重、防抖处理机制 5. 支持Webhook和WebSocket两种事件接收方式 6. 完善的权限与安全校验机制 7. 历史消息同步与抓包功能 8. TTS语音合成与发送支持 9. 群组管理能力,包括重命名、修改头像、增减成员等
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class BlueBubblesStatus:
|
|
account_id: str
|
|
connected: bool = False
|
|
server_url: str = ""
|
|
private_api_enabled: bool = False
|
|
imessage_logged_in: bool = False
|
|
os_version: str | None = None
|
|
macos_major: int | None = None
|
|
ws_connected: bool = False
|
|
webhook_configured: bool = False
|
|
issues: list[str] = field(default_factory=list)
|
|
|
|
@property
|
|
def is_healthy(self) -> bool:
|
|
return self.connected and self.imessage_logged_in and not self.issues
|
|
|
|
@property
|
|
def status_text(self) -> str:
|
|
if not self.connected:
|
|
return "disconnected"
|
|
if not self.imessage_logged_in:
|
|
return "iMessage not logged in"
|
|
if not self.private_api_enabled:
|
|
return "public-api-only"
|
|
return "healthy"
|
|
|
|
|
|
def build_status_report(status: BlueBubblesStatus) -> dict:
|
|
return {
|
|
"account_id": status.account_id,
|
|
"connected": status.connected,
|
|
"server_url": status.server_url,
|
|
"private_api_enabled": status.private_api_enabled,
|
|
"imessage_logged_in": status.imessage_logged_in,
|
|
"os_version": status.os_version,
|
|
"macos_major": status.macos_major,
|
|
"ws_connected": status.ws_connected,
|
|
"webhook_configured": status.webhook_configured,
|
|
"is_healthy": status.is_healthy,
|
|
"status_text": status.status_text,
|
|
"issues": status.issues,
|
|
}
|