Плагин ActivityPub

Да, теперь вы можете изменять preferredUsername акторов. Обратите внимание на следующее в части взаимодействия с Mastodon:

Отображаемое имя пользователя для актора изменится только после того, как кто-либо выполнит поиск по новому адресу. Подписка, публикация и другие действия будут продолжать работать независимо от отображаемого имени пользователя.

Я надеялся, что мой PR в Mastodon будет принят до слияния этого изменения.

Тем не менее, учитывая, что тесты на приемку показывают, что 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» называются так в смысле «неизменные» и обычно не рекомендуются, если вы вносите изменения, например, внедряете новые плагины. Разработка новых плагинов, как правило, свободно следует текущим версиям разработки. Новые «стабильные» релизы выпускаются лишь несколько раз в год, и это стало бы сковывающим фактором для такой работы.

В данный момент мне бы хотелось, чтобы CDCK убрал приставку «beta» из названия своих rolling-релизов, поскольку это не совсем точное описание. Это постоянно вносит путаницу, как в данном случае, и создаёт несоответствующие ожидания. Однако версия 3.4.0-beta — это почти наверняка то, с чем вам стоит работать с этим плагином, по крайней мере на данный момент.

1 лайк

Спасибо, @mcdanlj :pray:

1 лайк

Здравствуйте, поддерживает ли плагин ActivityPub добавление пользователей Threads? Я попытался добавить пользователя Threads, но, похоже, не могу его найти. Спасибо за помощь!

2 лайка

Привет @joo,

Хотя любая реализация ActivityPub, соответствующая спецификации, должна работать сразу из коробки, я пока не пытался добавить явную поддержку Threads, так как при последней проверке у меня не было доступа к ActivityPub в Threads (то есть на моих собственных аккаунтах Meta), и я не мог найти никакой документации по этому вопросу, кроме некоторых статей помощи и записей в блогах. Как только появится возможность получить представление о том, как это настроено, я займусь добавлением явной поддержки Threads.

4 лайка

Насколько мне известно, это должно быть доступно везде, кроме ЕС. Однако пользователь Threads должен сначала разрешить федерацию.

Есть ли какой-нибудь (простой) способ полностью удалить всё, что связано с этим плагином? У меня сейчас настоящий хаос.

Я пробовал плагин примерно 9 месяцев назад, но что-то пошло не так — не помню что именно — и я его отключил.

Теперь я попытался снова, но похоже, что всё застряло в прошлом. Каждый сервер Mastodon возвращает ошибку 403 для форума. Инстансы не могут найти моих акторов, поэтому темы не передаются дальше.

Я не могу подписаться на Meta. Я вижу статус «ожидание», но при переходе на другую страницу список подписок становится пустым. То же самое происходит с пользователями Mastodon: система их находит, показывает статус «ожидание», но при переходе на другую страницу список снова пуст.

У меня есть три пользователя Mastodon, которые могут найти моих акторов, и все они — аккаунты, которые я использовал для тестирования девять месяцев назад. Но даже это работает некорректно.

Два из них были с моего собственного инстанса. Этот сервер уничтожен (из-за ужасного опыта обновления Mastodon, которое прошло крайне неудачно). Когда я пытаюсь удалить эти два аккаунта, они исчезают из списка подписок, но при переходе на другую страницу они снова появляются.

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

Все мои настройки — чистый стандарт.

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

3 лайка

Привет, @Jagster.

Нет никаких причин очищать ваши данные. Структура данных, на которой основан плагин, не менялась с момента его выпуска. Если изменения происходят, данные мигрируются соответствующим образом. Давайте лучше разберёмся, что именно пошло не так.

Для начала, пожалуйста, поделитесь ссылкой на ваш форум. Возможно, отправьте её мне в чат здесь, на Meta. Я уверен, что мы сможем всё исправить :slight_smile:

1 лайк

Даже у меня используются разные типы серверов/сервисов, но мои знания и точка зрения находятся на уровне обычного пользователя. Поэтому решения вроде полного уничтожения кажутся очень логичными :joy:

Это публичный форум, так что я могу разместить это здесь. А так как текст на чистом финском, его нельзя считать рекламой… Это приводит нас прямо к одной категории, где используется ActivePub: Ihminen, luonto & maailma - Katiskan foorumi

Не по теме, но всегда ли ссылки на категории содержали ../none :thinking:

9 сообщений были перенесены в новую тему: Как отладить проблемы с подключением в ActivityPub

Я снова немного запутался. Контекст: мой форум и Mastodon — хотя это может быть более общая проблема.

