ActivityPub 플러그인

수정

해당 문제는 @a.gup.pe 사용자와 관련이 있습니다. 모든 연동된 카테고리에서 사용자 @koirat@a.gup.pe를 찾아 팔로우 상태가 대기 중으로 표시됩니다. 페이지를 변경했다가 다시 돌아오면 팔로우가 사라진 것을 확인할 수 있습니다.

카테고리는 실제 인간을 팔로우할 수 있습니다.

해당 액터는 사실상 봇이며, Discourse는 봇을 팔로우할 수 없습니다 — 하지만 AFAIK(본인의 지식 범위 내) 해당 봇은 스스로를 봇으로 식별하지 않습니다. 그리고 문제가 봇인 것(bottiness, 이 말이 실제로 존재하는 단어인지 모르겠네요 :flushed_face:) 때문이라 해도, Discourse는 애초에 제가 이를 팔로우하는 것을 허용하지 않아야 합니다(해당 시점에 Discourse가 이를 알지 못하는 경우를 제외하고). 어쨌든, 제게 알리지 않고 팔로우를 종료해서는 안 됩니다. 아니면… 로그를 확인해 보지 않았습니다. 제 실수입니다.

수정2

제가 찾은 것은 이것뿐이었습니다.

failed to deliver to https://a.gup.pe/u/koirat/inbox
[Discourse Activity Pub] https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd failed to deliver to 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-----
     (This isn’t relevant, I guess. It’s just taking space)
      -----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 finds a.gup.pe 사용자를 찾았으므로, 이것이 그 이유일 수는 없습니다.

이것이 엣지 케이스인가요, 아니면 제가 또 이상한 일을 시도하고 있는 건가요?

Discourse는 Mastodon 목록을 팔로우할 수 없습니다(그리고 그것들은 Mastodon에서도 자체적인 문제를 가지고 있습니다). 그래서 저는 대신 a.gup.pe의 "가상 사용자(pseudo user)"를 시도해 보았습니다.

저는 제 인스턴스에서 동일한 사용자를 팔로우함으로써 @koirat@a.gup.pe를 생성했습니다 — 이는 #koirat 태그(참고로 핀란드어로 '개’를 의미합니다)가 사용된 투트(toots)를 수집합니다. 그 부분은 잘 작동했습니다.

그런 다음 저는 Mastodon에서 메시지를 보냈고, 태그와 사용자 모두 언급되었습니다. 팔로우 중인 guppe 사용자의 목록에 팝업으로 나타났습니다.

제 Discourse에서 카테고리 X에게 사용자 @koirat@a.gup.pe를 팔로우하도록 요청했습니다. 제 액터 @jagster@kvarkki.nexus를 팔로우하는 다른 카테고리 Y가 대기 중 상태였습니다. 그래서 저는 그 메시지를 두 번 받게 될 것으로 예상했습니다. 하나는 저에게서, 하나는 guppe를 통해(아, 이걸로 인한 문제인 건가 :thinking:).

제 액터가 보낸 메시지는 예상대로 카테고리 Y에 게시되었습니다. 카테고리 X는 guppe 액터에 의해 전달된 것을 받지 못했습니다.

카테고리 X의 연동을 열었을 때, 더 이상 @koirat@a.gup.pe를 팔로우하고 있지 않았습니다.

그래서 추측은 다음과 같습니다:

  • @a.gup.pe는 다른 방식으로 작동하여 Discourse가 이해하지 못합니다.
  • 저는 Mastodon에서 두 개의 동일한(identical) 토픽을 게시하려고 했습니다(이것은 쉽게 시도해 볼 수 있으며, 몇 분 정도 걸릴 것입니다)

이것은 순수한 학술적인 문제가 아닙니다. 왜냐하면 이것이 Mastodon의 목록 문제를 해결할 수 있기 때문입니다.