mirror of
https://github.com/LemmyNet/lemmy-docs.git
synced 2024-11-01 01:59:54 +00:00
commit
059da7012c
1 changed files with 123 additions and 0 deletions
123
src/ru/federation/overview.md
Normal file
123
src/ru/federation/overview.md
Normal file
|
@ -0,0 +1,123 @@
|
|||
# Обзор Федерации
|
||||
|
||||
Этот документ предназначен для всех, кто хочет знать, как работает федерация Lemmy, не вдаваясь в технические подробности. Он предназначен для предоставления общего принципа работы федерации ActivityPub в Lemmy. Если вы сами реализуете ActivityPub и хотите быть совместимым с Lemmy, прочтите наши [ActivityPub API outline](contributing_apub_api_outline.md).
|
||||
|
||||
## Соглашения документации
|
||||
|
||||
Чтобы не усложнять, иногда вы можете увидеть вещи в формате `Create/Note` или `Delete/Event` или `Undo/Follow`. То, что перед косой чертой - это Activity, а то, что после косой черты - это объект внутри Activity в свойстве `object`. Итак, это следует читать следующим образом:
|
||||
|
||||
* `Create / Note`: действие` Create`, содержащее `Note` в поле` object`.
|
||||
* `Delete / Event`: действие` Delete`, содержащее `Event` в поле` object`
|
||||
* `Undo / Follow`: действие` Undo`, содержащее `Follow` в поле` object`
|
||||
|
||||
В Lemmy мы используем определенные термины для обозначения элементов ActivityPub. По сути, это наши конкретные реализации хорошо известных концепций ActivityPub:
|
||||
|
||||
- Сообщество: `Group`
|
||||
- Пользователь: `Person`
|
||||
- Пост: `Page`
|
||||
- Комментарий: `Note`
|
||||
|
||||
Этот документ состоит из трех основных разделов:
|
||||
|
||||
* __Философия федерации__ излагает общую модель того, как это должно быть федеративным
|
||||
* __Действия пользователя__ описывает, какие действия может предпринять Пользователь для взаимодействия
|
||||
* __Активность сообщества__ описывает, что Сообщество делает в ответ на определенные действия Пользователя.
|
||||
|
||||
## Философия федерации
|
||||
|
||||
Основным действующим лицом в «Lemmy» является Сообщество. Каждое сообщество находится в единственном экземпляре и состоит из списка сообщений и списка подписчиков. Основное взаимодействие заключается в том, что Пользователь отправляет пост или комментарий, связанный с публикацией или комментарием в сообществе, который затем аннонсируется об этом всем подписчикам.
|
||||
|
||||
В каждом Сообществе есть определенный Пользователь-создатель, который отвечает за установку правил, назначение модераторов и удаление контента, нарушающего правила.
|
||||
|
||||
Помимо модерации на уровне сообщества, у каждого экземпляра есть набор пользователей-администраторов, которые имеют право выполнять удаление и блокировку на уровне всего сайта.
|
||||
|
||||
Пользователи следят за интересующими их сообществами, чтобы получать сообщения и комментарии. Они также голосуют за сообщения и комментарии, а также создают новые. Комментарии организованы в виде древовидной структуры и обычно сортируются по количеству голосов. Также поддерживаются прямые сообщения между пользователями.
|
||||
|
||||
Пользователи могут не подписываться друг на друга, или не следовать за каким либо сообществом.
|
||||
|
||||
Наша реализация федерации уже завершена, но на данном этапе, мы не совсем сосредоточились на соблюдении спецификации ActivityPub. В связи с этим, Lemmy, пока, несовместима с реализациями, которые должны давать возможность отправлять и получать рабочую активность. Это то, что мы планируем исправить в ближайшем будущем. Проверить [#698](https://github.com/LemmyNet/lemmy/issues/698) обзор наших несоответствий.
|
||||
|
||||
## Действия пользователя
|
||||
|
||||
### Следовать за сообществом
|
||||
|
||||
На каждой странице сообщества есть кнопка «Подписаться». Нажатие на нее запускает действие `Follow`, которое будет отправлено пользователем в почтовый ящик сообщества. Сообщество автоматически ответит на почтовый ящик пользователя действием `Accept/Follow`. Он также добавит пользователя в свой список подписчиков и предоставит пользователю информацию о сообщениях и комментариях в Сообществе.
|
||||
|
||||
### Отписаться от Сообщества
|
||||
|
||||
После подписки на сообщество кнопка «Подписаться» заменяется на «Отписаться». При нажатии на нее в почтовый ящик Сообщества отправляется действие `Accept/Follow`. Сообщество удаляет пользователя из списка подписчиков и больше не отправляет ему никаких действий.
|
||||
|
||||
### Создать пост
|
||||
|
||||
Когда пользователь создает новое сообщение в определённом сообществе, оно отправляется как `Create/Page` в входящие Сообщества.
|
||||
|
||||
### Создать комментарий
|
||||
|
||||
Когда новый комментарий создается для сообщения, идентификатор сообщения и родительский идентификатор комментария (если он существует) указывается в поле `in_reply_to`. Это позволяет привязать его к нужному посту и построить
|
||||
дерево комментариев. Затем он отправляется во входящие сообщения сообщества как `Create/Note`
|
||||
|
||||
Экземпляр-источник также сканирует комментарий на предмет упоминания любого пользователя и отправляет `Create/Note` этим Пользователям.
|
||||
|
||||
### Редактировать Пост
|
||||
|
||||
Изменение содержания существующей публикации. Может быть выполнено только создавшим его пользователем.
|
||||
|
||||
### Редактировать комментарий
|
||||
|
||||
Изменение содержания существующего комментария. Может быть выполнено только создавшим его пользователем.
|
||||
|
||||
### Нравится и Не нравится
|
||||
|
||||
Пользователям могут нравится или не нравится любые сообщения или комментарии. Они отправляются `Like/Page`, `Dislike/Note` и т.д. в ящик Сообщества.
|
||||
|
||||
### Удаление
|
||||
|
||||
Создатель сообщения, комментария или сообщества может его удалить. Об этом сообщается подписчикам сообщества. Затем элемент скрывается от всех пользователей.
|
||||
|
||||
### Удаления
|
||||
|
||||
Модераторы могут удалять сообщения и комментарии из своих сообществ. Администраторы могут удалять любые сообщения или комментарии со всего сайта. Сообщества также могут быть удалены администраторами. Затем элемент скрывается от всех пользователей.
|
||||
|
||||
Об удалении сообщается всем подписчикам Сообщества, поэтому они вступают в силу и там. Исключение составляют случаи, когда администратор удаляет элемент из Сообщества, размещенного в другом экземпляре. В этом случае удаление вступает в силу только локально.
|
||||
|
||||
### Отмена предыдущего действия
|
||||
|
||||
Мы ничего не удаляем из нашей базы данных, просто скрываем это от пользователей. Удаленные или удаленные Сообщества/Сообщения/Комментарии имеют кнопку «восстановить». Эта кнопка `Undo` генерирует восстановление оригинала удалённой активности как объекта, такого как `Undo/Remove/Post` или `Undo/Delete/Community`.
|
||||
|
||||
Нажатие кнопки "нравится" за публикацию/комментарий, за которую уже проголосовали (или кнопку "не нравится" для публикации/комментария, за которую уже проголосовали), также генерирует сообщение как `Undo`. В этом случае `Undo/Like/Post` или `Undo/Dislike/Comment`.
|
||||
|
||||
### Создать личное сообщение
|
||||
|
||||
В профилях пользователей есть кнопка «Отправить сообщение», которая открывает диалоговое окно, позволяющее отправить личное сообщение этому пользователю. Отправляется как `Create/Note` во Входящие пользователя. Личные сообщения могут быть адресованы только одному,конкретному Пользователю.
|
||||
|
||||
### Редактирование личного сообщения
|
||||
|
||||
`Update/Note` изменяет текст предыдущего отправленного сообщения.
|
||||
|
||||
### Удалить личное сообщение
|
||||
|
||||
`Delete/Note` удаляет личное сообщение.
|
||||
|
||||
### Восстановить личное сообщение
|
||||
|
||||
`Undo/Delete/Note` возвращает удалённое личное сообщение.
|
||||
|
||||
## Активность Сообщества
|
||||
|
||||
Сообщество - это, по сути, бот, который будет делать что-либо только в ответ на действия пользователей. Пользователь, который первым создал Сообщество, становится первым модератором и может добавлять дополнительных модераторов. Как правило, всякий раз, когда Сообщество обнаруживает активность во входящих, оно пересылается всем его подписчикам.
|
||||
|
||||
### Подтверждение подписки
|
||||
|
||||
Если Сообщество получает `Follow` активность, это автоматически активирует ответ `Accept/Follow`. И добавляет Пользователя в список подписавшихся.
|
||||
|
||||
### Не следовать
|
||||
|
||||
Однажды получив `Undo/Follow`, Сообщество удаляет Пользователя из списка подписчиков.
|
||||
|
||||
### Уведомление
|
||||
|
||||
Если Сообщество получает какие-либо действия, связанные с публикациями или комментариями (Создать, Обновить, Нравится, Не нравится, Удалить, Убрать, Отменить), оно Уведомляет об этом своих подписчикам. В связи с этим, Уведомление создаётся как действие , и принимается как объект активности. Таким образом, следующие экземпляры будут в курсе любых действий в сообществах, за которыми они следят.
|
||||
|
||||
### Удалить Сообщество
|
||||
|
||||
Если создатель или администратор удаляет Сообщество, это отправляет `Delete/Group` всем его подписчикам.
|
Loading…
Reference in a new issue