ActivityPub 插件

好的,你能给我一个带有 note 标签的帖子示例,其中 note 标签被忽略了吗?还有 Mastodon 或类似的 note。

如果你能指出在帖子首次创建时 note 标签应用的位置(因为我无法访问编辑视图/历史记录)。

如果你还能分享一下 ActivityPub 站点设置中当前的 note 最大字符数是多少。

谢谢!

我做了几个额外的测试,但出乎我意料的是,为了让 [note][/note] 标签被识别,它们之间不能有换行符或行中断。

移除它们后效果更好,但整体信息看起来不太好……我猜没有办法包含它们了?

感谢您的更新。您能否分享:

  1. 您当前正在工作的示例。
  2. 您期望正在工作的示例。
  3. 最好是指向您正在工作的示例的链接。

这将帮助我测试和验证您提到的具体问题。示例总是有帮助的,可以确保我们步调一致。

您可以看到 TicketZon: concerti e mostre nel fediverso - Progetti - forum.linux.it 被报告为已共享,但实际上并未共享。
该帐户存在于 Mastodon 上,在日志中我终于为您找到了一些信息:

[Discourse Activity Pub] https://forum.linux.it/ap/actor/fc1e23a5fc2214ab70c6c0aa1061a4f0 无法安排 https://forum.linux.it/ap/activity/229b771ac7e5943928795da1122d847d 进行传递:无收件人

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:93:in `log_failure'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:35:in `can_deliver?'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:13:in `perform'

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

/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:140:in `activity_pub_deliver_activity'

/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:38:in `perform_activity_pub_activity'

/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:680:in `block (2 levels) in activate!'

/var/www/discourse/lib/plugin/instance.rb:545:in `block in on'

/var/www/discourse/lib/discourse_event.rb:12:in `block in trigger'

/usr/local/lib/ruby/3.2.0/set.rb:511:in `each_key'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each'
/var/www/discourse/lib/discourse_event.rb:12:in `trigger'

/var/www/discourse/lib/post_destroyer.rb:115:in `recover'

/var/www/discourse/app/controllers/topics_controller.rb:689:in `recover'

actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack-7.0.8.1/lib/abstract_controller/base.rb:215:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb:165:in `process_action'

actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'

/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'

i18n-1.14.4/lib/i18n.rb:322:in `with_locale'

/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:127:in `block in run_callbacks'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:138:in `run_callbacks'

actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:233:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb:23:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'

activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `block in instrument'

activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `instrument'

actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:66:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'

activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack-7.0.8.1/lib/abstract_controller/base.rb:151:in `process'

actionview-7.0.8.1/lib/action_view/rendering.rb:39:in `process'

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

actionpack-7.0.8.1/lib/action_controller/metal.rb:188:in `dispatch'

actionpack-7.0.8.1/lib/action_controller/metal.rb:251:in `dispatch'

actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'

actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'

actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'

actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'

/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'

rack-2.2.8.1/lib/rack/tempfile_reaper.rb:15:in `call'

rack-2.2.8.1/lib/rack/conditional_get.rb:40:in `call'

rack-2.2.8.1/lib/rack/head.rb:12:in `call'

actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'

/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'

/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'

/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'

/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'

rack-2.2.8.1/lib/rack/session/abstract/id.rb:266:in `context'

rack-2.2.8.1/lib/rack/session/abstract/id.rb:260:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:99:in `run_callbacks'

actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'

logster-2.19.1/lib/logster/middleware/reporter.rb:40:in `call'

railties-7.0.8.1/lib/rails/rack/logger.rb:40:in `call_app'

railties-7.0.8.1/lib/rails/rack/logger.rb:27:in `call'

/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'

/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'

/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'

rack-2.2.8.1/lib/rack/method_override.rb:24:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb:14:in `call'

rack-2.2.8.1/lib/rack/sendfile.rb:110:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb:131: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'

/var/www/discourse/lib/middleware/request_tracker.rb:236:in `call'

railties-7.0.8.1/lib/rails/engine.rb:530:in `call'

railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'

railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'

rack-2.2.8.1/lib/rack/urlmap.rb:74:in `block in call'

rack-2.2.8.1/lib/rack/urlmap.rb:58:in `each'

rack-2.2.8.1/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)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

在此 PR 中,我为 [note][/note] 标签添加了块支持(需要审查和合并)

这将是标准的 Discourse markdown 块支持,遵循此处描述的方法

所以这样

[note]
第一行

第二行
[/note]

第三行

将产生 Note 内容为

“第一行\n第二行”

而这样

[note]第一行

第二行[/note]

第三行

将产生 Note 内容为

第一行\n第二行\n第三行

(即 [note][/note] 标签被忽略并删除)

这意味着没有人在关注 Category actor,所以它没有要传递的对象。

2 个赞

嗯,出于同样的原因,帖子中应该有一个绿色的标记来说明它是否已发布?
我现在关注 Mastodon 上的所有各种类别,我将进行测试。

我确认此操作有效,需要关注该账户。

1 个赞

也许您期望的是,即使没有任何关注者,Category Actor 的帖子仍然会显示为 Actor 在 Mastodon 上的表示形式的 toots? 这将需要 Mastodon 实现一个版本的 outbox 导入,即

请注意,此插件将很快支持 outbox 导入(功能已内置,将在即将发布的更新中向管理员公开)。换句话说,您将能够回填来自远程 Actor 的内容。

3 个赞

现在对我来说可以了,使用了 Making sure you're not a bot!

1 个赞

我也遇到了整个音符未列出的错误。我哪里做错了?我需要在下面显示的区域中添加一个@符号吗?

我不确定我在这里哪里做错了。

抱歉,我不太明白。您能再解释一下吗?

没有内容发布到 ActivityPub。

您能否更详细地解释一下您期望发生什么?例如:

  1. 我在论坛上发帖。
  2. 我期望看到……

我已经发现,当我发布到启用了此功能的类别时,它们并未发布到 ActivityPub。它们根本没有被发布。

“ActivityPub”是什么意思?您期望在哪里看到它?抱歉提问。我想从可用性的角度来弄清问题,所以我想让您用自己的话来解释 :slight_smile:

您可能遇到了其他人报告的相同问题,即您的类别没有关注者。如果没人关注该帖子,它就不会出现在任何地方,因为它无处可发送。换句话说:

ActivityPub 发布依赖于关注关系才能正常工作。您的类别参与者仍然会显示在 Mastodon(或其他服务)上,而没有任何关注者,但请记住,Mastodon 在那里显示的内容取决于 Mastodon。

如果您能更详细地说明您的期望,那将非常有帮助!也许您可以举一个您认为运行良好的其他 ActivityPub 服务的例子?谢谢。

小眼睛图标上有一条斜线,当我点击它时,它显示“未发布”。

最有可能的原因是您的类别没有关注者。如果您启用站点设置 activity_pub_verbose_logging 并在日志中查看,您可能会看到类似这样的消息:

我肯定会在该模式中添加一个“原因”,因为这个问题已经出现过几次了!在 Mastodon 上关注您的类别,然后创建一个新主题。

编辑,或者在这种情况下我可能只会将其更改为“已发布”,因为它确实将活动添加到出站。它只是没有将任何内容发送到任何地方(因为它无处发送)。所以它技术上是“已发布”(即它在出站中)。

3 个赞

现在是时候实施这个协议,还是我应该再等一会儿?我想将我的社区开放给 Fediverse 并永久存档所有内容,但我在阅读 Mastodon 和 Lemmy 时,认为新的法律正在出台。

我认为讨论任何特定司法管辖区的法律情况可能超出了本主题的范围。 :slight_smile:

1 个赞

这里有一些更新要分享!所有 ActivityPub 配置将很快移至统一的管理面板:

以下标签很快将成为可能:

与 NodeBB、Flarum、Lemmy 和其他一些 ActivityPub 平台一起,我们创建了一个 W3C 工作组,以更好地协调 Fediverse 中的论坛和链接共享软件。我们已经在通过 ActivityPub 协调这项工作。例如,我们的下一次会议正在 Discourse 和 NodeBB 的一个主题中进行组织

6 个赞