* add identifier for troubleshooting pages

* mention mutes can be temporary now

* bell for notifications

* convert images to jpg and rename them

* suspensions now reversible

* unread notifications

* suspended: true

* mutes expiry

* replies_policy, type of notification

* notify

* featuredTags AP representation

* new env vars

* accounts merge

* maintenance cli

* list replies

* suspended flag

* follower sync

* minor formatting

* add note about idempotency of follow action

* account featured tags, min_id and max_id, plus normalization

* follow marcin and nightpool's suggestion

* bearcaps

* replies_policy update

* featuredtags now have a url
This commit is contained in:
trwnh 2020-12-27 00:03:55 -06:00 committed by GitHub
parent 7df49f31a1
commit bcf77cb795
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
172 changed files with 617 additions and 395 deletions

View File

@ -24,7 +24,7 @@ Similar to how blogging is the act of publishing updates to a website, **microbl
A Mastodon website can operate alone. Just like a traditional website, people sign up on it, post messages, upload pictures and talk to each other. _Unlike_ a traditional website, Mastodon websites can interoperate, letting their users communicate with each other; just like you can send an email from your Gmail account to someone from Outlook, Fastmail, Protonmail, or any other email provider, as long as you know their email address, **you can mention or message anyone on any website using their address**.
{{< figure src="/assets/image%20%289%29.png" caption="From left to right: Centralized, Federated, Distributed" >}}
{{< figure src="/assets/network-models.jpg" caption="From left to right: Centralized, Federated, Distributed" >}}

View File

@ -381,6 +381,10 @@ Regeneration of home feeds is computationally expensive, if your Sidekiq is cons
This setting has no relation to which users are considered active for the purposes of statistics, such as the Monthly Active Users number.
{{</ hint >}}
#### `ALLOWED_PRIVATE_ADDRESSES`
Comma-separated specific addresses/subnets allowed in outgoing HTTP queries.
## E-mail {#email}
* `SMTP_SERVER`
@ -444,6 +448,7 @@ You must serve the files with CORS headers, otherwise some functions of Mastodon
* `S3_SIGNATURE_VERSION`
* `S3_OVERRIDE_PATH_STYLE`
* `S3_OPEN_TIMEOUT`
* `S3_READ_TIMEOUT`
### Swift {#swift}

View File

@ -27,6 +27,8 @@ This limitation is reversible, the account can be unsilenced at any time.
A Mastodon suspension is synonymous with deletion. The account no longer appears in search, the profile page is gone, all of the posts, uploads, followers, and all other data is removed. This limitation is **irreversible**. While the account can be unsuspended, allowing the user to take control of it again, the old data is gone for good.
As of v3.3.0, suspensions are now reversible for 30 days.
## Server-wide moderation {#server-wide-moderation}
Because individually moderating a large volume of users from a misbehaving server can be exhausting, it is possible to pre-emptively moderate against all users from that particular server using a so-called **domain block**, which comes with several different levels of severity.

View File

@ -144,13 +144,26 @@ Refetch remote user data and files for one or multiple accounts.
| Option | Description |
| :--- | :--- |
| `USERNAME` | Username for the remote accout. |
| `USERNAME` | username@domain for the remote account. |
| `--all` | Can be provided instead of USERNAME to refresh all remote accounts. |
| `--domain DOMAIN` | Can be provided instead of USERNAME. Operate only on remote accounts from this DOMAIN. |
| `--concurrency N` | The number of workers to use for this task. Defaults to N=5. |
| `--verbose` | Print additional information while task is processing. |
| `--dry-run` | Print expected results only, without performing any actions. |
### `tootctl accounts merge` {#accounts-merge}
Merge two remote accounts into one. This is primarily meant to fix duplicates caused by other servers changing their domain. By default, this only works if the public key is the same, but this can be overridden.
**Version history:**\
3.3.0 - added
| Option | Description |
| :--- | :--- |
| `FROM` | username@domain for the remote account to be removed. |
| `TO` | username@domain for the remote account to be kept. |
| `--force` | Override the public key check. |
### `tootctl accounts follow` {#accounts-follow}
Force all local accounts to follow a local account specified by username.
@ -371,6 +384,14 @@ Remove all home and list feeds from Redis.
**Version history:**\
2.6.0 - added
## Maintenance CLI {#maintenance}
{{< caption-link url="https://github.com/tootsuite/mastodon/blob/master/lib/mastodon/maintenance_cli.rb" caption="lib/mastodon/maintenance\_cli.rb" >}}
### `tootctl maintenance fix-duplicates` {#maintenance-fix-duplicates}
Fix corrupted database indexes that may have been caused due to changing collation rules. Deletes or merges duplicate accounts, statuses, emojis, etc. Mastodon has to be stopped to run this task, which will take a long time and may be destructive. This is useful if your database indexes are corrupted because of issues such as <https://wiki.postgresql.org/wiki/Locale_data_changes>.
## Media CLI {#media}
{{< caption-link url="https://github.com/tootsuite/mastodon/blob/master/lib/mastodon/media_cli.rb" caption="lib/mastodon/media\_cli.rb" >}}
@ -396,13 +417,15 @@ Scans for files that do not belong to existing media attachments, and remove the
**Version history:**\
3.1.0 - added\
3.1.3 - added `--prefix`
3.1.3 - added `--prefix`\
3.3.0 - added `--fix-permissions`
| Option | Description |
| :--- | :--- |
| `--start-after` | The Paperclip attachment key where the loop will start. Use this option if the command was interrupted before. |
| `--dry-run` | Print expected results only, without performing any actions. |
| `--prefix` | Traverse only a specific prefix of files in the system. |
| `--fix-permissions` | Sets S3 ACL to be default according to environment variables. |
### `tootctl media refresh` {#media-refresh}

View File

@ -239,6 +239,20 @@ Equal to `header` if its value is a static image; different if `header` is an an
**Version history:**\
2.4.0 - added
### `suspended` {#suspended}
**Description:** An extra entity returned when an account is suspended.\
**Type:** Boolean\
**Version history:**\
3.3.0 - added
### `mute_expires_at` {#mute_expires_at}
**Description:** When a timed mute will expire, if applicable.\
**Type:** String \(ISO 8601 Datetime\)\
**Version history:**\
3.3.0 - added
## See also
{{< page-ref page="methods/accounts.md" >}}

View File

@ -31,6 +31,12 @@ menu:
**Type:** String\
**Version history:** Added in 3.0.0
### `url` {#url}
**Description:** A link to all statuses by a user that contain this hashtag.\
**Type:** String (URL)\
**Version history:** Added in 3.3.0
### `statuses_count` {#statuses_count}
**Description:** The number of authored statuses containing this hashtag.\

View File

@ -21,13 +21,25 @@ menu:
**Description:** The internal database ID of the list.\
**Type:** String \(cast from an integer, but not guaranteed to be a number\)\
**Version history:** Added in 2.1.0
**Version history:**\
2.1.0 - added
### `title` {#title}
**Description:** The user-defined title of the list.\
**Type:** String\
**Version history:** Added in 2.1.0
**Version history:**\
2.1.0 - added
### `replies_policy` {#replies_policy}
**Description:** The user-defined title of the list.\
**Type:** String (Enumerable oneOf)\
`followed` = Show replies to any followed user\
`list` = Show replies to members of the list\
`none` = Show replies to no one\
**Version history:**\
3.3.0 - added
## See also

View File

@ -72,14 +72,17 @@ menu:
**Description:** The type of event that resulted in the notification.\
**Type:** String \(Enumerable oneOf\)\
`follow` = Someone followed you\
`follow_request` = Someone requested to follow you\
`mention` = Someone mentioned you in their status\
`reblog` = Someone boosted one of your statuses\
`favourite` = Someone favourited one of your statuses\
`poll` = A poll you have voted in or created has ended\
`status` = Someone you enabled notifications for has posted a status\
**Version history:**\
0.9.9 - added\
2.8.0 - added `poll`\
3.1.0 - added `follow_request`
3.1.0 - added `follow_request`\
3.3.0 - added `status`
### `created_at` {#created_at}

View File

@ -13,6 +13,7 @@ menu:
"id": "1",
"following": true,
"showing_reblogs": true,
"notifying": false,
"followed_by": true,
"blocking": false,
"blocked_by": false,
@ -82,6 +83,13 @@ menu:
**Version history:**\
2.1.0 - added
### `notifying` {#notifying}
**Description:** Have you enabled notifications for this user?\
**Type:** Boolean\
**Version history:**\
3.3.0 - added
### `blocking`
**Description:** Are you blocking this user?\

View File

