from dataclasses import dataclass, field from astrbot.core.platform.message_type import MessageType @dataclass class MessageSession: """描述一条消息在 AstrBot 中对应的会话的唯一标识。 如果您需要实例化 MessageSession,请不要给 platform_id 赋值(或者同时给 platform_name 和 platform_id 赋值相同值)。它会在 __post_init__ 中自动设置为 platform_name 的值。 """ platform_name: str """平台适配器实例的唯一标识符。自 AstrBot v4.0.0 起,该字段实际为 platform_id。""" message_type: MessageType session_id: str platform_id: str = field(init=False) def __str__(self) -> str: return f"{self.platform_id}:{self.message_type.value}:{self.session_id}" def __post_init__(self): self.platform_id = self.platform_name @staticmethod def from_str(session_str: str): platform_id, message_type, session_id = session_str.split(":", 2) return MessageSession(platform_id, MessageType(message_type), session_id) MessageSesion = MessageSession # back compatibility