mirror of
https://github.com/versia-pub/docs.git
synced 2025-12-06 14:28:20 +01:00
Begin work on new Microblogging extension
This commit is contained in:
parent
18e76da5b3
commit
64400c3faf
66
docs/extensions/microblogging.md
Normal file
66
docs/extensions/microblogging.md
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Microblogging
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
>
|
||||||
|
> Before Lysand 3.0, microblogging was directly integrated into the core spec. As of Lysand 3.0, microblogging has been moved to an extension, as part of a larger effort to modularization. This document describes the new microblogging extension.
|
||||||
|
|
||||||
|
The Microblogging extension allows users to perform certain tasks related to microblogging, such as "boosting" (reposting) posts.
|
||||||
|
|
||||||
|
## Announce
|
||||||
|
|
||||||
|
The `Announce` action signifies a user's intent to broadcast or share an object with their followers. This action is analogous to the "retweet" function on Twitter.
|
||||||
|
|
||||||
|
|
||||||
|
`Announce`s can of course be deleted ("unboosting") with a classic [Undo](../objects/undo) object.
|
||||||
|
|
||||||
|
Here's an example of an `Announce` action:
|
||||||
|
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
"id": "3e7e4750-afd4-4d99-a256-02f0710a0520",
|
||||||
|
"type": "Extension",
|
||||||
|
"extension_type": "org.lysand:microblogging/Announce",
|
||||||
|
"author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
|
||||||
|
"uri": "https://example.com/actions/3e7e4750-afd4-4d99-a256-02f0710a0520",
|
||||||
|
"created_at": "2021-01-01T00:00:00.000Z",
|
||||||
|
"object": "https://example.com/publications/f08a124e-fe90-439e-8be4-15a428a72a19"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
#### Author
|
||||||
|
|
||||||
|
| Name | Type | Required |
|
||||||
|
| :----- | :----- | :------- |
|
||||||
|
| author | String | Yes |
|
||||||
|
|
||||||
|
URI of the [Actor](../objects/actors) who initiated the action.
|
||||||
|
|
||||||
|
#### Object
|
||||||
|
|
||||||
|
| Name | Type | Required |
|
||||||
|
| :----- | :----- | :------- |
|
||||||
|
| object | String | Yes |
|
||||||
|
|
||||||
|
URI of the object being announced. Must be of type [Note](../objects/note)
|
||||||
|
|
||||||
|
### Implementation
|
||||||
|
|
||||||
|
When a [Note](../objects/note) object is announced, the client **SHOULD** display the original note with an indicator that it has been announced. The client **SHOULD** also display the number of times the note has been announced, such as a number next to a small icon like such on [Mastodon](https://joinmastodon.org/):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Furthermore, users should be notified when their notes are announced by other users.
|
||||||
|
|
||||||
|
|
||||||
|
## Types
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
interface Announce extends Entity {
|
||||||
|
type: "Announce";
|
||||||
|
author: string;
|
||||||
|
object: string;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -1,44 +1 @@
|
||||||
# Announce
|
This page has been moved to the [Microblogging Extension](../extensions/microblogging#announce).
|
||||||
|
|
||||||
The `Announce` action signifies a user's intent to broadcast or share an object with their followers. This action is analogous to the "retweet" function on Twitter.
|
|
||||||
|
|
||||||
Here's an example of an `Announce` action:
|
|
||||||
|
|
||||||
```json5
|
|
||||||
{
|
|
||||||
"type": "Announce",
|
|
||||||
"id": "3e7e4750-afd4-4d99-a256-02f0710a0520",
|
|
||||||
"author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
|
|
||||||
"uri": "https://example.com/actions/3e7e4750-afd4-4d99-a256-02f0710a0520",
|
|
||||||
"created_at": "2021-01-01T00:00:00.000Z",
|
|
||||||
"object": "https://example.com/publications/f08a124e-fe90-439e-8be4-15a428a72a19"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Fields
|
|
||||||
|
|
||||||
### Author
|
|
||||||
|
|
||||||
| Name | Type | Required |
|
|
||||||
| :----- | :----- | :------- |
|
|
||||||
| author | String | Yes |
|
|
||||||
|
|
||||||
URI of the [Actor](./actors) who initiated the action.
|
|
||||||
|
|
||||||
### Object
|
|
||||||
|
|
||||||
| Name | Type | Required |
|
|
||||||
| :----- | :----- | :------- |
|
|
||||||
| object | String | Yes |
|
|
||||||
|
|
||||||
URI of the object being announced. Must be of type [Note](./note)
|
|
||||||
|
|
||||||
## Types
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
interface Announce extends Entity {
|
|
||||||
type: "Announce";
|
|
||||||
author: string;
|
|
||||||
object: string;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
BIN
docs/public/assets/boosting.png
Normal file
BIN
docs/public/assets/boosting.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
|
|
@ -1,7 +1,11 @@
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> You are looking at the documentation for `Lysand 2.0`, released in March 2024 after revision of the original `Lysand 1.0` specification published in September 2023.
|
> You are looking at the documentation for `Lysand 3.0`, currently in development.
|
||||||
|
>
|
||||||
|
> Previous versions:
|
||||||
|
> - `Lysand 2.0`, released in March 2024.
|
||||||
|
> - `Lysand 1.0`, published in September 2023.
|
||||||
|
|
||||||
The Lysand Protocol is designed as a communication medium for federated applications, leveraging the HTTP stack. Its simplicity ensures ease of implementation and comprehension.
|
The Lysand Protocol is designed as a communication medium for federated applications, leveraging the HTTP stack. Its simplicity ensures ease of implementation and comprehension.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue