ayaka.ayaka_parser
序列化
1'''序列化''' 2import json 3from .driver import Message, MessageSegment, DataclassEncoder 4 5 6class AyakaParser: 7 def encode_message(self, data): 8 if not isinstance(data, Message): 9 data = Message(data) 10 return json.dumps(data, ensure_ascii=False, cls=DataclassEncoder) 11 12 def decode_message(self, text: str): 13 data = json.loads(text) 14 15 def func(d: dict): 16 type = d["type"] 17 data = d["data"] 18 return getattr(MessageSegment, type)(**data) 19 20 return Message(func(d) for d in data) 21 22 23parser = AyakaParser()
class
AyakaParser:
7class AyakaParser: 8 def encode_message(self, data): 9 if not isinstance(data, Message): 10 data = Message(data) 11 return json.dumps(data, ensure_ascii=False, cls=DataclassEncoder) 12 13 def decode_message(self, text: str): 14 data = json.loads(text) 15 16 def func(d: dict): 17 type = d["type"] 18 data = d["data"] 19 return getattr(MessageSegment, type)(**data) 20 21 return Message(func(d) for d in data)