مكون إضافي ActivityPub

سألقي نظرة على دعم Pixelfed الصريح بعد أن ألقي نظرة (مرة أخرى) على Lemmy و Wordpress :+1:

بينما يجب أن تكون جميع منصات ActivityPub قابلة للتشغيل المتبادل من حيث المبدأ، إلا أنها تتطلب دائمًا بعض التعديلات لجعل كل تكامل صحيحًا. خاصة وأننا نستخدم المواضيع ومعظم التطبيقات الأخرى هي مجرد تدفقات للمنشورات.

إعجاب واحد (1)

ووردبريس؟ لديها حلها الخاص من أتماتيك. غريب بعض الشيء مع كل تلك الأشياء المتعلقة بالأصدقاء. أم تقصد شيئًا خاصًا بملف تعريف المستخدم؟

إعجاب واحد (1)

عمل جيد. شكرا لك!

لقد كنت أحاول تشغيل هذا بشكل صحيح، منذ أن نشرت في أغسطس وأعتقد أن مشكلتي قد تكون أبسط مما كنت أعتقد في البداية.

قد أكون محظورًا من متابعة الفاعل على مثيل Mastodon.

في ذلك الوقت، قمت بإعادة تثبيت Discourse، والمكون الإضافي، ونقلت الموقع إلى خادم مختلف، ثم اليوم، قمت بتغيير اسم النطاق معتقدًا أنه قد يكون السبب.

كنت قادرًا على المتابعة من حساب mastodon.social وحساب من مثيل Sharkey، وكلاهما عمل بشكل جيد.

لا أعتقد أن المثيل محظور على الخادم (مرة أخرى، لقد غيرت مزودي الخادم وغيرت أسماء النطاقات)، ولكنني أود الحصول على رأي ثانٍ.

[Discourse Activity Pub] طلب GET إلى https://mastodon.ie/users/padraig فشل: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(401 Unauthorized)
[Discourse Activity Pub] فشل في معالجة https://mastodon.ie/users/padraig: تعذر حل الفاعل
[Discourse Activity Pub] فشل في معالجة https://mastodon.ie/b35f6088-19b9-472d-a277-e0310fed585f: تعذر إنشاء الفاعل
[Discourse Activity Pub] DiscourseActivityPub::AP::Handlers::Warning

إذا كنت بحاجة إلى تتبع المكدس و/أو البيئة، فيرجى إخباري :slight_smile:

هل mastodon.ie مسموح به هنا activity pub allowed request origins؟ وقد تحتاج إلى تمكين أو تعطيل activity pub require signed requests.

لدي هذا معطلاً ولا توجد إدخالات في الخيارات التالية (إذًا يجب أن يعني هذا أنه يمكن لأي شخص متابعة @general@gamersandgeeks.net، أليس كذلك؟):

مرحباً بالجميع،

لدي العديد من منتديات Discourse متصلة باستخدام المكون الإضافي ActivityPub. إذا قمت بتثبيت Discourse AI على أحد هذه المنتديات، فهل يمكن لروبوت الذكاء الاصطناعي الوصول إلى المحتوى واستخدامه من المثيلات الموحدة الأخرى للإجابة على الأسئلة في واجهة الدردشة الخاصة به؟

شكراً!

@Crakila يرجى مراجعة الخطوات والمناقشة في هذا الموضوع، وتابع هناك إذا لم تعالج هذه الاقتراحات مشكلتك:

إذا تم فيدرالية المحتوى إلى مثيل، فيمكن لروبوت الذكاء الاصطناعي الموجود على هذا المثيل استخدام هذا المحتوى. كل المحتوى “البعيد” الموجود على مثيل له نفس حالة المحتوى “المحلي” لأغراض الوظائف الأخرى.

إعجاب واحد (1)

أتساءل فقط… هل هناك بعض الأسئلة خلف الكواليس؟

شكرا. كرة أرضية جميلة ظاهرة :smiling_face_with_three_hearts:

إعجابَين (2)

ما هذا :thinking:

