ForcePilot/backend/package/yuxi/channels/adapters/imessage/exceptions.py
Kris 068cf70fe9 feat(imessage): 实现完整的 iMessage 适配器基础模块
新增 iMessage 通道适配器完整实现,包含:
1. 核心适配器与工具工厂导出
2. 运行时存储、反射防护、会话路由等基础组件
3. 消息信封、线程管理、回复上下文格式化
4. Tapback 表情反应处理、自定义异常体系
5. 审批按钮、联系人解析、速率限制功能
6. 文本净化、目标解析、缓存管理模块
7. 配置 schema、多账户支持、安装向导等配置模块
8. 审计日志、媒体AI处理等扩展功能
2026-05-12 00:44:44 +08:00

33 lines
1.2 KiB
Python

from __future__ import annotations
from yuxi.channels.exceptions import ChannelException
class IMessageError(ChannelException):
def __init__(self, message: str, retryable: bool = False, retry_after_ms: int = 0):
super().__init__(message, retryable=retryable, retry_after_ms=retry_after_ms)
class BlueBubblesHTTPError(IMessageError):
def __init__(self, status_code: int, message: str = "", headers: dict | None = None):
self.status_code = status_code
self.headers = headers or {}
retryable = status_code >= 500 or status_code == 429
detail = f"HTTP {status_code}: {message}" if message else f"HTTP {status_code}"
super().__init__(detail, retryable=retryable)
class BlueBubblesConnectionError(IMessageError):
def __init__(self, message: str = ""):
super().__init__(message or "BlueBubbles connection failed", retryable=True, retry_after_ms=5000)
class BlueBubblesAuthenticationError(IMessageError):
def __init__(self, message: str = ""):
super().__init__(message or "BlueBubbles authentication failed", retryable=False)
class TapbackError(IMessageError):
def __init__(self, message: str = ""):
super().__init__(message or "Tapback operation failed", retryable=False)