@ -402,7 +402,8 @@ View information about a profile.
**OAuth:** Public\
**Version history:**\
0.0.0 - added\
2.4.0 - returns 410 if account is suspended
2.4.0 - returns 410 if account is suspended\
3.3.0 - returns an Account with `suspended: true` instead of 410
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -524,6 +525,36 @@ Account record will be returned. Note that `acct` of local users does not includ
}
```
{{< endtab >}}
{{< tab title="Suspended user" >}}
```javascript
{
"id": "14",
"username": "stigatle",
"acct": "stigatle@quitter.no",
"display_name": "",
"locked": false,
"bot": false,
"discoverable": false,
"group": false,
"created_at": "2016-03-18T10:04:51.700Z",
"note": "",
"url": "https://quitter.no/stigatle",
"avatar": "https://mastodon.social/avatars/original/missing.png",
"avatar_static": "https://mastodon.social/avatars/original/missing.png",
"header": "https://mastodon.social/headers/original/missing.png",
"header_static": "https://mastodon.social/headers/original/missing.png",
"followers_count": 0,
"following_count": 0,
"statuses_count": 0,
"last_status_at": null,
"suspended": true,
"emojis": [],
"fields": []
}
```
{{< endtab >}}
{{< endtabs >}}
{{< endapi-method-response-example >}}
{{< api-method-response-example httpCode=401 >}}
@ -949,6 +980,60 @@ Account is suspended
{{< endapi-method-response >}}
{{< endapi-method-spec >}}
{{< endapi-method >}}
{{< api-method method="get" host="https://mastodon.example" path="/api/v1/accounts/:id/featured_tags" title="Featured tags" >}}
{{< api-method-description >}}
Tags featured by this account.
**Returns:** Array of FeaturedTag\
**OAuth:** User token + `read:accounts`\
**Version history:**\
3.3.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
{{< api-method-request >}}
{{< api-method-headers >}}
{{< api-method-parameter name="Authorization" type="string" required=true >}}
Bearer &lt;user token&gt;
{{< endapi-method-parameter >}}
{{< endapi-method-headers >}}
{{< endapi-method-request >}}
{{< api-method-response >}}
{{< api-method-response-example httpCode=200 >}}
{{< api-method-response-example-description >}}
{{< endapi-method-response-example-description >}}
```javascript
[
{
"id": "627",
"name": "nowplaying",
"statuses_count": 36,
"last_status_at": "2019-11-15T07:14:43.524Z"
}
]
```
{{< endapi-method-response-example >}}
{{< api-method-response-example httpCode=401 >}}
{{< api-method-response-example-description >}}
Invalid or missing Authorization header
{{< endapi-method-response-example-description >}}
```javascript
{
"error": "The access token is invalid"
}
```
{{< endapi-method-response-example >}}
{{< endapi-method-response >}}
{{< endapi-method-spec >}}
{{< endapi-method >}}
{{< api-method method="get" host="https://mastodon.example" path="/api/v1/accounts/:id/lists" title="Lists containing this account" >}}
{{< api-method-description >}}
@ -1120,12 +1205,13 @@ Account with given id is suspended
{{< api-method method="post" host="https://mastodon.example" path="/api/v1/accounts/:id/follow" title="Follow" >}}
{{< api-method-description >}}
Follow the given account.
Follow the given account. Can also be used to update whether to show reblogs or enable notifications.
**Returns:** Relationship\
**OAuth:** User token + `write:follows` or `follow`\
**Version history:**\
0.0.0 - added
0.0.0 - added\
3.3.0 - added `notify`
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1144,6 +1230,9 @@ Bearer &lt;user token&gt;
{{< api-method-parameter name="reblogs" type="boolean" required=false >}}
Receive this account's reblogs in home timeline? Defaults to true.
{{< endapi-method-parameter >}}
{{< api-method-parameter name="notify" type="boolean" required=false >}}
Receive notifications when this account posts a status? Defaults to false.
{{< endapi-method-parameter >}}
{{< endapi-method-form-data-parameters >}}
{{< endapi-method-request >}}
{{< api-method-response >}}
@ -1159,6 +1248,7 @@ Successfully followed, or account was already followed
"id": "3",
"following": true,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": false,
"blocked_by": false,
@ -1223,6 +1313,7 @@ Successfully unfollowed, or account was already not followed
"id": "3",
"following": false,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": false,
"blocked_by": false,
@ -1287,6 +1378,7 @@ Successfully blocked, or account was already blocked
"id": "3",
"following": false,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": true,
"blocked_by": false,
@ -1351,6 +1443,7 @@ Successfully unblocked, or account was already not blocked
"id": "3",
"following": false,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": false,
"blocked_by": false,
@ -1405,6 +1498,9 @@ Bearer &lt;user token&gt;
{{< api-method-parameter name="notifications" type="boolean" required=false >}}
Mute notifications in addition to statuses? Defaults to true.
{{< endapi-method-parameter >}}
{{< api-method-parameter name="duration" type="number" required=false >}}
How long the mute should last, in seconds. Defaults to 0 (indefinite).
{{< endapi-method-parameter >}}
{{< endapi-method-form-data-parameters >}}
{{< endapi-method-request >}}
{{< api-method-response >}}
@ -1420,6 +1516,7 @@ Successfully muted, or account was already muted. Note that you can call this AP
"id": "3",
"following": false,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": false,
"blocked_by": false,
@ -1484,6 +1581,7 @@ Successfully unmuted, or account was already unmuted
"id": "3",
"following": false,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": false,
"blocked_by": false,
@ -1548,6 +1646,7 @@ Successfully endorsed.
"id": "1",
"following": true,
"showing_reblogs": true,
"notifying": false,
"followed_by": true,
"blocking": false,
"blocked_by": false,
@ -1649,6 +1748,7 @@ Successfully unendorsed, or account was already not endorsed
"id": "1",
"following": true,
"showing_reblogs": true,
"notifying": false,
"followed_by": true,
"blocking": false,
"blocked_by": false,
@ -1725,6 +1825,7 @@ Successfully updated user note
"id": "1",
"following": true,
"showing_reblogs": true,
"notifying": false,
"followed_by": true,
"blocking": false,
"blocked_by": false,
@ -1802,6 +1903,7 @@ Sample call with id\[\]=1&id\[\]=2
"id": "1",
"following": true,
"showing_reblogs": true,
"notifying": false,
"followed_by": true,
"blocking": false,
"blocked_by": false,
@ -1815,6 +1917,7 @@ Sample call with id\[\]=1&id\[\]=2
"id": "2",
"following": false,
"showing_reblogs": false,
"notifying": false,
"followed_by": false,
"blocking": false,
"blocked_by": false,

View File

@ -12,9 +12,8 @@ menu:
**Returns:** Array of Account\
**OAuth:** User token + `read:blocks`\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ Statuses the user has bookmarked.
**Returns:** Array of Status\
**OAuth:** User token + `read:bookmarks`\
**Version history:**
- 3.1.0 - added
**Version history:**\
3.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ View domains the user has blocked.
**Returns:** Array of strings\
**OAuth:** User token + `read:blocks` or `follow`\
**Version:**
- 1.4.0 - added
**Version:**\
1.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -79,9 +78,8 @@ Block a domain to:
**Returns:** n/a\
**OAuth:** User token + ****`write:blocks` or `follow`\
**Version:**
- 1.4.0 - added
**Version:**\
1.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -156,10 +154,9 @@ If `domain` is not provided or contains spaces, the request will fail.
Remove a domain block, if it exists in the user's array of blocked domains.
**Returns:** n/a\
**OAuth:** User token + ****`write:blocks` or `follow`\
**Version history:**
- 1.4.0 - added
**OAuth:** User token + `write:blocks` or `follow`\
**Version history:**\
1.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ Accounts that the user is currently featuring on their profile.
**Returns:** Array of Account\
**OAuth:** User token + `read:accounts`\
**Version history:**
- 2.5.0 - added
**Version history:**\
2.5.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,10 +14,9 @@ Statuses the user has favourited.
**Returns:** Array of Status\
**OAuth:** User token + `read:favourites`\
**Version:**
- 0.0.0 - added
- 2.6.0 - min_id added
**Version:**\
0.0.0 - added\
2.6.0 - `min_id` added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** Array of FeaturedTag\
**OAuth:** User token + `read:accounts`\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -63,9 +62,8 @@ Invalid or missing Authorization header
**Returns:** FeaturedTag\
**OAuth:** User token + `write:accounts`\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -119,9 +117,8 @@ If `name` is not a valid hashtag, e.g. contains illegal characters or only numbe
**Returns:** empty object\
**OAuth:** User token + `write:accounts`\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -172,9 +169,8 @@ Shows your 10 most-used tags, with usage history for the past week.
**Returns:** Array of Tag with History\
**OAuth:** User token + `read:accounts`\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** Filter\
**OAuth:** User token + `read:filters`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -84,9 +83,8 @@ Invalid or missing Authorization header
**Returns:** Filter\
**OAuth:** User token + `read:filters`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -159,9 +157,8 @@ Filter ID does not exist, or is not owned by you
**Returns:** Filter\
**OAuth:** User token + `write:filters`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -259,9 +256,8 @@ If phrase or context are not provided properly
**Returns:** Filter\
**OAuth:** User token + `write:filters`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -377,9 +373,8 @@ If phrase or context are not provided properly
**Returns:** Filter\
**OAuth:** User token + `write:filters`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** Array of Account\
**OAuth:** User token + `read:follows` or `follow`\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -72,10 +71,9 @@ Invalid or missing Authorization header
**Returns:** Relationship\
**OAuth:** User token + `write:follows` or `follow`\
**Version history:**
- 0.0.0 - added
- 3.0.0 - now returns Relationship instead of nothing
**Version history:**\
0.0.0 - added\
3.0.0 - now returns Relationship instead of nothing
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -149,10 +147,9 @@ No pending follow request from that user ID
**Returns:** Relationship\
**OAuth:** User token + `write:follows` or `follow`\
**Version history:**
- 0.0.0 - added
- 3.0.0 - now returns Relationship instead of nothing
**Version history:**\
0.0.0 - added\
3.0.0 - now returns Relationship instead of nothing
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ Accounts the user has muted.
**Returns:** Array of Account\
**OAuth:** User token + `read:mutes` or `follow`\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -68,6 +67,7 @@ Link: <https://mastodon.social/api/v1/mutes?limit=2&max_id=317646>; rel="next",
"following_count": 73,
"statuses_count": 640,
"last_status_at": "2019-11-19T15:14:47.088Z",
"mute_expires_at": null,
"emojis": [],
"fields": []
},
@ -89,6 +89,7 @@ Link: <https://mastodon.social/api/v1/mutes?limit=2&max_id=317646>; rel="next",
"following_count": 0,
"statuses_count": 137,
"last_status_at": "2019-11-21T18:44:25.570Z",
"mute_expires_at": null,
"emojis": [],
"fields": [
{

View File

@ -14,9 +14,8 @@ Preferences defined by the user in their account settings.
**Returns:** Preferences by key and value\
**OAuth:** User token + `read:accounts`\
**Version history:**
- 2.8.0 - added
**Version history:**\
2.8.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -17,8 +17,8 @@ Responses are not currently documented.
**Returns:** Report\
**OAuth:** User token + `write:reports`\
**Version history:**\
1.1 - added
- 2.3.0 - add `forward` parameter
1.1 - added\
2.3.0 - add `forward` parameter
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -16,9 +16,8 @@ Accounts the user has had past positive interactions with, but is not yet follow
**Returns:** Array of Account\
**OAuth:** User token + `read`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -165,9 +164,8 @@ Remove an account from follow suggestions.
**Returns:** n/a\
**OAuth:** User token + `read`\
**Version history:**
- 2.4.3 - added
**Version history:**\
2.4.3 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -23,9 +23,8 @@ View accounts matching certain criteria for filtering, up to 100 at a time. Pagi
**Returns:** Admin::Account\
**OAuth:** User token + `admin:read:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -97,9 +96,8 @@ View admin-level information about the given account.
**Returns:** Admin::Account\
**OAuth:** User token + `admin:read:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -135,9 +133,8 @@ Perform an action against an account and log this action in the moderation histo
**Returns:** empty object\
**OAuth:** User token + `admin:write:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -190,9 +187,8 @@ Approve the given local account if it is currently pending approval.
**Returns:** Admin::Account\
**OAuth:** User token + `admin:write:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -228,9 +224,8 @@ Reject the given local account if it is currently pending approval.
**Returns:** Admin::Account\
**OAuth:** User token + `admin:write:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -266,9 +261,8 @@ Re-enable a local account whose login is currently disabled.
**Returns:** Admin::Account\
**OAuth:** User token + `admin:write:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -304,9 +298,8 @@ Unsilence a currently silenced account.
**Returns:** Admin::Account\
**OAuth:** User token + `admin:write:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -342,9 +335,8 @@ Unsuspend a currently suspended account.
**Returns:** Admin::Account\
**OAuth:** User token + `admin:write:accounts`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -384,9 +376,8 @@ View all reports. Pagination may be done with HTTP Link header in the response.
**Returns:** Array of Admin::Report\
**OAuth:** User token + `admin:read:reports`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -425,9 +416,8 @@ View information about the report with the given ID.
**Returns:** Admin::Report\
**OAuth:** User token + `admin:read:reports`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -463,9 +453,8 @@ Claim the handling of this report to yourself.
**Returns:** Admin::Report\
**OAuth:** User token + `admin:write:reports`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -501,9 +490,8 @@ Unassign a report so that someone else can claim it.
**Returns:** Admin::Report\
**OAuth:** User token + `admin:write:reports`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -539,9 +527,8 @@ Mark a report as resolved with no further action taken.
**Returns:** Admin::Report\
**OAuth:** User token + `admin:write:reports`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -577,9 +564,8 @@ Reopen a currently closed report.
**Returns:** Admin::Report\
**OAuth:** User token + `admin:write:reports`\
**Version history:**
- 2.9.1 - added
**Version history:**\
2.9.1 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -15,10 +15,9 @@ Create a new application to obtain OAuth2 credentials.
**Returns:** Application, with `client_id` and `client_secret`\
**OAuth:** Public\
**Version history:**
- 0.0.0 - added
- 2.7.2 - now returns vapid_key
**Version history:**\
0.0.0 - added\
2.7.2 - now returns `vapid_key`
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -81,10 +80,9 @@ Confirm that the app's OAuth2 credentials work.
**Returns:** Application\
**OAuth level:** App token\
**Version history:**
- 2.0.0 - added
- 2.7.2 - now returns vapid_key
**Version history:**\
2.0.0 - added\
2.7.2 - now returns `vapid_key`
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -189,6 +189,3 @@ If you provide a token you do not own, or no token at all, the API call will ret
{{< endapi-method-spec >}}
{{< endapi-method >}}
##