`skip_email_validation=' for an instance of Category
Message (46 copies reported)

Job exception: undefined method `skip_email_validation=' for an instance of Category

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activemodel-7.2.2.1/lib/active_model/attribute_methods.rb:512:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/attribute_methods.rb:491:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:150:in `update_user'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:47:in `block in update_or_create_user'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:415:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:45:in `update_or_create_user'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/actor_handler.rb:82:in `update_or_create_user'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:782:in `block (2 levels) in activate!'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:76:in `block in apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `all?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:873:in `block (2 levels) in activate!'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:76:in `block in apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `all?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:74:in `apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/handlers.rb:24:in `apply_handlers'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:64:in `perform_activity'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:38:in `block in perform_transactions'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in `perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity/announce.rb:26:in `process'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'

هذه هي حسابي. هل يبدو الأمر كما لو أنني لم أتحقق من بريدي الإلكتروني في المثيل أو بطريقة ما في الفئة، وأن ActivityPub لا يعرف كيفية التعامل مع هذا الموقف؟

كل شيء يبدو أنه يعمل بشكل طبيعي، على الرغم من ذلك.

إعجاب واحد (1)

هل هناك خطة لجعل مستخدمي Discourse ممثلين أيضًا؟

بالنظر إلى ActivityPub كبروتوكول للعمل في العلن، يبدو هذا خطوة مفقودة لاستخدام Discourse كمكان يمكن متابعته لأفكار المرء الخاصة.

توسيع نطاق الخطاب للعمل كنسخة أصيلة؟ هناك إيجابيات وسلبيات لذلك، إذا كان ذلك ممكنًا تقنيًا الآن.

شكراً على التقرير. لا ينبغي أن يؤثر على أي شيء مادي. سيتم معالجته قريباً.

إعجاب واحد (1)

مستخدمو Discourse هم بالفعل ممثلون لـ ActivityPub. أنت فقط لا يمكنك متابعتهم. تم بناء المكون الإضافي للسماح بهذا الاحتمال. السؤال هو ما إذا كان ذلك حكيمًا.

إعجابَين (2)

لا يعجبني. إنه يغير الفكرة الأساسية للمنتديات نحو مثيل Mastodon خالص، ولهذا لدينا بالفعل خيار، Mastodon. لا يزال هناك فرق كبير بين متابعة المواضيع ومتابعة الأشخاص.

مشاركة المحتوى عبر ActivityPub شيء مختلف تمامًا.

سيؤدي ذلك إلى تدمير منتداي على الأقل على الفور. حتى الآن، المشاركات عبر ActivityPub تمثل رفضًا كبيرًا لبعض مستخدمي. وسيؤدي الوضع الذي يستخدم فيه بعض المستخدمين Mastodon بالكامل عبر Discourse، وفي نفس الوقت لا يستخدمه آخرون، إلى صراع هائل.

قد يقول البعض أن هذا هو العيش اليومي في عالم Mastodon، لأنه حتى لو شارك المرء في سلسلة محادثات، فإن المحادثة بأكملها ليست مرئية، إلا عند زيارة الأصلية عبر المتصفح. ولكن لا يزال - لا.

3 إعجابات

أخطط لإعداد منصة بث مباشر مستضافة ذاتيًا واستخدام Discourse كبرنامج للمنتدى، مع دمج دردشة Discourse المباشرة في البث المباشر.

لقد اكتشفت مؤخرًا برامج fediverse، واعتقدت أن Peertube ستكون رائعة لتحميل محتوى VOD، مما قد يزيد من قابلية اكتشاف منصتي حيث يمكن للناس رؤية مقاطع الفيديو من Mastodon ثم اكتشاف بقية موقعي من هناك.

هل يمكنني استخدام هذا المكون الإضافي للسماح للأشخاص باستخدام حساب AP الخاص بهم لتسجيل الدخول إلى مثيل Discourse الخاص بي، مثلما تفعل العديد من المواقع مع تسجيل الدخول عبر Google/Facebook؟

قد ترغب أيضًا في الاطلاع على هذا المكون الإضافي:

إعجاب واحد (1)

هل تعتقد أنه يمكن الإجابة على سؤال ما إذا كان ذلك حكيمًا بشكل عام، مع الأخذ في الاعتبار جميع حالات استخدام Discourse الممكنة؟

في حالتي، ما زلت أبحث عن طرق لاستخدام fediverse بشكل منتج. أفضّل التفكير علنًا باستخدام Discourse كمساحة رقمية خاصة بي. حاليًا، الطريقة الوحيدة التي أراها للحصول على تغذية عامة لأفكاري هي امتلاك حساب على مثيل Mastodon، ومتابعة جميع فئات حديقتي الخاصة، وتعزيز كل رسالة أنشرها عبر هذا الحساب.

أود تجربة استخدام Discourse كصلة رئيسية لي مع fediverse.

إعجابَين (2)