Публикация постов в Mastodon

Эта тема посвящена публикации постов из Discourse в Mastodon с помощью плагина Discourse ActivityPub и является продолжением статей Настройка актора ActivityPub и Подписка на актора ActivityPub. Если вы не уверены, что это означает, сначала перейдите в тему Плагин Discourse ActivityPub.

Инструкция

Чтобы опубликовать пост в Mastodon:

  1. Настройте актора для категории или тега, контент из которых вы хотите публиковать в Mastodon.
  2. Скопируйте «handle» (обработчик) актора.
  3. Найдите этот handle в Mastodon и подпишитесь на него.

Разметка [note]

Вы можете выбрать часть своего поста для публикации через ActivityPub, обернув текст в [note][/note]. Это даёт вам больше контроля над тем, что отображается в микроблогинговых сервисах, таких как Mastodon. Например, если ваш пост в редакторе выглядит так:

У нас есть важные новости: [note]Компания Everything Pets запускает журнал![/note]

В Mastodon это будет выглядеть так:

Компания Everything Pets запускает журнал!

5 лайков

Привет! Сейчас посты от аккаунтов в Mastodon, похоже, не имеют аватара, из-за чего они выглядят не очень:

Возможно ли использовать аватар пользователя Discourse, публикующего пост, или хотя бы маленький логотип экземпляра Discourse?

2 лайка

Я попробовал это впервые, но результат оказался не таким, как ожидалось:

  • Использовал тег.
  • Редактирование Actor > Тип объекта Post > Note

Должен ли синтаксис note быть виден читателям в сообщении Discourse?

Затем всё сообщение было федерировано в любом случае, без видимого синтаксиса note:

Кстати, сначала я опубликовал сообщение Discourse с тегами note. Затем, в течение 5 минут до федерации, я удалил теги note, потому что они выглядели некрасиво, и я был в замешательстве. Потом подумал, что они могут «исчезнуть» после федерации сообщения, и добавил их снова.

Увидев, что было федерировано всё сообщение, я удалил синтаксис note из сообщения Discourse.

Вы забыли упомянуть [/note]?

Пример:

[note]The Social Music Network is a community[/note] that encourages...

В этом примере в Mastodon (и в Фединститут) будет отправлено только первые семь слов.

Теги не обязательно должны находиться в начале поста. Если их нет, то в качестве отрывка будут использованы первые 500 символов.

2 лайка

Или весь пост, если Activity pub note excerpt maxlength = 0

Я не уверен на сто процентов, но у меня смутное воспоминание о том, что если эта настройка равна нулю, то [note][/note] ничего не делает.

1 лайк

Я немного запутался. Были ли теги присутствуют, когда пост был впервые федерирован?

1 лайк

Спасибо за ваши вопросы!

Нет, вы можете увидеть это на скриншоте, который я поделился. Имеет ли значение, если обе секции находятся в разных абзацах?

Ах, у нас это значение установлено в 0, но из описания я не понял, что заметки не будут работать при значении 0.

Да, тег, который мы используем для федерации тем, присутствовал с самого начала и оставался без изменений. Именно синтаксис заметок ходил туда и обратно.

Не знаю, правда ли это. У меня просто такое ощущение. Попробуй, что получится?

Да, извините, под «тегами» я имел в виду [note][/note]. Мне всё ещё не совсем понятно, были ли они в посте в момент его федерации. Если вы добавили их обратно после федерации, они не будут применяться к контенту, который уже был федерирован.

1 лайк

Хорошо, да, [note][/note] были в наличии, когда я опубликовал новую тему на Discourse, и они также оставались на месте через несколько минут, когда тема была федерирована.

Может быть, оставим это здесь, и в следующий раз, когда я буду федерировать пост, я буду внимательно следить за каждым шагом, теперь, когда я знаю, чего ожидать и что может произойти.

Извините, я всё ещё немного запутался. Прошу прощения, возможно, я сегодня немного медлительный! Произошли ли события в таком порядке?

  1. Вы создали новый пост в Discourse с тегами [note][/note].
  2. Пост был запланирован к публикации через ActivityPub через 5 минут.
  3. До запланированной публикации вы удалили теги [note][/note].
  4. Пост был опубликован через ActivityPub.
  5. После публикации поста через ActivityPub вы снова добавили теги [note][/note] в пост.

Именно так всё и произошло?

