Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

bsdayo/Satori.NET

Open more actions menu

Repository files navigation

Satori.NET

Satori 协议 .NET SDK

Satori Protocol Version .NET Version

包名 版本 描述
Satori.Protocol Version 协议核心部分,包含消息元素、事件、模型定义;支持对 消息元素 的序列化与反序列化
Satori.Client Version 对接 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

示例

Satori.Client.Example

备注

本 SDK 目前虽然基本完成,仍可能遇到些许小问题,如果遇到可以发布 Issue

欢迎 PR!

开源

MIT License

About

Satori 协议 .NET SDK

Resources

License

Stars

Watchers

Forks

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.