Begin work on new Microblogging extension

This commit is contained in:
Jesse Wierzbinski 2024-03-28 14:22:47 -10:00
parent 18e76da5b3
commit 64400c3faf
No known key found for this signature in database
4 changed files with 72 additions and 45 deletions

View 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/):
![Bottom graphics of a Mastodon post, including a "boosting" icon with numbers next to it](/assets/boosting.png)
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;
}
```

View file

@ -1,44 +1 @@
# 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;
}
```
This page has been moved to the [Microblogging Extension](../extensions/microblogging#announce).

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -1,7 +1,11 @@
# Introduction
> [!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.