ActivityPub 플러그인

네, 이제 액터의 preferredUsername를 변경할 수 있습니다. 이 기능이 Mastodon과 어떻게 상호 운용되는지에 대해 다음 사항을 참고하세요:

해당 액터의 사용자는 새로운 핸들을 조회하는 사람이 나타나기 전까지는 변경된 이름으로 표시되지 않습니다. 표시되는 사용자 이름과 관계없이 팔로우 및 게시 등의 기능은 계속 정상적으로 작동합니다.

Mastodon에 제출한 PR이 이 변경 사항이 병합되기 전에 병합되기를 희망했습니다.

그럼에도 불구하고, Mastodon이 실제로 사용자 이름 변경을 처리할 수 있음을 보여주는 인수 테스트와 시간 경과를 고려하여 이 변경 사항을 진행하기로 결정했습니다.

4개의 좋아요

응답해 주셔서 감사합니다 @Angus. 제가 실행 중인 인스턴스를 확인해 보니 3.3.2 버전인데, 이는 최신 버전인 것 같습니다. 또한 플러그인도 최신 버전으로 업데이트했지만, 오류가 여전히 발생합니다. /logs에서 수집한 가장 최근 스택 트레이스는 다음과 같습니다:

스택 트레이스 activemodel (7.1.3.4) lib/active_model/attribute_methods.rb:489:in `method_missing'

plugins/discourse-activity-pub/plugin.rb:368:in `block (2 levels) in activate!’

lib/plugin/instance.rb:376:in `public_send’

lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class’

plugins/discourse-activity-pub/plugin.rb:332:in `block (2 levels) in activate!’

lib/plugin/instance.rb:376:in `public_send’

lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class’

plugins/discourse-activity-pub/plugin.rb:338:in `block (2 levels) in activate!’

lib/plugin/instance.rb:376:in `public_send’

lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class’

plugins/discourse-activity-pub/app/models/discourse_activity_pub_object.rb:107:in `after_scheduled’

plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:126:in `after_scheduled’

plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:89:in `after_scheduled’

plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:15:in `perform’

plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in `perform’

plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:160:in `block in activity_pub_deliver_activity’

plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:159:in `each’

plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:159:in `activity_pub_deliver_activity’

plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:41:in `perform_activity_pub_activity’

plugins/discourse-activity-pub/plugin.rb:457:in `block (2 levels) in activate!’

lib/plugin/instance.rb:376:in `public_send’

lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class’

plugins/discourse-activity-pub/plugin.rb:664:in `block (2 levels) in activate!’

lib/plugin/instance.rb:576:in `block in on’

lib/discourse_event.rb:12:in `block in trigger’

/home/cloudron/rbenv/versions/3.3.4/lib/ruby/3.3.0/set.rb:501:in `each_key’

/home/cloudron/rbenv/versions/3.3.4/lib/ruby/3.3.0/set.rb:501:in `each’

lib/discourse_event.rb:12:in `trigger’

lib/post_creator.rb:258:in `trigger_after_events’

lib/post_creator.rb:220:in `create’

lib/new_post_manager.rb:318:in `perform_create_post’

lib/new_post_manager.rb:252:in `perform’

app/controllers/posts_controller.rb:215:in `create’

actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action’

actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in `process_action’

actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in `process_action’

actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in `block in process_action’

activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in `block in run_callbacks’

app/controllers/application_controller.rb:424:in `block in with_resolved_locale’

i18n (1.14.5) lib/i18n.rb:351:in `with_locale’

app/controllers/application_controller.rb:424:in `with_resolved_locale’

activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `block in run_callbacks’

activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in `run_callbacks’

actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in `process_action’

actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in `process_action’

actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in `block in process_action’

activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `block in instrument’

activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in `instrument’

activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `instrument’

actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in `process_action’

actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in `process_action’

activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in `process_action’

actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in `process’

