Плагин ActivityPub

РЕДАКТИРОВАНИЕ

Эта проблема связана с пользователем @a.gup.pe. Все федеративные категории находят пользователя @koirat@a.gup.pe и начинают его подписку, показывая статус «ожидание». После перехода на другую страницу и возврата ничего не отображается — подписка исчезла.

Категории, однако, могут подписываться на реальных людей.

Этот актор по сути является ботом, а Discourse не может подписываться на ботов — но, насколько мне известно, он не идентифицирует себя как бот. И даже если проблема заключается в «ботовости» (есть ли такое слово вообще :flushed_face:), Discourse не должен позволять мне подписываться на него в первую очередь (если только Discourse в тот момент не знал об этом). В любом случае, он не должен разрывать подписку без уведомления. Или сделал это… Я не проверял логи, моя вина.

РЕДАКТИРОВАНИЕ 2

Вот всё, что я смог найти.

не удалось доставить на https://a.gup.pe/u/koirat/inbox
[Discourse Activity Pub] https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd не удалось доставить на https://a.gup.pe/u/koirat/inbox
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: https://foorumi.katiska.eu/ap/activity/e05428a3d5d0d9637c8b191bc4556063
type: Follow
to: https://a.gup.pe/u/koirat
published: '2025-02-23T07:11:19Z'
updated: '2025-02-23T07:11:19Z'
actor: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
  id: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd
  type: Group
  updated: '2025-02-20T08:03:45Z'
  url: https://foorumi.katiska.eu/c/koiramaailma/33
  name: 'Katiska.eu: koiramaailma'
  inbox: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/inbox
  outbox: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/outbox
  followers: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/followers
  preferredUsername: koiramaailma
  publicKey: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    id: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd#main-key
    owner: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd
    publicKeyPem: |
      -----BEGIN PUBLIC KEY-----
     (Это, думаю, не имеет значения. Просто занимает место)
      -----END PUBLIC KEY-----
  icon: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    type: Image
    mediaType: image/png
    url: https://cdnfoorumi.katiska.eu/original/1X/c51c0a678551648d73e3f8729ec95ecd1fc0bb73.png
  "@context": https://www.w3.org/ns/activitystreams
"@context": https://www.w3.org/ns/activity...

Webfinger находит пользователя a.gup.pe, так что это не может быть причиной.

Это частный случай, или я снова пытаюсь сделать что-то странное?

Discourse не может подписываться на списки Mastodon (и у самих списков в Mastodon есть свои проблемы). Поэтому я попробовал использовать «псевдопользователя» a.gup.pe.

Я создал @koirat@a.gup.pe, подписавшись на того же пользователя в своём экземпляре — он будет собирать твиты, где используется тег #koirat (по-фински «собаки», кстати). Всё прошло успешно.

Затем я отправил сообщение из Mastodon, и в нём были упомянуты как тег, так и пользователь. Оно появилось в списке подписок на пользователя guppe.

В своём Discourse я попросил категорию X подписаться на пользователя @koirat@a.gup.pe. У меня есть ещё категория Y, подписанная на моего актора @jagster@kvarkki.nexus, и она находилась в статусе «ожидание». Поэтому я ожидал получить сообщение дважды: одно от меня и одно через guppe (о, чёрт, не в этом ли проблема :thinking:).

Сообщение, отправленное моим актором, было опубликовано в категории Y, как и ожидалось. Категория X ничего не получила от актора guppe.

Когда я открыл федерацию категории X, оказалось, что она больше не подписана на @koirat@a.gup.pe.

Так что мои предположения:

  • @a.gup.pe работает немного иначе, и Discourse не может это понять
  • Я попытался опубликовать две идентичные темы из Mastodon (это я могу легко проверить, займёт пару минут)

Это не чисто академическая проблема, так как это могло бы решить проблемы со списками в Mastodon.