nitori_message 0.0.1+2 copy "nitori_message: ^0.0.1+2" to clipboard
nitori_message: ^0.0.1+2 copied to clipboard

Message Elements Builder and Parser for Nitori, A Dart/Flutter Implementation of Satori Protocol

A message builder for Nitori, provides several useful functions to construct or parse message elements of Satori Protocol.

Usage #

Construct a message #

import 'package:nitori_message/nitori_message.dart' as n;

var message = n.Message(
  children: [
    n.At(id: '001', name: 'Kawashiro Nitori'),
    n.Text('Hello, world!'),
    n.Image(src: 'https://example.com/image.png'),
    n.LineBreak(),
    n.Bold('Welcome to Nitori: '),
    n.Sharp(id: '001', name: 'Kawashiro Channel'),
  ],
); // n.Message

The code above will produce:

<message>
  <at id="001" name="Kawashiro Nitori" />
  Hello, world!
  <img src="https://example.com/image.png" />
  <br />
  <b>Welcome to Nitori: </b>
  <sharp id="001" name="Kawashiro Channel" />
</message>

You will notice there are some differences between the class names and the produced tags, this is because the class names are designed to be more readable and easy to use, while the tags are should be the same as those in Satori Protocol. You could see the Elements Cheat Sheet for more details.

Parse a message #

import 'package:nitori_message/nitori_message.dart' as n;

var message = n.Message.parse(
  '<message>'
  '<at id="001" name="Kawashiro Nitori" />'
  'Hello, world!'
  '<img src="https://example.com/image.png" />'
  '<br />'
  '<b>Welcome to Nitori: </b>'
  '<sharp id="001" name="Kawashiro Channel" />'
  '</message>',
); // n.Message

The code above will produce a structure like this:

n.Message(
  children: [
    n.At(id: '001', name: 'Kawashiro Nitori'),
    n.Text('Hello, world!'),
    n.Image(src: 'https://example.com/image.png'),
    n.LineBreak(),
    n.Bold('Welcome to Nitori: '),
    n.Sharp(id: '001', name: 'Kawashiro Channel'),
  ],
); // n.Message

Since Nitori overrides the toString() method of each element, you could use print(message) to see the result.

print(message);

// =>
// <message>
//   <at id="001" name="Kawashiro Nitori" />
//   Hello, world!
//   <img src="https://example.com/image.png" />
//   <br />
//   <b>Welcome to Nitori: </b>
//   <sharp id="001" name="Kawashiro Channel" />
// </message>

Elements Cheat Sheet #

Class Name Satori Element Name Note
Text plain text Represent a text node.
At <at>
Sharp <sharp>
Anchor <a>
Image <img>
Audio <audio>
Video <video>
File <file>
Bold <b>
Idiomatic <i>
Underline <u>
Strikethrough <s>
Spoler <spl>
Code <code>
Superscript <sup>
Subscript <sub>
LineBreak <br>
Paragraph <p>
Message <message>
Quote <quote>
Author <author>
Button <button> Not implemented yet
0
likes
150
points
1
downloads

Publisher

unverified uploader

Weekly Downloads

Message Elements Builder and Parser for Nitori, A Dart/Flutter Implementation of Satori Protocol

Repository (GitHub)
View/report issues

Topics

#nitori #satori #chat #messages #bot

Documentation

API reference

License

GPL-3.0 (license)

More

Packages that depend on nitori_message