ForcePilot/backend/package/yuxi/channel/extensions/imessage/errors.py
Kris 4d52f634fe feat(imessage): 新增iMessage渠道插件完整实现
该提交新增了基于BlueBubbles的iMessage渠道插件,支持单聊和群组消息,包含文本、图片、语音、文件和视频消息收发,支持消息编辑、撤回、回复、 reactions和输入状态提示,同时实现了账号配置、安全校验、配对授权、消息格式化与分片等完整功能。
2026-05-21 10:50:15 +08:00

36 lines
778 B
Python

from __future__ import annotations
class IMessageError(Exception):
pass
class IMessageAuthError(IMessageError):
pass
class IMessageConnectionError(IMessageError):
pass
class IMessageSendError(IMessageError):
pass
class IMessageMediaError(IMessageError):
pass
def classify_http_error(status_code: int, body: str = "") -> IMessageError:
if status_code == 401 or status_code == 403:
return IMessageAuthError(f"HTTP {status_code}: {body}")
if status_code >= 500:
return IMessageConnectionError(f"HTTP {status_code}: {body}")
return IMessageError(f"HTTP {status_code}: {body}")
def get_retry_after_ms(error: Exception) -> int | None:
if isinstance(error, IMessageConnectionError):
return 5000
return None