View File

@ -15,11 +15,10 @@ Information about the server.
**Returns:** Instance\
**OAuth:** Public\
**Version history:**
- 1.1.0 - added
- 3.0.0 - requires user token if instance is in whitelist mode
- 3.1.4 - added `invites_enabled` to response
**Version history:**\
1.1.0 - added\
3.0.0 - requires user token if instance is in whitelist mode\
3.1.4 - added `invites_enabled` to response
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -97,10 +96,9 @@ Domains that this instance is aware of.
**Returns:** Array of String\
**OAuth:** Public\
**Version history:**
- 2.1.2 - added
- 3.0.0 - requires user token if instance is in whitelist mode
**Version history:**\
2.1.2 - added\
3.0.0 - requires user token if instance is in whitelist mode
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -125,10 +123,9 @@ Instance activity over the last 3 months, binned weekly.
**Returns:** Array of Activity\
**OAuth:** Public\
**Version history:**
- 2.1.2 - added
- 3.0.0 - requires user token if instance is in whitelist mode
**Version history:**\
2.1.2 - added\
3.0.0 - requires user token if instance is in whitelist mode
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -16,10 +16,9 @@ Returns custom emojis that are available on the server.
**Returns:** Array of Emoji\
**OAuth:** Public\
**Version history:**
- 2.0.0 - added
- 3.0.0 - optional `category` added to response
**Version history:**\
2.0.0 - added\
3.0.0 - optional `category` added to response
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ List accounts visible in the directory.
**Returns:** Array of Account\
**OAuth:** Public\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ Tags that are being used more frequently within the past week.
**Returns:** Array of Tag with History\
**OAuth:** Public\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -23,9 +23,8 @@ Add a Web Push API subscription to receive notifications. Each access token can
**Returns:** PushSubscription\
**OAuth:** User token + `push`\
**Version history:**
- 2.4.0 - added
**Version history:**\
2.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -95,9 +94,8 @@ View the PushSubscription currently associated with this access token.
**Returns:** PushSubscription\
**OAuth:** User token + `push`\
**Version history:**
- 2.4.0 - added
**Version history:**\
2.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -152,9 +150,8 @@ Updates the current push subscription. Only the data part can be updated. To cha
**Returns:** PushSubscription\
**OAuth:** User token + `push`\
**Version history:**
- 2.4.0 - added
**Version history:**\
2.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -228,9 +225,8 @@ Removes the current Web Push API subscription.
**Returns:** none\
**OAuth:** User token + `push`\
**Version history:**
- 2.4.0 - added
**Version history:**\
2.4.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** OEmbed metadata\
**OAuth:** Public\
**Version history:**
- 1.0.0 - added
**Version history:**\
1.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** custom response defined by provider\
**OAuth:** Public\
**Version history:**
- 2.8.0 - added
**Version history:**\
2.8.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,11 +12,10 @@ menu:
**Returns:** Results\
**OAuth:** User token + `read:search`\
**Version history:**
- 2.4.1 - added, limit hardcoded to 5
- 2.8.0 - add type, limit, offset, min_id, max_id, account_id
- 3.0.0 - add `exclude_unreviewed` param
**Version history:**\
2.4.1 - added, limit hardcoded to 5\
2.8.0 - add type, limit, offset, min_id, max_id, account_id\
3.0.0 - add `exclude_unreviewed` param
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -153,10 +152,10 @@ Invalid or missing Authorization header
**Returns:** Results, but hashtags is an array of strings instead of an array of Tag.\
**OAuth:** User token + `read:search`\
**Version history:**\
1.1 - added, limit hardcoded to 5
- 1.5.0 - now requires authentication
- 2.8.0 - added limit, pagination, and account options
- 3.0.0 - removed; use v2 instead
1.1 - added, limit hardcoded to 5\
1.5.0 - now requires authentication\
2.8.0 - added limit, pagination, and account options\
3.0.0 - removed; use v2 instead
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -15,11 +15,10 @@ Post a new status.
**Returns:** Status. When `scheduled_at` is present, ScheduledStatus is returned instead.\
**OAuth:** User + `write:statuses`\
**Version history:**
- 0.0.0 - added
- 2.7.0 - `scheduled_at` added
- 2.8.0 - `poll` added
**Version history:**\
0.0.0 - added\
2.7.0 - `scheduled_at` added\
2.8.0 - `poll` added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -130,10 +129,9 @@ View information about a status.
**Returns:** Status\
**OAuth:** Public for public statuses, user token + `read:statuses` for private statuses\
**Version history:**
- 0.0.0 - added
- 2.7.0 - public statuses no longer require token
**Version history:**\
0.0.0 - added\
2.7.0 - public statuses no longer require token
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -254,10 +252,9 @@ Delete one of your own statuses.
**Returns:** Status with source `text` and `media_attachments` or `poll`\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 0.0.0 - added
- 2.9.0 - return source properties, for use with delete and redraft
**Version history:**\
0.0.0 - added\
2.9.0 - return source properties, for use with delete and redraft
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -456,9 +453,8 @@ View statuses above and below this status in the thread.
**Returns:** Context\
**OAuth:** Public for public statuses. User token + `read:statuses` for private statuses.\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -540,8 +536,8 @@ View who boosted a given status.
**Returns:** Array of Account\
**OAuth:** Public
Version history:
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -593,9 +589,8 @@ View who favourited a given status.
**Returns:** Array of Account\
**OAuth:** Public\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -647,9 +642,8 @@ Add a status to your favourites list.
**Returns:** Status\
**OAuth:** User token + `write:favourites`\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -721,9 +715,8 @@ Remove a status from your favourites list.
**Returns:** Status\
**OAuth:** User token + `write:favourites`\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -797,10 +790,9 @@ Reshare a status.
**Returns:** Status\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 0.0.0 - added
- 2.8.0 - add visibility parameter
**Version history:**\
0.0.0 - added\
2.8.0 - add `visibility` parameter
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -890,9 +882,8 @@ Undo a reshare of a status.
**Returns:** Status\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 0.0.0 - added
**Version history:**\
0.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -966,9 +957,8 @@ Privately bookmark a status.
**Returns:** Status\
**OAuth:** User token + `write:bookmarks`\
**Version history:**
- 3.1.0 - added
**Version history:**\
3.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1040,9 +1030,8 @@ Remove a status from your private bookmarks.
**Returns:** Status\
**OAuth:** User token + `write:bookmarks`\
**Version history:**
- 3.1.0 - added
**Version history:**\
3.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1114,9 +1103,8 @@ Do not receive notifications for the thread that this status is part of. Must be
**Returns:** Status\
**OAuth:** User token + `write:mutes`\
**Version history:**
- 1.4.2 - added
**Version history:**\
1.4.2 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1188,9 +1176,8 @@ Start receiving notifications again for the thread that this status is part of.
**Returns:** Status\
**OAuth:** User token + `write:mutes`\
**Version history:**
- 1.4.2 - added
**Version history:**\
1.4.2 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1262,9 +1249,8 @@ Feature one of your own public statuses at the top of your profile.
**Returns:** Status\
**OAuth:** User token + `write:accounts`\
**Version history:**
- 1.6.0 - added
**Version history:**\
1.6.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1372,9 +1358,8 @@ Unfeature a status from the top of your profile.
**Returns:** Status\
**OAuth:** User token + `write:accounts`\
**Version history:**
- 1.6.0 - added
**Version history:**\
1.6.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -1459,11 +1444,10 @@ Status does not exist, is deleted, or is private
**Returns:** Card\
**OAuth:** Public\
**Version history:**
- 0.0.0 - added
- 2.6.0 - deprecated in favor of card property inlined on Status entity
- 3.0.0 - removed
**Version history:**\
0.0.0 - added\
2.6.0 - deprecated in favor of card property inlined on Status entity\
3.0.0 - removed
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -393,11 +393,5 @@ File or file type is unsupported or invalid
Server-side preview images are never cropped, to support a variety of apps and user interfaces. Therefore, the cropping must be done by those apps. To crop intelligently, focal points can be used to ensure a certain section of the image is always within the cropped viewport. [See this guide on how focal points are defined.](https://github.com/jonom/jquery-focuspoint#1-calculate-your-images-focus-point) In summary, floating points range from -1.0 to 1.0, left-to-right or bottom-to-top. \(0,0\) is the center of the image. \(0.5, 0.5\) would be in the center of the upper-right quadrant. \(-0.5, -0.5\) would be in the center of the lower-left quadrant. For reference, thumbnails in the Mastodon frontend are most commonly 16:9.
{{< figure src="/assets/image%20%2856%29.png" caption="A demonstration of various focal points and their coordinates." >}}
<!--
* These appear to be a duplicate, can those be removed?
* TODO: Check if there are any hugo functions for static images
-->
{{< figure src="/assets/image%20%2856%29.png" caption="A demonstration of various focal points and their coordinates." >}}
{{< figure src="/assets/focal-points.jpg" caption="A demonstration of various focal points and their coordinates." >}}

View File

@ -14,9 +14,8 @@ menu:
**Returns:** Poll\
**OAuth:** Public if parent status is public. User token + `read:statuses` if parent status is private.\
**Version history:**
- 2.8.0 - added
**Version history:**\
2.8.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -80,9 +79,8 @@ Poll does not exist, or poll's parent status is private
**Returns:** Poll\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 2.8.0 - added
**Version history:**\
2.8.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** Array of ScheduledStatus\
**OAuth:** User token + `read:statuses`\
**Version history:**
- 2.7.0 - added
**Version history:**\
2.7.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -86,9 +85,8 @@ Return results immediately newer than ID
**Returns:** ScheduledStatus\
**OAuth:** User token + `read:statuses`\
**Version history:**
- 2.7.0 - added
**Version history:**\
2.7.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -160,9 +158,8 @@ Bearer &lt;user token&gt;
**Returns:** ScheduledStatus\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 2.7.0 - added
**Version history:**\
2.7.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -250,9 +247,8 @@ ISO 8601 Datetime at which the status will be published. Must be at least 5 minu
**Returns:** empty object\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 2.7.0 - added
**Version history:**\
2.7.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -13,13 +13,13 @@ menu:
**Returns:** Array of Status\
**OAuth:** Public. Requires app token + `read:statuses` if the instance has disabled public preview.\
**Version history:**
- 0.0.0 - added
- 2.3.0 - added `only_media`
- 2.6.0 - add `min_id`
- 3.0.0 - auth is required if public preview is disabled
- 3.1.4 - added `remote`
**Version history:**\
0.0.0 - added\
2.3.0 - added `only_media`\
2.6.0 - add `min_id`\
3.0.0 - auth is required if public preview is disabled\
3.1.4 - added `remote`\
3.3.0 - both `min_id` and `max_id` can be used at the same time now
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -85,12 +85,12 @@ View public statuses containing the given hashtag.
**Returns:** Array of Status\
**OAuth:** Public. Requires app token + `read:statuses` if the instance has disabled public preview.\
**Version history:**
- 0.0.0 - added
- 2.3.0 - added `only_media`
- 2.6.0 - add `min_id`
- 3.0.0 - auth is required if public preview is disabled
**Version history:**\
0.0.0 - added\
2.3.0 - added `only_media`\
2.6.0 - add `min_id`\
3.0.0 - auth is required if public preview is disabled\
3.3.0 - both `min_id` and `max_id` can be used at the same time now
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -196,10 +196,10 @@ View statuses from followed users.
**Returns:** Array of Status\
**OAuth:** User + `read:statuses`\
**Version history:**
- 0.0.0 - added
- 2.6.0 - add `min_id`
**Version history:**\
0.0.0 - added\
2.6.0 - add `min_id`\
3.3.0 - both `min_id` and `max_id` can be used at the same time now
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -278,10 +278,10 @@ View statuses in the given list timeline.
**Returns:** Array of Status\
**OAuth:** User token + `read:lists`\
**Version history:**
- 2.1.0 - added
- 2.6.0 - add `min_id`
**Version history:**\
2.1.0 - added\
2.6.0 - add `min_id`\
3.3.0 - both `min_id` and `max_id` can be used at the same time now
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -352,9 +352,9 @@ View statuses with a "direct" privacy, from your account or in your notification
**Returns:** Array of Status\
**OAuth:** User token + `read:statuses`\
**Version history:**\
x.x.x - added
- 2.6.0 - add `min_id`. deprecated in favor of conversations
- 3.0.0 - removed
x.x.x - added\
2.6.0 - add `min_id`. deprecated in favor of conversations\
3.0.0 - removed
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -14,9 +14,8 @@ menu:
**Returns:** Array of Conversation\
**OAuth:** User token + `read:statuses`\
**Version history:**
- 2.6.0 - added
**Version history:**\
2.6.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -113,9 +112,8 @@ Invalid or missing Authorization header
**Returns:** empty object\
**OAuth:** User token + `write:conversations`\
**Version history:**
- 2.6.0 - added
**Version history:**\
2.6.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -176,9 +174,8 @@ The conversation does not exist, or is not owned by you.
**Returns:** Conversation\
**OAuth:** User token + `write:conversations`\
**Version history:**
- 2.6.0 - added
**Version history:**\
2.6.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -16,9 +16,8 @@ Fetch all lists that the user owns.
**Returns:** Array of List\
**OAuth:** User token + `read:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -41,7 +40,13 @@ Use id as a parameter for related API calls.
[
{
"id": "12249",
"title": "Friends"
"title": "Friends",
"replies_policy": "followed"
},
{
"id": "13585",
"title": "test",
"replies_policy": "list"
}
]
```
@ -65,13 +70,12 @@ Invalid or missing Authorization header
{{< api-method method="get" host="https://mastodon.example" path="/api/v1/lists/:id" title="Show a single list" >}}
{{< api-method-description >}}
Fetch the list with the given ID. Used for verifying the title of a list.
Fetch the list with the given ID. Used for verifying the title of a list, and which replies to show within that list.
**Returns:** List\
**OAuth:** User token + `read:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -98,7 +102,8 @@ The list 12249 exists and is owned by you
```javascript
{
"id": "12249",
"title": "Friends"
"title": "Friends",
"replies_policy": "followed"
}
```
{{< endapi-method-response-example >}}
@ -138,9 +143,9 @@ Create a new list.
**Returns:** List\
**OAuth:** User token + `write:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added\
3.3.0 - added `replies_policy`
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -154,6 +159,9 @@ Bearer &lt;user token&gt;
{{< api-method-parameter name="title" type="string" required=true >}}
The title of the list to be created.
{{< endapi-method-parameter >}}
{{< api-method-parameter name="replies_policy" type="string" required=false >}}
Enumerable oneOf `followed` `list` `none`. Defaults to `list`.
{{< endapi-method-parameter >}}
{{< endapi-method-form-data-parameters >}}
{{< endapi-method-request >}}
{{< api-method-response >}}
@ -167,7 +175,8 @@ A list was created successfully with title=test
```javascript
{
"id": "13585",
"title": "test"
"title": "test",
"replies_policy": "list"
}
```
{{< endapi-method-response-example >}}
@ -190,13 +199,13 @@ Invalid or missing Authorization header
{{< api-method method="put" host="https://mastodon.example" path="/api/v1/lists/:id" title="Update a list" >}}
{{< api-method-description >}}
Change the title of a list.
Change the title of a list, or which replies to show.
**Returns:** List\
**OAuth:** User token + `write:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added\
3.3.0 - added `replies_policy`
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -212,9 +221,12 @@ Bearer &lt;user token&gt;
{{< endapi-method-parameter >}}
{{< endapi-method-headers >}}
{{< api-method-form-data-parameters >}}
{{< api-method-parameter name="title" type="string" required=true >}}
{{< api-method-parameter name="title" type="string" required=false >}}
The title of the list to be updated.
{{< endapi-method-parameter >}}
{{< api-method-parameter name="replies_policy" type="string" required=false >}}
Enumerable oneOf `followed` `list` `none`.
{{< endapi-method-parameter >}}
{{< endapi-method-form-data-parameters >}}
{{< endapi-method-request >}}
{{< api-method-response >}}
@ -228,7 +240,8 @@ The title of list 13585 was successfully updated to title=testing
```javascript
{
"id": "13585",
"title": "testing"
"title": "testing",
"replies_policy": "list"
}
```
{{< endapi-method-response-example >}}
@ -266,9 +279,8 @@ If the title is blank
**Returns:** empty object\
**OAuth:** User token + `write:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -334,9 +346,8 @@ ID does not exist or is not owned by you
**Returns:** Array of Account\
**OAuth:** User token + `read:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -430,9 +441,8 @@ Add accounts to the given list. Note that the user must be following these accou
**Returns:** empty object\
**OAuth:** User token + `write:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -510,9 +520,8 @@ Remove accounts from the given list.
**Returns:** empty object\
**OAuth:** User token + `write:lists`\
**Version history:**
- 2.1.0 - added
**Version history:**\
2.1.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -12,9 +12,8 @@ menu:
**Returns:** Marker\
**OAuth:** User token + `read:statuses`\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}
@ -74,9 +73,8 @@ Invalid or missing Authorization header
**Returns:** Marker\
**OAuth:** User token + `write:statuses`\
**Version history:**
- 3.0.0 - added
**Version history:**\
3.0.0 - added
{{< endapi-method-description >}}
{{< api-method-spec >}}