actionview (7.1.3.4) lib/action_view/rendering.rb:40:in `process’

rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method’

actionpack (7.1.3.4) lib/action_controller/metal.rb:227:in `dispatch’

actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in `dispatch’

actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch’

actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in `serve’

actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in `block in serve’

actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in `block in find_routes’

actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `each’

actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `find_routes’

actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in `serve’

actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in `call’

lib/middleware/omniauth_bypass_middleware.rb:64:in `call’

rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call’

rack (2.2.9) lib/rack/conditional_get.rb:40:in `call’

rack (2.2.9) lib/rack/head.rb:12:in `call’

actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in `call’

lib/content_security_policy/middleware.rb:12:in `call’

lib/middleware/anonymous_cache.rb:399:in `call’

lib/middleware/csp_script_nonce_injector.rb:12:in `call’

config/initializers/008-rack-cors.rb:14:in `call’

rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context’

rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call’

activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in `run_callbacks’

actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call’

logster (2.20.0) lib/logster/middleware/reporter.rb:40:in `call’

lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app’

lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call’

config/initializers/100-quiet_logger.rb:20:in `call’

config/initializers/100-silence_logger.rb:29:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in `call’

lib/middleware/enforce_hostname.rb:24:in `call’

rack (2.2.9) lib/rack/method_override.rb:24:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/static.rb:25:in `call’

rack (2.2.9) lib/rack/sendfile.rb:110:in `call’

rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call’

message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call’

lib/middleware/request_tracker.rb:360:in `call’

actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in `call’

railties (7.1.3.4) lib/rails/engine.rb:536:in `call’

railties (7.1.3.4) lib/rails/railtie.rb:226:in `public_send’

railties (7.1.3.4) lib/rails/railtie.rb:226:in `method_missing’

rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call’

rack (2.2.9) lib/rack/urlmap.rb:58:in `each’

rack (2.2.9) lib/rack/urlmap.rb:58:in `call’

unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client’

unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop’

unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers’

unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start’

unicorn (6.1.0) bin/unicorn:128:in `<top (required)>’

vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load’

vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<top (required)>’

bundler (2.5.9) lib/bundler/cli/exec.rb:58:in `load’

bundler (2.5.9) lib/bundler/cli/exec.rb:58:in `kernel_load’

bundler (2.5.9) lib/bundler/cli/exec.rb:23:in `run’

