包名 | 版本 | 描述 |
---|---|---|
Satori.Protocol | 协议核心部分,包含消息元素、事件、模型定义;支持对 消息元素 的序列化与反序列化 | |
Satori.Client | 对接 Satori 协议的客户端 |
Satori 使用消息元素来表示一个消息的内容,形式类似于 HTML。例如:
<!-- 提及 (@) 用户 -->
<at id="1a2b3c4d5e6f"/>
<!-- 引用(回复)消息 -->
<quote id="1f1e33">
<!-- 提及某个频道 -->
<sharp id="channel_id"/>
Hello Satori!
</quote>
Satori.NET 支持使用 ElementSerializer 类对消息元素进行序列化与反序列化。
将一个 Element 对象序列化为字符串:
var element = new ImageElement
{
Src = "https://example.com/img.jpg",
Width = 114514,
Height = 1919810
};
// <img width="114514" height="1919810" src="https://example.com/img.jpg" />
var text = ElementSerializer.Serialize(element);
支持一个 Element 数组:
var element1 = new AuthorElement { UserId = "satori" };
var element2 = new SharpElement { Id = "satori-channel" };
var element3 = new TextElement { Text = "text" };
// <author user-id="satori" /><sharp id="satori-channel" />text
var text = ElementSerializer.Serialize(new Element[] { element1, element2, element3 });
将一个字符串反序列化为 Element[]:
var text = "<a href=\"https://example.com\">Test</a>";
var elements = ElementSerializer.Deserialize(text);
// elements[0]: LinkElement
// elements[0].ChildElements[0]: TextElement
本 SDK 目前虽然基本完成,仍可能遇到些许小问题,如果遇到可以发布 Issue。
欢迎 PR!