View File

@ -102,7 +102,9 @@ Contains definitions for Mastodon features.
* toot:blurhash
* toot:focalPoint
* toot:featured
* toot:featuredTags
* toot:discoverable
* toot:suspended
* toot:votersCount
### ActivityStreams extensions \(`as:`\) {#as}
@ -186,6 +188,29 @@ What is known in Mastodon as “pinned toots”, or statuses that are always fea
}
```
### Featured tags {#featuredTags}
Mastodon allows users to feature specific hashtags on their profile for easy browsing, as a discoverability mechanism. This is implemented using an extra property `featuredTags` on the actor object that points to a `Collection` of `Hashtag` objects specifically.
```javascript
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"toot": "http://joinmastodon.org/ns#",
"featuredTags": {
"@id": "toot:featuredTags",
"@type": "@id"
}
}
],
"id": "https://example.com/@alice",
"type": "Person",
"featuredTags": "https://example.com/@alice/collections/tags"
}
```
### Custom emojis {#emoji}
Mastodon supports arbitrary emojis, that is, small images uploaded by admins and invokable via shortcodes. For this, an `Emoji` type is used. These emojis are listed in the `tag` property just like `Mention` and `Hashtag` objects, since they are entities that affect how the text is rendered. Example:
@ -356,8 +381,66 @@ Mastodon allows users to opt-in or opt-out of discoverability features like the
}
```
### Suspended flag {#suspended}
Mastodon reports whether a user was locally suspended, for better handling of these accounts. Suspended accounts in Mastodon return empty data. If a remote account is marked as suspended, it cannot be unsuspended locally. Suspended accounts can be targeted by activities such as Update, Undo, Reject, and Delete. This functionality is implemented using an extra property `suspended` on objects. Example:
```javascript
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"toot": "http://joinmastodon.org/ns#",
"suspended": "toot:suspended"
}
],
"id": "https://example.com/@eve",
"type": "Person",
"suspended": true
}
```
## Other functionality
### Secure mode {#secure-mode}
When a Mastodon server runs in secure mode, all cross-server HTTP requests to it must be signed (in other words, even `GET` requests to public resources). That way, the Mastodon server can choose to reject requests from servers it has blocked and avoid "leaking" public information. Mastodon itself uses a dedicated system actor to sign such HTTP requests.
When a Mastodon server runs in secure mode, all cross-server HTTP requests to it must be signed (in other words, even `GET` requests to public resources). That way, the Mastodon server can choose to reject requests from servers it has blocked and avoid "leaking" public information. Mastodon itself uses a dedicated system actor to sign such HTTP requests. See [Security](../security) for more details on HTTP signatures.
Secure mode is the foundation upon which "limited federation mode" is built. A Mastodon server in limited federation mode will only federate with servers its admin has explicitly allowed, and reject all other requests.
### Follower synchronization mechanism
Mastodon has a concept of "followers-only" posts, but expanding the followers collection is currently handled at the destination rather than at the origin (i.e., not with explicit addressing). Therefore, a mechanism to detect synchronization issues and correct them is needed. This mechanism must work on partial followers collections, rather than the full collection (which may not be public information).
When delivering a message to a remote user, an optional `Collection-Synchronization` HTTP header is attached, following the same syntax as the `Signature` header, with the following attributes:
- `collectionId` = MUST be the sender's `followers` collection
- `url` = a URL to a partial collection containing the identifiers of the sender's followers residing on the receiver's instance. MUST reside on the same domain as the actor itself, and SHOULD be only accessible with a signed query from the receiver's instance
- `digest` = hexadecimal representation of the XORed SHA256 digests of each of the identifiers in the partial collection
Example:
```http
POST https://mastodon.social/users/foo/inbox
Collection-Synchronization:
collectionId="https://social.sitedethib.com/users/Thib/followers",
url="https://social.sitedethib.com/users/Thib/followers_synchronization",
digest="b08ab6951c7d6cc2b91e17ebd9557da7fae02489728e9332fcb3a97748244d50"
```
When a remote user attempts to GET the partial collection `url`, this request must be signed with HTTP signatures. Example:
```http
GET https://social.sitedethib.com/users/Thib/followers_synchronization
Signature: ... # a signature from an account on mastodon.social
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://social.sitedethib.com/users/Thib/followers?domain=mastodon.social",
"type": "OrderedCollection",
"orderedItems": [
"https://mastodon.social/users/Gargron"
]
}
```