@angus не совсем. :slight_smile: Клянусь, всё было именно так, но после стольких обсуждений я начинаю сомневаться.

  1. Я создал новый пост в Discourse, включив в него теги [note][/note].
  2. Пост был запланирован к публикации через ActivityPub через 5 минут.
  3. До запланированной публикации я удалил теги [note][/note], так как не ожидал, что они будут видны в посте.
  4. Но потом я подумал: «всё равно, может, они исчезнут после федерации поста каким-то образом», и вернул их обратно.
  5. Пост был опубликован через ActivityPub.

Я добавил акторов для нескольких тегов, а затем создал пост с использованием этих тегов. Я ожидал, что оба актора опубликуют пост в ActivityPub, но это сделал только один.

Я подписан на обоих с моего основного аккаунта mastodon.social, но в логах вижу только одну публикацию. Должно ли это работать так, или поддерживается только один актор?

Если к публикации привязано несколько тегов-акторов, в настоящее время публикация осуществляется только от имени актора первого указанного тега. Поддержка публикации одновременно от нескольких акторов одного таксономического типа — это хорошая #feature-запрос (добавьте тег activitypub).

Есть ли способ контролировать, какие категории или теги не публикуются в Mastodon? Я хотел бы исключить определённые темы для внутреннего обсуждения из публикации, но при этом разрешить анонсы и посты в блоге.Заранее спасибо!

Привет @Kayaart, спасибо за вопрос. Только теги и категории, которые вы явно настроили как акторы ActivityPub, будут публиковать контент в фидиверс. Если у вас есть категории и теги для внутреннего обсуждения, просто оставьте их как есть (то есть не настраивайте актора).

Большое спасибо за уточнение, теперь всё понятно!
Так что, чтобы подтвердить: если я оставлю некоторые категории/теги без настройки аккаунта ActivityPub, ничего из них не будет отправлено в Mastodon, верно?

Да, это верно.

На вкладке Federation на странице профиля пользователя есть настройка для добавления связанных акторов с возможностью выбора типа Discourse или Mastodon. Там сказано:

Сообщения, связанные со связанным актором, будут атрибутированы вашему аккаунту.

Как это работает? Если я добавлю здесь аккаунт Mastodon, появятся ли мои посты из Mastodon в Discourse, или наоборот? В первом случае, как выбираются теги и категории? Если я добавлю аккаунт Discourse, будут ли сообщения с внешнего сервера добавлены на тот, где выполнена эта настройка? И что будет, если категории и теги не совпадают?

Я размещаю и Discourse, и Mastodon, а также у меня есть аккаунт на этом экземпляре Discourse. Думаю, оптимальная конфигурация для меня — чтобы пост на любом из экземпляров Discourse появлялся на обоих серверах и публиковался один раз в Mastodon. Как это настроить, зависит от ответа на предыдущий вопрос.

Также, как обстоят дела с ответами на сообщения через ActivityPub? Могу ли я использовать Mastodon для ответа на сообщение от связанного актора с учётом категорий, тегов и пользователей?

Привет, @ericomeehan,

Ни то, ни другое! Эта функция позволяет связать сообщения с вашей учётной записью, если эти сообщения распространяются через обычный процесс, например, через категории или тегированных акторов. Вот пример:

  1. У вас есть категория на вашем Discourse под названием «Объявления», которую вы настроили с полной публикацией тем через ActivityPub.
  2. У вас есть учётная запись пользователя на вашем Discourse: eric_discourse.
  3. У вас есть учётная запись пользователя на вашем Mastodon: eric_mastodon.
  4. Вы подписываетесь на «Объявления» с помощью eric_mastodon.
  5. eric_discourse (то есть вы) создаёт новую тему в категории «Объявления».
  6. Категория «Объявления» распространяет эту тему.
  7. Вы отвечаете на эту тему в Mastodon с помощью eric_mastodon.
  8. Ваш ответ обрабатывается категорией «Объявления» на вашем Discourse и появляется как ответ (сообщение) в теме.
  9. Поскольку нет связи между eric_mastodon и eric_discourse, плагин ActivityPub создаёт временную учётную запись для ответа eric_mastodoneric_mastodon1 (имя пользователя генерируется на основе имени актора).
  10. Теперь тема выглядит так:
  • Первое сообщение от eric_discourse.
  • Ответ (второе сообщение) от eric_mastodon1.

Функция, о которой вы спрашиваете, позволяет вам подтвердить, что вы являетесь eric_mastodon1, чтобы у вас не было нескольких учётных записей на вашем Discourse. После завершения процесса авторизации на соответствующей вкладке:

  • Сообщения eric_mastodon1 станут сообщениями eric_discourse.
  • Учётная запись eric_mastodon1 больше не будет существовать.
  • Будущая активность от eric_mastodon будет связана с eric_discourse на вашем экземпляре Discourse.
2 лайка