Категория имеет федерацию, и видимость установлена как «публичная». Но в Mastodon она помечена как «не в списке» — это и означает открытый замок, верно? Иконка должна быть глобусом, указывающим на публичную видимость. Конечно, «не в списке» тоже публично, в каком-то смысле.

В чём причина скрытия из списка?

Привет, @Jagster, какой тип публикации вы используете?

Первый пост (публичный, заметка)

Просто хочу напомнить, что я вас не забыл. Завтра с самого утра я сам это проверю.

2 лайка

Круто. У всех были выходные, и этот вопрос не совсем приоритетный.

1 лайк

Вопрос для прояснения…

Что происходит при перемещении поста в новую тему с поддержкой ActivityPub?

Я считаю процесс

  1. ответа на тему с длинным сообщением в приватной категории
  2. интеграции обратной связи от других участников там
  3. разделения поста на новую тему в публичной категории

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

Я был уверен, что уже рассмотрел этот вопрос, но ничего не считается решённым, пока нет спецификации! Это будет исправлено после слияния.

В спецификации я перечислил все основные варианты перемещения постов.

Тема
  move_posts
    с постами в категории AP
      с включённым first_post
        при перемещении в существующую не-AP тему
          перемещает посты
          обновляет ссылки на заметки
          не создаёт новых объектов или активностей
        при перемещении в существующую тему с первым постом
          обновляет ссылки на заметки
          перемещает посты
          не создаёт новых объектов или активностей
        при перемещении в новую не-AP тему
          перемещает посты
          обновляет ссылки на заметки
          не создаёт новых объектов или активностей
        при перемещении в новую тему с первым постом
          не создаёт новых объектов или активностей
          не создаёт коллекцию для новой темы
          перемещает посты
          обновляет ссылки на заметки
      с включённым full_topic
        при перемещении в существующую тему full_topic
          не создаёт новых коллекций, объектов или активностей
          перемещает посты
          обновляет ссылки на заметки
        при перемещении в новую не-AP тему
          обновляет ссылки на заметки
          перемещает посты
          не создаёт новых коллекций, объектов или активностей
        при перемещении в новую тему full_topic
          обновляет ссылки на заметки
          не создаёт новых объектов или активностей
          создаёт коллекцию для новой темы
          перемещает посты
        при перемещении в существующую не-AP тему
          перемещает посты
          обновляет ссылки на заметки
          не создаёт новых коллекций, объектов или активностей
    с постами в не-AP категории
      при перемещении в существующую тему full_topic
        не создаёт новых коллекций, объектов или активностей
        перемещает посты
      при перемещении в новую тему с первым постом
        не создаёт коллекцию для новой темы
        перемещает посты
        не создаёт новых объектов или активностей
      при перемещении в существующую тему с первым постом
        не создаёт новых коллекций, объектов или активностей
        перемещает посты
      при перемещении в новую тему full_topic
        перемещает посты
        не создаёт новых объектов или активностей
        создаёт коллекцию для новой темы

Обратите внимание, что вышеизложенное применяется mutatis mutandis к акторам тегов. Таким образом, отвечая на ваш конкретный вопрос: ваши посты останутся неопубликованными после перемещения, то есть статус будет выглядеть так:

Обратите внимание, то же самое верно и при смене категории темы, то есть при перемещении неопубликованной темы в категорию (или тег) AP.

В обоих случаях (перемещение постов или смена категории) вы можете вручную опубликовать пост(ы), используя функцию ручной публикации, хотя в настоящее время она доступна только для тем, связанных с актором first post.

Вскоре я добавлю возможность ручной публикации перемещённых или перекатегоризированных постов с актором full topic. Я хочу убедиться, что все основные варианты использования этой функции учтены, именно поэтому сейчас это невозможно.

2 лайка

Тогда это мой случай использования:

Хм, что-то не так на https://oxygen.offdem.net/t/directions-to-o-f-fdem/460: категория — Note/Full Topic, но в Фидиверс ничего не публиковалось уже давно. И иконка ActivityPub не отображается на посте. Есть ли способ как-то сбросить / отправить SIGHUP Актору?

(@infodesk@oxygen.offdem.net)

Ха! Именно это. Большое спасибо, @angus, ты крут.

1 лайк

Связанный аккаунт в профиле пользователя не знает, как пользоваться Pixelfed. Это должно быть очень похоже на Mastodon, но, конечно, могут быть некоторые различия.

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

То же самое с Bookwyrm — может возникнуть спрос на обсуждение подключений где-то ещё. В любом случае, когда-нибудь. Но я легко вижу спрос на обсуждение подключения книг к Discourse. Я знаю — это в основном то же самое, что создать категорию в надежде, что она что-то породит :man_shrugging: