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)
AyakaParser()
def encode_message(self, data):
 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)
def decode_message(self, text: str):
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)