View File

@ -0,0 +1,29 @@
---
title: Bearcaps
description: A URI scheme combining URLs with a Bearer token needed to access them.
menu:
docs:
weight: 60
parent: spec
---
## What are bearcaps? {#intro}
In certain cases, resources may not be publically available and may require a token to successfully fetch them. This is typically done by using an HTTP `Authorization` header containing a `Bearer` token, like so:
```http
GET https://example.com/foo
Authorization: Bearer <token>
```
Bearcaps allow for a way to link to a resource with the token included, like so:
```
bear:?t=<token>&u=https://example.com/foo'
```
To translate a bearcap to an HTTP request, simply make a request to the `u` parameter and attach the `t` parameter as a `Bearer` token in the `Authorization` header.
## How are bearcaps used in Mastodon? {#usage}
As of v3.3.0, Mastodon supports dereferencing bearcaps in a received Activity. Bearcap are not used for sending any Activity yet.

View File

@ -23,9 +23,9 @@ The three parts of the `Signature:` header can be broken down like so:
```http
Signature:
keyId="https://my-example.com/actor#main-key",
headers="(request-target) host date",
signature="Y2FiYW...IxNGRiZDk4ZA=="
keyId="https://my-example.com/actor#main-key",
headers="(request-target) host date",
signature="Y2FiYW...IxNGRiZDk4ZA=="
```
The `keyId` should correspond to the actor and the key being used to generate the `signature`, whose value is equal to all parameters in `headers` concatenated together and signed by the key, then Base64-encoded. See [ActivityPub &gt; Public key]({{< relref "activitypub.md#public-key" >}}) for more information on actor keys. An example key looks like this:

View File

@ -9,13 +9,13 @@ menu:
## Generating invites {#invites}
{{< figure src="/assets/image%20%2862%29.png" caption="Invite people from your account&apos;s settings" >}}
{{< figure src="/assets/invites.jpg" caption="Invite people from your account&apos;s settings" >}}
Invite links can be generated and shared with other people, and some servers require invites in order to register for an account. When generating an invite link, you can set the max uses to limit how many times a certain link is used, or how long it has been active. Invite links can be deactivated at any time.
## Follows and followers {#relationships}
{{< figure src="/assets/image%20%2849%29.png" caption="Mutuals who have not moved their account, sorted by last activity" >}}
{{< figure src="/assets/relationships.jpg" caption="Mutuals who have not moved their account, sorted by last activity" >}}
Within settings, you can find a relationship manager that lets you filter and sort through the profiles that you are connected to, based on different criteria:
@ -35,7 +35,7 @@ From the account settings, you can change your email address, set a new password
### Keybase identity verification {#keybase}
{{< figure src="/assets/image%20%2860%29.png" caption="An identity proof on a profile" >}}
{{< figure src="/assets/keybase.jpg" caption="An identity proof on a profile" >}}
First, sign up for Keybase and generate or upload a GPG public key to your Keybase account. Next, go to "prove more identities". Find your instance if it is available, and if not, contact Keybase for help. Select your Mastodon domain and enter your username. You will be able to prove your identity by authorizing with your Mastodon account and posting a proof message. Once you do this, the identity proof will be established, and your profile will show Keybase as a proven identity.

View File

@ -11,25 +11,25 @@ menu:
### Featured hashtags {#featured-tags}
{{< figure src="/assets/image%20%2858%29.png" caption="A featured hashtag showing last usage date and total usage." >}}
{{< figure src="/assets/featured-tags.jpg" caption="A featured hashtag showing last usage date and total usage." >}}
You can choose to feature certain hashtags that you use often. Go to Settings &gt; Profile &gt; Featured hashtags to manage which hashtags you are currently featuring. Once featured, a link to the hashtag will be shown on your profile, with the date of the last time it was used in a status, as well as the total number of statuses in which it was used.
### Featured profiles {#featured-profiles}
{{< figure src="/assets/image%20%2833%29.png" caption="Four randomly-selected featured profiles." >}}
{{< figure src="/assets/featured-profiles.jpg" caption="Four randomly-selected featured profiles." >}}
You can choose to feature profiles of people that you are following. Go to that person's profile dropdown menu and click "Feature on profile". When you feature a profile, a link to their profile will appear on your profile, under a section titled "your choices". Up to 4 profiles will be shown at a time, and these profiles are selected randomly from your pool of featured profiles every time the page is loaded.
## Pinned posts {#pinned}
{{< figure src="/assets/image%20%2837%29.png" caption="A pinned toot by mastodon.social/@gargron" >}}
{{< figure src="/assets/pinned.jpg" caption="A pinned toot by mastodon.social/@gargron" >}}
You can choose to feature up to 5 of your own public posts at the top of your profile. Go to the status dropdown menu and click "Pin on profile". When you pin a toot, it will appear at the top of your "toots" tab, before all other chronological status updates.
## Profile directory {#directory}
{{< figure src="/assets/image%20%2831%29.png" caption="Profile directory as seen from mastodon.social" >}}
{{< figure src="/assets/directory.jpg" caption="Profile directory as seen from mastodon.social" >}}
The profile directory shows all accounts that have opted into being shown in the directory, and can be used to quickly find profiles that you may be interested in following.

View File

@ -9,11 +9,11 @@ menu:
## Remote interactions on another Mastodon site {#interact}
{{< figure src="/assets/image%20%2863%29.png" caption="An example of a post&apos;s public permalink on a Mastodon site." >}}
{{< figure src="/assets/status-permalink.jpg" caption="An example of a post&apos;s public permalink on a Mastodon site." >}}
When you are browsing a remote site powered by Mastodon, clicking on any of the interaction buttons will load a dialog that will redirect you to your local site.
{{< figure src="/assets/image%20%288%29.png" caption="A remote interaction dialog for replying to a toot." >}}
{{< figure src="/assets/external-reply.jpg" caption="A remote interaction dialog for replying to a toot." >}}
## Signing into a client app {#apps}

View File

