Moderation notes technical documentation.
This commit is contained in:
parent
7892fd6c03
commit
cdbe97137e
@ -0,0 +1,86 @@
|
|||||||
|
---
|
||||||
|
title: "Moderator notes overview"
|
||||||
|
description: "Moderator Notes Application technical overview"
|
||||||
|
weight: 75
|
||||||
|
chapter: false
|
||||||
|
livechatnotranslation: true
|
||||||
|
---
|
||||||
|
|
||||||
|
The livechat plugin includes a [Moderation Notes Application](/peertube-plugin-livechat/documentation/user/streamers/moderation_notes).
|
||||||
|
The present document describes how this is implemented.
|
||||||
|
|
||||||
|
## Basics
|
||||||
|
|
||||||
|
This features relies on [XEP-0060: Publish-Subscribe](https://xmpp.org/extensions/xep-0060.html).
|
||||||
|
This XEP provide a way to store and retrieve items, and to receive push notifications when an item is created/deleted/modified.
|
||||||
|
|
||||||
|
There is a Prosody Module, [mod_pubsub_peertubelivechat](https://github.com/JohnXLivingston/peertube-plugin-livechat/tree/main/prosody-modules/mod_pubsub_peertubelivechat), to implement some specific use of the pubsub mechanism.
|
||||||
|
|
||||||
|
This module is also used for [Tasks](/peertube-plugin-livechat/technical/tasks/).
|
||||||
|
|
||||||
|
We use the [JID+NodeID addressing](https://xmpp.org/extensions/xep-0060.html#addressing-jidnode) to specify some nodes related to each MUC room.
|
||||||
|
The JID is the MUC room JID, the NodeID is functionnality we want to address.
|
||||||
|
|
||||||
|
This modules implement the "livechat-notes" node, to handle moderator notes.
|
||||||
|
|
||||||
|
The "livechat-notes" node contains one type of objects: Note (XML Namespaces: `urn:peertube-plugin-livechat:note`).
|
||||||
|
|
||||||
|
On the front-end, we have the [livechat-converse-notes](https://github.com/JohnXLivingston/peertube-plugin-livechat/tree/main/conversejs/custom/plugins/notes) plugin for ConverseJS.
|
||||||
|
|
||||||
|
## Workflow / Unsubscribing
|
||||||
|
|
||||||
|
This is basically the same as for [Tasks](/peertube-plugin-livechat/technical/tasks/).
|
||||||
|
|
||||||
|
## Items
|
||||||
|
|
||||||
|
Here we describes the content of note items.
|
||||||
|
|
||||||
|
* Item tag: `note`
|
||||||
|
* XML Namespace: `urn:peertube-plugin-livechat:note`
|
||||||
|
* item attributes:
|
||||||
|
* `order`: the order of the note in the note list
|
||||||
|
* item childs:
|
||||||
|
* `description`: the text content of the note
|
||||||
|
* `note-about`: an optional tag, if the note is associated to a participant
|
||||||
|
|
||||||
|
The `note-about` tag, if present, has following structure:
|
||||||
|
|
||||||
|
* Item tag: `note-about`
|
||||||
|
* XML Namespace: none
|
||||||
|
* item attributes:
|
||||||
|
* `jid`: the JID of the occupant
|
||||||
|
* `nick` the nick of the occupant, at time of note creation
|
||||||
|
* item childs:
|
||||||
|
* `occupant-id`: see [XEP-0421](https://xmpp.org/extensions/xep-0421.html).
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<iq
|
||||||
|
from="user@example.com"
|
||||||
|
id="64da7e38-4dd5-4f55-b46f-297232232971:sendIQ" to="035fcc4b-072f-4827-b296-6998b04e3456@room.example.com"
|
||||||
|
type="set"
|
||||||
|
xmlns="jabber:client">
|
||||||
|
<pubsub xmlns="http://jabber.org/protocol/pubsub">
|
||||||
|
<publish node="livechat-notes">
|
||||||
|
<item id="8ab78df9-a7b9-4315-943d-c340935482af">
|
||||||
|
<note
|
||||||
|
order="11"
|
||||||
|
xmlns="urn:peertube-plugin-livechat:note"
|
||||||
|
>
|
||||||
|
<description>Some text.</description>
|
||||||
|
<note-about
|
||||||
|
jid="khkecy3nkddwxdllgzdub-dv@anon.p1.localhost"
|
||||||
|
nick="Mickey"
|
||||||
|
>
|
||||||
|
<occupant-id
|
||||||
|
id="ga4mR2IKEvRKuzN1gJYVafCTbY1gNvgNvNReqdVKexI="
|
||||||
|
xmlns="urn:xmpp:occupant-id:0"
|
||||||
|
/>
|
||||||
|
</note-about>
|
||||||
|
</note>
|
||||||
|
</item>
|
||||||
|
</publish>
|
||||||
|
</pubsub>
|
||||||
|
</iq>
|
||||||
|
```
|
@ -16,10 +16,12 @@ This XEP provide a way to store and retrieve items, and to receive push notifica
|
|||||||
|
|
||||||
There is a Prosody Module, [mod_pubsub_peertubelivechat](https://github.com/JohnXLivingston/peertube-plugin-livechat/tree/main/prosody-modules/mod_pubsub_peertubelivechat), to implement some specific use of the pubsub mechanism.
|
There is a Prosody Module, [mod_pubsub_peertubelivechat](https://github.com/JohnXLivingston/peertube-plugin-livechat/tree/main/prosody-modules/mod_pubsub_peertubelivechat), to implement some specific use of the pubsub mechanism.
|
||||||
|
|
||||||
|
This module is also used for [Moderator Notes](/peertube-plugin-livechat/technical/moderation_notes/).
|
||||||
|
|
||||||
We use the [JID+NodeID addressing](https://xmpp.org/extensions/xep-0060.html#addressing-jidnode) to specify some nodes related to each MUC room.
|
We use the [JID+NodeID addressing](https://xmpp.org/extensions/xep-0060.html#addressing-jidnode) to specify some nodes related to each MUC room.
|
||||||
The JID is the MUC room JID, the NodeID is functionnality we want to address.
|
The JID is the MUC room JID, the NodeID is functionnality we want to address.
|
||||||
For now, this modules only implement one such node: "livechat-tasks", to handle tasks and task lists.
|
|
||||||
But the module code anticipates futur uses.
|
This modules implement the "livechat-tasks" node, to handle tasks and task lists.
|
||||||
|
|
||||||
The "livechat-tasks" node contains two type of objects: Task and TaskList (XML Namespaces: `urn:peertube-plugin-livechat:tasklist` and `urn:peertube-plugin-livechat:task`). Tasks have an attribute containing their task list id.
|
The "livechat-tasks" node contains two type of objects: Task and TaskList (XML Namespaces: `urn:peertube-plugin-livechat:tasklist` and `urn:peertube-plugin-livechat:task`). Tasks have an attribute containing their task list id.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user