bundle activemodel (7.1.3.4) lib/active_model/attribute_methods.rb:489:in method_missing' plugins/discourse-activity-pub/plugin.rb:368:in block (2 levels) in activate!’
lib/plugin/instance.rb:376:in public_send' lib/plugin/instance.rb:376:in block (2 levels) in add_to_class’
plugins/discourse-activity-pub/plugin.rb:332:in block (2 levels) in activate!' lib/plugin/instance.rb:376:in public_send’
lib/plugin/instance.rb:376:in block (2 levels) in add_to_class' plugins/discourse-activity-pub/plugin.rb:338:in block (2 levels) in activate!’
lib/plugin/instance.rb:376:in public_send' lib/plugin/instance.rb:376:in block (2 levels) in add_to_class’
plugins/discourse-activity-pub/app/models/discourse_activity_pub_object.rb:107:in after_scheduled' plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:126:in after_scheduled’
plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:89:in after_scheduled' plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:15:in perform’
plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in perform' plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:160:in block in activity_pub_deliver_activity’
plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:159:in each' plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:159:in activity_pub_deliver_activity’
plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:41:in perform_activity_pub_activity' plugins/discourse-activity-pub/plugin.rb:457:in block (2 levels) in activate!’
lib/plugin/instance.rb:376:in public_send' lib/plugin/instance.rb:376:in block (2 levels) in add_to_class’
plugins/discourse-activity-pub/plugin.rb:664:in block (2 levels) in activate!' lib/plugin/instance.rb:576:in block in on’
lib/discourse_event.rb:12:in block in trigger' /home/cloudron/rbenv/versions/3.3.4/lib/ruby/3.3.0/set.rb:501:in each_key’
/home/cloudron/rbenv/versions/3.3.4/lib/ruby/3.3.0/set.rb:501:in each' lib/discourse_event.rb:12:in trigger’
lib/post_creator.rb:258:in trigger_after_events' lib/post_creator.rb:220:in create’
lib/new_post_manager.rb:318:in perform_create_post' lib/new_post_manager.rb:252:in perform’
app/controllers/posts_controller.rb:215:in create' actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action’
actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in process_action' actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in process_action’
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in block in process_action' activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in block in run_callbacks’
app/controllers/application_controller.rb:424:in block in with_resolved_locale' i18n (1.14.5) lib/i18n.rb:351:in with_locale’
app/controllers/application_controller.rb:424:in with_resolved_locale' activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in block in run_callbacks’
activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in run_callbacks' actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in process_action’
actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in process_action' actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in block in process_action’
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in block in instrument' activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in instrument’
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in instrument' actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in process_action’
actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in process_action' activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in process_action’
actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in process' actionview (7.1.3.4) lib/action_view/rendering.rb:40:in process’
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:89:in block in profile_method' actionpack (7.1.3.4) lib/action_controller/metal.rb:227:in dispatch’
actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in dispatch' actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in dispatch’
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in serve' actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in block in serve’
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in block in find_routes' actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in each’
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in find_routes' actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in serve’
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in call' lib/middleware/omniauth_bypass_middleware.rb:64:in call’
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in call' rack (2.2.9) lib/rack/conditional_get.rb:40:in call’
rack (2.2.9) lib/rack/head.rb:12:in call' actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:399:in call’
lib/middleware/csp_script_nonce_injector.rb:12:in call' config/initializers/008-rack-cors.rb:14:in call’
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in context' rack (2.2.9) lib/rack/session/abstract/id.rb:260:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in block in call’
activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in run_callbacks' actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in call’
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in call' lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in call_app’
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in call' config/initializers/100-quiet_logger.rb:20:in call’
config/initializers/100-silence_logger.rb:29:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in call’
lib/middleware/enforce_hostname.rb:24:in call' rack (2.2.9) lib/rack/method_override.rb:24:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/static.rb:25:in call’
rack (2.2.9) lib/rack/sendfile.rb:110:in call' rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in call’
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in call' lib/middleware/request_tracker.rb:360:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in call' railties (7.1.3.4) lib/rails/engine.rb:536:in call’
railties (7.1.3.4) lib/rails/railtie.rb:226:in public_send' railties (7.1.3.4) lib/rails/railtie.rb:226:in method_missing’
rack (2.2.9) lib/rack/urlmap.rb:74:in block in call' rack (2.2.9) lib/rack/urlmap.rb:58:in each’
rack (2.2.9) lib/rack/urlmap.rb:58:in call' unicorn (6.1.0) lib/unicorn/http_server.rb:634:in process_client’
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in worker_loop' unicorn (6.1.0) lib/unicorn/http_server.rb:547:in spawn_missing_workers’
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in start' unicorn (6.1.0) bin/unicorn:128:in <top (required)>’
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in load' vendor/bundle/ruby/3.3.0/bin/unicorn:25:in <top (required)>’
bundler (2.5.9) lib/bundler/cli/exec.rb:58:in load' bundler (2.5.9) lib/bundler/cli/exec.rb:58:in kernel_load’
bundler (2.5.9) lib/bundler/cli/exec.rb:23:in `run’
bundle

여기서 비롯된 것으로 보입니다. activity_pub_taxonomy 객체에서 moderating_groups가 왜 메서드로 누락되는 것일까요?

group_ids.push(*activity_pub_topic.activity_pub_taxonomy.moderating_groups.pluck(:id))

미리 감사드립니다! 여기에서 해 오신 작업은 놀라웠고, 우리 포럼에서 이를 작동시키고 업데이트를 배포하는 날을 손꼽아 기다리고 있습니다.

"안정판(stable)"이라는 명칭은 "변화하지 않는다"는 의미로 붙여진 것이며, 새 플러그인을 도입하는 등의 변경 작업을 수행할 경우 일반적으로 권장되지 않습니다. 새로운 플러그인 개발은 일반적으로 최신 개발 버전을 따르는 것이 자유롭습니다. 새로운 “안정판” 릴리스는 1년에 몇 번만 이루어지는데, 이는 이러한 작업에 족쇄가 될 것입니다.

이 시점에서 CDCK이 롤링 릴리스에서 "베타"라는 명칭을 제거해주기를 바라는 마음입니다. 실제로는 매우 부적절한 설명이기 때문입니다. 이로 인해 이러한 혼란이 계속 발생하고, 기대치와 실제가 어긋나는 문제가 생기고 있습니다. 하지만 적어도 현재 시점에서 이 플러그인 작업을 위해 3.4.0-beta를 사용해야 할 가능성이 매우 높습니다.

1개의 좋아요

@mcdanlj 감사합니다 :pray:

1개의 좋아요

안녕하세요, ActivityPub 플러그인이 Threads 사용자를 추가하는 것을 지원하는지 궁금합니다. Threads 사용자를 추가해 보았지만, 해당 사용자를 찾을 수 없는 것 같습니다. 도움을 주셔서 감사합니다!

2개의 좋아요

안녕하세요 @joo,

ActivityPub 사양을 따르는 ActivityPub 구현체는 기본적으로 바로 작동해야 하지만, 제가 마지막으로 확인했을 때 Threads에서 ActivityPub에 접근할 수 없었기 때문에(즉, 제 Meta 계정에서), 또한 도움말 문서나 블로그 게시물 외에는 관련 문서를 찾을 수 없어서 아직 Threads에 대한 명시적 지원을 추가하지 않았습니다. Threads가 어떻게 구성되어 있는지 파악할 수 있는 방법이 생기면, Threads에 대한 명시적 지원을 추가하는 것을 검토하겠습니다.

4개의 좋아요

제가 아는 한, EU를 제외한 모든 지역에서 사용 가능해야 합니다. 단, Threads 사용자는 먼저 연동(federation)을 허용해야 합니다.

플러그인과 관련된 모든 것을 (쉽게) 정리할 방법이 있을까요? 현재 제 환경은 꽤나 엉망입니다.

9개월쯤 전에 이 플러그인을 사용해 봤는데, 그때 뭔가 문제가 있어서(무엇이었는지 기억이 나지 않아요) 비활성화했었거든요.

이제 다시 시도해 봤는데, 과거에 머물러 있는 것 같습니다. 모든 마스토돈(Mastodon) 서버가 포럼에서 403 오류를 반환하고 있습니다. 인스턴스들이 제 액터(actors)를 찾지 못하기 때문에 어떤 주제(topics)도 추가로 전송되지 않습니다.

메타(Meta)를 팔로우할 수 없습니다. 대기 중(pending) 상태가 보이지만, 페이지를 전환하면 팔로우 목록이 비어 있습니다. 마스토돈 사용자들도 마찬가지입니다. 사용자를 찾고 대기 중으로 표시하지만, 다른 곳으로 이동하면 목록이 다시 비어 있습니다.

제 액터를 찾을 수 있는 마스토돈 사용자는 세 명뿐인데, 모두 9개월 전에 테스트용으로 사용했던 계정들입니다. 하지만 그것조차 제대로 작동하지 않습니다.

그중 두 명은 제 셀프호스트드 인스턴스에서 온 것이었습니다. 그 서버는 이미 폐기했습니다(마스토돈 업그레이드가 최악으로 치달아 생긴 끔찍한 경험 때문이죠). 이 두 명을 삭제하려고 하면 팔로우 목록에서 사라지긴 하지만, 페이지를 전환하면 다시 나타납니다.

세 번째 사용자는 제 액터를 찾고 팔로우할 수는 있지만, 팔로우 목록에는 절대 표시되지 않습니다. 유령 같은 존재입니다. 주제를 받지 못하고 그저 팔로우만 하고 있습니다.

제 모든 설정은 순수한 표준 설정입니다.

현재로서는 플러그인과 ActivePub와 관련된 모든 것을 정리하는 것 외에는 다른 해결책을 모릅니다. 하지만 그것은 데이터베이스 작업을 필요로 하겠죠?

3개의 좋아요

Jagster님, 안녕하세요.

데이터를 초기화할 이유는 전혀 없습니다. 해당 플러그인의 기본 데이터 구조는 출시 이후 변경된 적이 없으며, 구조가 변경될 경우 데이터는 적절하게 마이그레이션됩니다. 대신 무엇이 문제인지 함께 찾아보겠습니다.

먼저 포럼 링크를 공유해 주실 수 있을까요? 이곳 메타에서 채팅으로 보내주시면 됩니다. 분명 문제를 해결할 수 있을 거예요 :slight_smile:

1개의 좋아요

저도 다양한 유형의 서버/서비스를 사용하지만, 제 지식과 관점은 확실히 최종 사용자 수준에 가깝습니다. 그래서 전체 삭제 같은 솔루션이 매우 논리적으로 느껴지죠 :joy:

공개 포럼이라 여기에서 공유해도 되는 내용입니다. 그리고 순수 핀란드어 콘텐츠라 광고로 간주되지 않으니… ActivePub가 사용되는 한 카테고리로 바로 연결됩니다: Ihminen, luonto & maailma - Katiskan foorumi

혹시, 카테고리 링크에는 항상 ../none이 붙어 있던가요? :thinking:

9개의 게시글이 새로운 주제 ActivityPub 연결 문제 디버깅 방법으로 분리되었습니다.

다시 한번 혼란스럽습니다. 이 맥락은 제 포럼에서 Mastodon으로의 연동 관련이며, 이 문제는 더 일반적인 것일 수도 있습니다.

카테고리가 연동(federate)되고 가시성이 공개(public)로 설정되어 있습니다. 하지만 Mastodon에서는 비공개 목록(unlisted)으로 표시되는데, 열린 자물쇠 아이콘이 바로 그 뜻이 맞나요? 공개 가시성을 나타내는 아이콘은 지구본이어야 하는 것 아닌가요? 물론, 비공개 목록도 일종의 공개라고 볼 수는 있겠습니다.

비공개 목록으로 설정하는 이유는 무엇인가요?

Jagster님, 어떤 게시 유형을 사용 중이세요?

첫 번째 게시물 (공개, 노트)

다시 떠올려 주셔서 감사합니다. 내일 아침에 제가 직접 테스트해 보겠습니다.

2개의 좋아요

좋아. 다들 주말을 보냈으니, 그 질문은 최우선 순위의 문제는 아니지.

1개의 좋아요

명확성을 위해 간단한 질문을 드리고자 합니다…

새 ActivityPub 지원 주제로 게시물을 이동하면 어떤 일이 발생합니까?

다음 과정을

  1. 비공개 카테고리에서 긴 게시글로 주제에 답장하기
  2. 거기서 다른 사람들의 피드백을 통합하기
  3. 게시물을 공개 카테고리의 새 주제로 분리하기

대화가 자연스럽게 이루어질 때 초안(Drafts)의 적절한 대안이라고 생각합니다. 하지만 이동된 게시물은 과거의 타임스탬프를 가지게 되는데, ActivityPub 지원 카테고리로 이동할 때 ActivityPub가 이를 인식하지 못할까 봐 걱정됩니다.

이 문제를 해결했다고 확신했지만, 스펙(spec)이 없으면 실제로 해결된 것이 아닙니다. 이 PR이 병합되면 해결될 것입니다.

스펙에 게시물 이동의 모든 주요 조합을 나열했습니다.

Topic
  move_posts
    with posts in an ap category
      with first_post enabled
        when moved to an existing non-ap topic
          moves the posts
          updates the note references
          does not create new objects or activities
        when moved to an existing first_post topic
          updates the note references
          moves the posts
          does not create new objects or activities
        when moved to a new non-ap topic
          moves the posts
          updates the note references
          does not create new objects or activities
        when moved to a new first_post topic
          does not create new objects or activities
          does not create a collection for the new topic
          moves the posts
          updates the note references
      with full_topic enabled
        when moved to an existing full_topic topic
          does not create new collections, objects or activities
          moves the posts
          updates the note references
        when moved to a new non-ap topic
          updates the note references
          moves the posts
          does not create new collections, objects or activities
        when moved to a new full_topic topic
          updates the note references
          does not create new objects or activities
          creates a collection for the new topic
          moves the posts
        when moved to an existing non-ap topic
          moves the posts
          updates the note references
          does not create new collections, objects or activities
    with posts in a non ap category
      when moved to an existing full_topic topic
        does not create new collections, objects or activities
        moves the posts
      when moved to a new first_post topic
        does not create a collection for the new topic
        moves the posts
        does not create new objects or activities
      when moved to an existing first_post topic
        does not create new collections, objects or activities
        moves the posts
      when moved to a new full_topic topic
        moves the posts
        does not create new objects or activities
        creates a collection for the new topic

위 내용은 태그 액터(tag actors)에도 mutatis mutandis(적절한 변경을 가하여) 적용됩니다. 따라서 질문하신 내용에 대해 구체적으로 답변하자면: 게시물을 이동한 후에도 게시물은 비공개 상태로 유지됩니다. 즉, 상태는 다음과 같이 표시됩니다:

토픽의 카테고리를 변경하는 경우에도(예: 비공개 토픽을 AP 카테고리(또는 태그)로 이동하는 경우) 동일한 규칙이 적용됩니다.

두 경우(게시물 이동 또는 카테고리 변경) 모두에서 수동 게시(manual publish) 기능을 사용하여 게시물을 수동으로 게시할 수 있습니다. 다만 현재 이 기능은 first post 액터와 연결된 토픽에만 사용할 수 있습니다.

곧 full topic 액터를 가진 이동되거나 카테고리가 변경된 게시물의 수동 게시 기능도 추가할 예정입니다. 해당 기능의 주요 조합이 고려되었는지 확인하고 싶기 때문에 현재는 사용할 수 없습니다.

2개의 좋아요

제가 말한 사용 사례는 바로 이거였네요:

음, Directions to O₅F₂FDEM - Announcements - OFFDEM 에서 뭔가 문제가 있는 것 같습니다. 카테고리는 Note/Full Topic으로 설정되어 있지만, 오랜 시간 동안 페디버스(Fediverse)에 아무것도 게시하지 않았습니다. 또한 게시글에 액티비티펍 아이콘이 표시되지 않습니다. 액터를 리셋하거나 SIGHUP 신호를 보내는 방법이 있을까요?

(@infodesk@oxygen.offdem.net)

아! 바로 그거였군요. 정말 감사합니다 @angus, 최고입니다.

1개의 좋아요

사용자 프로필에 연결된 액터가 Pixelfed 사용법을 잘 모르는 것 같습니다. Mastodon과 거의 동일해야 하지만, 차이점이 있을 수도 있겠네요.

Zuckerberg 덕분에 Pixelfed이 빠르게 성장하고 있으니, 언젠가 옵션으로 추가되면 좋겠습니다.

Bookwyrm도 마찬가지입니다. 다른 곳에서 토론을 연결할 수요가 있을 수 있습니다. 언젠가는요. 책 관련 토론을 Discourse에 연결하는 수요가 쉽게 생길 것 같습니다. 알아요 — 기본적으로 카테고리를 열어 무언가가 만들어지기를 바라는 것과 같습니다 :man_shrugging: