ActivityPubプラグイン

ご協力ありがとうございます!これを有効にするのが待ちきれません。また、さまざまなセットアップを持つ私たちがおそらくより広いシナリオでテストに貢献できるように、テスト用にリリースしていただきありがとうございます。

このサイトでこれを有効にする時期を考えると、「一方通行のドア」が何であるかを考えています。

サブカテゴリ

8つのトップレベルカテゴリがありますが、それに加えて21の公開サブカテゴリがあります。すべての公開サイトアクティビティをフォローするために29のアクターをフォローする必要があるのは、多すぎるように思えます。さらに、カテゴリをフォローしてもサブカテゴリはフォローされないというのは、ユーザーにとって驚きかもしれません。

カテゴリのActivityPub設定で「公開サブカテゴリもフェデレーションする」オプションを選択できれば、そうします。サブカテゴリを個別にフェデレーションするかどうかは、ユーザーの観点からはほとんど一方通行のドアのように思えます。したがって、「サブカテゴリもフェデレーションする」オプションを検討していただければ、私の計画に役立つでしょう。デフォルトのサイドバーにはトップレベルカテゴリのみが表示され、それらを表示したときのDiscourseのデフォルトは、トップレベルとサブカテゴリのすべてのコンテンツが一緒に表示されるため、Discourseの期待とかなり一致しているようです。

すべてのものをフェデレーション!

サイト全体のActivityPubアクター設定を追加して、サイト上のすべての公開投稿をフェデレーションするのも興味深いと思います。私も自分でそれを使用します。しかし、それを一方通行のドアとは見なしていません。カテゴリフェデレーションが他に準備ができ次第設定し、後で「すべて@」アクターを追加してすべてをフェデレーションする可能性があります。

編集制限

あなたの投稿からは明らかではないことの1つは、編集できないのは文字通りの [note]...[/note] セクションだけであると読めることです。他の人にとっては、実際に意味するのは、フェデレーションすると、文字通りの [note]...[/note] セクションを持つ投稿を除き、フェデレーションされたすべての投稿で編集が無効になるということです。このメッセージは、編集を保存しようとしたときにのみ表示されます。

私のサイトでは、十分に信頼されているユーザーが無限に編集できるように意図的に設定しているため、この制御を無効にできない(または編集がフェデレーションされるため制御が削除される)限り、これを有効にすることはできません。そのような信頼できるサイトを超えて適用できる一般的な例として、ウィキモードの投稿があるカテゴリは、そのカテゴリのフェデレーションを設定すると壊れます。

ウィキにしたフェデレーションされた投稿を削除しようとしましたが、これが発生しました。

しかし、投稿は削除され、削除はフェデレーションされました。

個性

指定されたアクターごとにプロフィール画像を提供できると良いでしょう。Mastodonでは、各カテゴリのアクターに灰色の象の画像が表示されるだけで、ここに少し個性を加えたいと思っています。:smiling_face:

エラーログ

これまでのところ、activitypubプラグインからログに2種類の જો error が記録されています。

Message (3 copies reported)

NoMethodError (undefined method `ap_type' for nil:NilClass)
(eval):7:in `_fast_attributes'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:18:in `object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:18:in `_object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:9:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:50:in `json'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `map'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `ordered_items'
(eval):7:in `_fast_attributes'
Message

Job exception: undefined method `model' for #<DiscourseActivityPubActivity id: 2, ap_id: "https://social.makerforums.info/cf2e1e8d-83e3-447e...", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 3, object_id: "1", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 02:23:13.798564000 +0000", updated_at: "2023-06-01 02:23:13.798564000 +0000">


Backtrace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activemodel-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

重ねて、この作業に感謝します!

「いいね!」 8