@ -11,11 +11,11 @@ menu:
It is possible to filter statuses for specific keywords and phrases so that they can be hidden automatically.
{{< figure src="/assets/image%20%2848%29.png" caption="A sample of active filters for various keywords in different contexts." >}}
{{< figure src="/assets/filter-list.jpg" caption="A sample of active filters for various keywords in different contexts." >}}
To create or manage your filters, go to Settings &gt; Filters. The "Add new filter" button will let you create a new filter, and existing filters can be edited or deleted. Your existing filters will be summarized in a table.
{{< figure src="/assets/image%20%2814%29.png" caption="Filters can have an expiry date, specific contexts, server-side drop, and use word boundaries." >}}
{{< figure src="/assets/filter-edit.jpg" caption="Filters can have an expiry date, specific contexts, server-side drop, and use word boundaries." >}}
Filters have the following settings:
@ -46,7 +46,7 @@ Filters normally apply to any status that contains the included characters, rega
## User-level actions {#blocking-and-muting}
{{< figure src="/assets/image%20%2824%29.png" caption="The user dropdown menu offers various actions." >}}
{{< figure src="/assets/profile-dropdown.jpg" caption="The profile dropdown menu offers various actions." >}}
### Hiding boosts {#hide-boosts}
@ -54,7 +54,7 @@ If you hide boosts from someone, you wont see their boosts in your home feed.
### Muting {#mute}
{{< figure src="/assets/image%20%2852%29.png" caption="Sample of muted accounts." >}}
{{< figure src="/assets/muted.jpg" caption="Sample of muted accounts." >}}
When muting, you have the option to mute notifications from them or not. Muting without muting notifications hides the user from your view:
@ -65,11 +65,13 @@ When muting, you have the option to mute notifications from them or not. Muting
If you choose to also mute notifications from them, you will additionally not see notifications from that user.
Mutes can also have an optional duration, after which they will expire.
The user has no way of knowing they have been muted.
### Blocking {#block}
{{< figure src="/assets/image%20%2836%29.png" caption="Sample of blocked accounts." >}}
{{< figure src="/assets/blocked.jpg" caption="Sample of blocked accounts." >}}
Blocking hides a user from your view:
@ -88,11 +90,11 @@ Additionally, on the blocked users side:
If you and the blocked user are on the same server, the blocked user will not be able to view your posts on your profile while logged in.
### Hiding an entire server {#hide-domain}
### Hiding an entire server {#block-domain}
![](/assets/image%20%2861%29.png)
![](/assets/block-domain.jpg)
If you hide an entire server:
If you block an entire server:
* You will not see posts from that server on the public timelines
* You wont see other peoples boosts of that server in your home feed
@ -101,7 +103,7 @@ If you hide an entire server:
## Reporting problematic content to moderators {#report}
{{< figure src="/assets/image%20%283%29.png" caption="The report modal allows selecting example statuses, adding a note, and forwarding reports." >}}
{{< figure src="/assets/report-modal.jpg" caption="The report modal allows selecting example statuses, adding a note, and forwarding reports." >}}
If you see a status or user that is violating the rules of your website, you can report that user to your site's moderators. Clicking the "report" option on the user dropdown or status dropdown will open the report modal. Here, you can \(and should\) add a note about why you are reporting this account. You can attach certain problematic statuses for additional context on why you are reporting the account, and if their conduct is violating the rules of the remote website, you can also choose to forward the report to their site's moderators.

View File

@ -9,7 +9,7 @@ menu:
## Exporting your information {#export}
{{< figure src="/assets/image%20%2835%29.png" caption="The data export page in settings" >}}
{{< figure src="/assets/export.jpg" caption="The data export page in settings" >}}
At any time you want, you can go to Settings &gt; Export and download a CSV file for your current followed accounts, your currently created lists, your currently blocked accounts, your currently muted accounts, and your currently blocked domains. Your following, blocking, muting, and domain-blocking lists can be imported at Settings &gt; Import, where they can either be merged or overwritten.
@ -21,25 +21,25 @@ From the bottom of Settings &gt; Account, you can find options related to accoun
### Profile redirect {#redirect}
{{< figure src="/assets/image%20%2853%29.png" caption="Profile redirect form" >}}
{{< figure src="/assets/account-redirect.jpg" caption="Profile redirect form" >}}
Redirecting your account disables posting from that account and displays a "profile moved" notice indicating your new account. Anyone viewing your profile can see this notice and will know to follow you at your new account. Following redirected accounts is not possible. The redirect can be canceled at any time.
### Profile move {#move}
{{< figure src="/assets/image%20%2847%29.png" caption="Profile move form" >}}
{{< figure src="/assets/account-move.jpg" caption="Profile move form" >}}
Moving your account is the same as redirecting your account, but it will also irreversibly force everyone to unfollow your current account and follow your new account, if their software supports the Move activity. Your toots will not be moved, due to technical limitations. There is also a very heavy cooldown period in which you cannot migrate again, so be very careful before using this option!
### Account aliases {#aliases}
{{< figure src="/assets/image%20%2840%29.png" caption="Alias management screen" >}}
{{< figure src="/assets/account-aliases.jpg" caption="Alias management screen" >}}
Profile moves can only be initiated when your two accounts have been aliased. Account aliases are currently not used for anything other than profile moves, where you will need to set your old account as an alias of your new account before initiating the move. Setting aliases is harmless and reversible on its own.
## Deleting your account {#delete}
{{< figure src="/assets/image%20%2816%29.png" caption="Account deletion form" >}}
{{< figure src="/assets/account-delete.jpg" caption="Account deletion form" >}}
From the bottom of Settings &gt; Account, you can find the form to delete your account. Deleting your account is irreversible, and will cause both your profile and username to become forever unusable.

View File

@ -9,7 +9,7 @@ menu:
## Browsing content through public timelines {#timelines}
{{< figure src="/assets/image%20%2830%29.png" caption="Posts within a public timeline" >}}
{{< figure src="/assets/timeline.jpg" caption="Posts within a public timeline" >}}
To allow you to discover potentially interesting content, Mastodon provides a way to browse all public posts. Well, there is no global shared state between all servers, so there is no way to browse _all_ public posts. When you browse the **federated timeline**, you see all public posts that the server you are on knows about. There are various ways your server may discover posts, but the bulk of them will be from people that other users on your server follow.
@ -17,7 +17,7 @@ There is a way to filter the federated timeline to view only public posts create
## Interacting with people's posts {#actions}
{{< figure src="/assets/image%20%2821%29.png" caption="An expanded view can be loaded by clicking a status in the timeline." >}}
{{< figure src="/assets/status.jpg" caption="An expanded view can be loaded by clicking a status in the timeline." >}}
You can perform quick actions on a post directly from the timeline, or you can click on the post to load an expanded view that shows extra information, such as a full timestamp, interaction counts, and threaded replies, if any. The following actions can be performed on a post:
@ -29,7 +29,7 @@ You can perform quick actions on a post directly from the timeline, or you can c
## Notifications {#notifications}
{{< figure src="/assets/image%20%2850%29.png" caption="Notifications column" >}}
{{< figure src="/assets/notifications.jpg" caption="Notifications column" >}}
When other people interact with you or your posts, you will receive a notification depending on the type of the event. Your notifications column allows you to view all notifications in the same stream, or to filter for specific types of notifications:
@ -37,11 +37,14 @@ When other people interact with you or your posts, you will receive a notificati
* **Favourites:** received when someone has favourited one of your posts.
* **Boosts:** received when someone has boosted one of your posts.
* **Polls:** Received when a poll that you have voted in or created has ended.
* **Statuses:** Received when a user you have enabled notifications for posts a status.
* **Follows:** Received when someone has followed your profile.
When unread notifications are present, a checkmark will appear in the column header. Clicking this checkmark will mark notifications as read.
## Following profiles {#follow}
![](/assets/image%20%2811%29.png)
![](/assets/profile.jpg)
As long as you encounter a person within your apps user interface, e.g. the web interface on your home server, or your mobile app, you can just click “follow” and you wont notice a difference if that person is on your server or not.
@ -49,17 +52,23 @@ However if you come across someones public profile hosted on a different serv
If you are visiting a public page on another Mastodon site, see [Using Mastodon outside of your site](../external/#interact).
## Enabling notifications {#bell}
![](/assets/bell.jpg)
If you are following someone, you also have the option to receive a notification every time they post. To opt into this functionality, click the bell icon.
## Search {#search}
{{< figure src="/assets/image%20%2819%29.png" caption="The search function can be accessed from the sidebar." >}}
{{< figure src="/assets/search.jpg" caption="The search function can be accessed from the sidebar." >}}
Mastodon's basic search allows logged-in users to find toots containing a specific hashtag, or to load a user or status directly if they know the URL or address. Searching for a term will show profiles whose username or display name contains that term, as well as hashtags that match or contain that term.
{{< figure src="/assets/image%20%2839%29.png" caption="An example of a toot being loaded directly by its URL." >}}
{{< figure src="/assets/direct-url.jpg" caption="An example of a toot being loaded directly by its URL." >}}
{{< figure src="/assets/image%20%2823%29.png" caption="An example of accounts returned when searching for &quot;cats&quot;." >}}
{{< figure src="/assets/search-accounts.jpg" caption="An example of accounts returned when searching for &quot;cats&quot;." >}}
{{< figure src="/assets/image%20%2827%29.png" caption="An example of hashtags returned when searching for &quot;cats&quot;." >}}
{{< figure src="/assets/search-hashtags.jpg" caption="An example of hashtags returned when searching for &quot;cats&quot;." >}}
Admins may optionally install full-text search. Mastodons full-text search allows logged-in users to find results from their own toots, their favourites, their bookmarks and their mentions. It deliberately does not allow searching for arbitrary strings in the entire database, in order to reduce the risk of abuse by people searching for controversial terms to find people to dogpile.
@ -71,19 +80,19 @@ The following operators are supported:
## Direct conversations {#direct}
{{< figure src="/assets/image%20%2812%29.png" caption="A list of conversations containing direct messages." >}}
{{< figure src="/assets/dm-column.jpg" caption="A list of conversations containing direct messages." >}}
In Mastodon, direct messages are simply toots that have the "direct" visibility selected. Visibility can be selected per-post, which allows changing the privacy level later in a thread. The direct messages column currently shows a list of all conversations containing a direct post. Clicking on a conversation will load the associated thread.
{{< figure src="/assets/image%20%2857%29.png" caption="A direct message in a thread." >}}
{{< figure src="/assets/dm-thread.png" caption="A direct message in a thread." >}}
## List timelines {#lists}
Lists are subsets of your home timeline. You can create a list, give it a name, and add users that you follow to that list.
![](/assets/image%20%2828%29.png)
![](/assets/lists.jpg)
Opening a list will load that list's timeline. List timelines contain only posts by members of that list, as well as replies to you or to other members of the list.
Opening a list will load that list's timeline. List timelines contain only posts by members of that list, as well as replies to you or to other members of the list. This can be changed to show replies to all people you follow, or to no one.
{{< figure src="/assets/image%20%285%29.png" caption="A list timeline" >}}
{{< figure src="/assets/list.jpg" caption="A list timeline" >}}

View File

@ -7,7 +7,7 @@ menu:
parent: user
---
{{< figure src="/assets/image%20%2859%29.png" caption="Compose form with CW enabled" >}}
{{< figure src="/assets/compose-with-cw.jpg" caption="Compose form with CW enabled" >}}
## Text {#text}
@ -15,25 +15,25 @@ The main body of each status update can be composed using the text field. The de
### Links {#links}
{{< figure src="/assets/image%20%287%29.png" caption="Links must start with http\(s\):// and are counted as 23 characters regardless of length." >}}
{{< figure src="/assets/compose-links.jpg" caption="Links must start with http\(s\):// and are counted as 23 characters regardless of length." >}}
If you include links in your post, they must begin with `http://` or `https://`. All links are counted as 23 characters, no matter how long they actually are, so there is no need to use a link shortener to save characters. In fact, using a link shortener is actively discouraged.
### Mentions {#mentions}
{{< figure src="/assets/image%20%2820%29.png" caption="Suggested mentions for both local and remote users." >}}
{{< figure src="/assets/compose-mentions.jpg" caption="Suggested mentions for both local and remote users." >}}
You can mention users by typing out their full address, e.g. `@alice@example.com`. Note that any usage of`@word` will be interpreted as mentioning the local user with the username `word`, if that user exists. Only the username part will count against your character limit -- the domain is not counted.
### Hashtags {#hashtags}
{{< figure src="/assets/image%20%2825%29.png" caption="Hashtags are autosuggested by usage frequency." >}}
{{< figure src="/assets/compose-hashtags.jpg" caption="Hashtags are autosuggested by usage frequency." >}}
You can use a `#hashtag` to make your post discoverable to anyone searching for that hashtag. Hashtags can contain alphanumeric characters and underscores, but cannot contain numbers only.
### Custom emoji {#emoji}
{{< figure src="/assets/image%20%2838%29.png" caption="An array of custom emoji are available in the selector." >}}
{{< figure src="/assets/compose-custom-emoji.jpg" caption="An array of custom emoji are available in the selector." >}}
Each server offers a set of custom emoji you can use, like on Discord. You can use an emoji using its shortcode like `:thounking:`, or by clicking the emoji face in the compose box and browsing through the "Custom" category. You can also browse through and search for standard unicode emoji.
@ -43,7 +43,7 @@ You can attach either files or a poll to your status.
### Files {#media}
{{< figure src="/assets/image%20%2844%29.png" caption="Thumbnail for attached media, with options to delete, edit, or mark as sensitive" >}}
{{< figure src="/assets/compose-media-attachment.jpg" caption="Thumbnail for attached media, with options to delete, edit, or mark as sensitive" >}}
Click the paper clip to attach a file to your post. You can attach the following:
@ -54,13 +54,13 @@ Click the paper clip to attach a file to your post. You can attach the following
#### Editing media {#edit}
{{< figure src="/assets/image%20%2826%29.png" caption="Edit media to add a media description or choose a focal point for the preview thumbnail." >}}
{{< figure src="/assets/edit-media.jpg" caption="Edit media to add a media description or choose a focal point for the preview thumbnail." >}}
By clicking the "Edit" link on the attachment thumbnail, you can load a modal which will allow adding a media description or changing the focal point. Although optional, it is a good idea to add media descriptions that briefly describe what is in contained in the media. These descriptions will be shown when the media fails to load for any reason, or when accessed by screen readers and other assistive technology. Setting the focal point is also optional, but can make preview thumbnails looks better when they are not shown in a 16:9 aspect ratio.
### Polls {#polls}
{{< figure src="/assets/image%20%2841%29.png" caption="A poll with 2 one-of choices, expiring in 1 day" >}}
{{< figure src="/assets/compose-polls.jpg" caption="A poll with 2 one-of choices, expiring in 1 day" >}}
Click the bar graph icon to attach a poll to your post.
@ -126,9 +126,9 @@ Send your post only to mentioned users.
## Content warnings and sensitive content {#cw}
{{< figure src="/assets/image.png" caption="A status with a CW that is marked as sensitive content." >}}
{{< figure src="/assets/status-cw.jpg" caption="A status with a CW that is marked as sensitive content." >}}
One feature that Mastodon provides that you may not have seen on other social networks is the option to attach a content warning to your posts. When a content warning is included, the status content will be collapsed by default, and only the CW will be shown, similarly to an email subject line or a "read more" break. This can be used to add a summary or subject for your post, to collapse long posts, or to otherwise provide context or setup for the body of the post.
When media is attached, a checkbox appears to allow you to "mark media as sensitive". This hides the full media behind a blurred thumbnail by default. Adding a CW to a post automatically marks the post as sensitive as well.
When media is attached, a checkbox appears to allow you to "mark media as sensitive". This hides the full media behind a blurred thumbnail by default. Adding a CW to a post automatically marks the media as sensitive as well.

View File

@ -13,13 +13,13 @@ menu:
Mastodon defaults to a dark theme, but a light or high-contrast theme can be selected.
{{< figure src="/assets/image%20%2834%29.png" caption="Mastodon light theme" >}}
{{< figure src="/assets/light-theme.jpg" caption="Mastodon light theme" >}}
### Choose your layout {#layout}
Mastodon defaults to a simple, one-column layout with a compose box on the left and a column switcher on the right. You can choose to enable the advanced web interface, which allows you view and pin multiple columns at the same time.
{{< figure src="/assets/image%20%2832%29.png" caption="The advanced web interface" >}}
{{< figure src="/assets/advanced-web-ui.jpg" caption="The advanced web interface" >}}
In either interface, updates will load automatically as new posts are available. You can enable Slow Mode to instead show a banner at the top of the column indicating the number of new items available, which will be loaded only when you click the banner.
@ -41,7 +41,7 @@ By default, any media marked as sensitive is hidden behind a click-through overl
Hidden and unloaded media uses a colorful gradient provided by the BlurHash algorithm, which uses the colors of the image but blurs the details. These gradients can be disabled.
{{< figure src="/assets/image%20%286%29.png" caption="An example blurhash thumbnail" >}}
{{< figure src="/assets/blurhash.jpg" caption="An example blurhash thumbnail" >}}
Posts with content warnings are collapsed by default, but you can choose to always expand the warnings so that the full post is displayed.
@ -71,7 +71,7 @@ If you opt out of search engine indexing, a `noindex` flag will be added to your
You can choose to hide your network, which will make your following and follower lists private to you only.
{{< figure src="/assets/image%20%284%29.png" caption="A profile that has opted to hide its network" >}}
{{< figure src="/assets/hidden-network.jpg" caption="A profile that has opted to hide its network" >}}
If you want to see posts that are boosted multiple times be reinserted into your feed at the top, you can disable boost grouping in timelines.

View File

@ -9,7 +9,7 @@ menu:
## Your appearance {#appearance}
{{< figure src="/assets/image%20%2829%29.png" caption="Profile cards showing display name, avatar, and header" >}}
{{< figure src="/assets/profile-cards.jpg" caption="Profile cards showing display name, avatar, and header" >}}
You can change how your profile appears to others by navigating to Settings &gt; Profile &gt; Appearance.
@ -33,7 +33,7 @@ Your header is a banner image shown at the top of your profile, as well as in pr
You can set certain flags on your profile to let others know how you use Mastodon.
![](/assets/image%20%281%29.png)
![](/assets/bot-flag.jpg)
### Locked account {#locked}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

BIN
static/assets/bell.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
static/assets/blocked.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
static/assets/blurhash.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
static/assets/bot-flag.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
static/assets/directory.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
static/assets/dm-column.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
static/assets/dm-thread.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
static/assets/export.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Some files were not shown because too many files have changed in this diff Show More