مكون إضافي ActivityPub

مرحباً :wave:
أولاً وقبل كل شيء، شكراً على العمل الرائع الذي تم بذله لتحقيق ذلك. لا يمكنني أن أكون أسعد بقرار نقل مجتمعنا إلى Discourse بفضل هذا.

لقد أضفت المكون الإضافي إلى نسختنا وقمت بتكوين ممثل واحد. ومع ذلك، عندما أنشر في فئة مرتبطة بممثل، أحصل على “خطأ في الخادم الداخلي”. لم أتمكن من العثور على الكثير في السجلات بخلاف فشل الطلب بخطأ 500:

[no timestamp]  by PostsController#create as JSON
[no timestamp]  Parameters: {"raw"=>"This is just a test test test", "title"=>"This is just a test test test", "unlist_topic"=>"false", "category"=>"10", "is_warning"=>"false", "archetype"=>"regular", "typing_duration_msecs"=>"200", "composer_open_duration_msecs"=>"3160", "shared_draft"=>"false", "draft_key"=>"new_topic", "activity_pub_visibility"=>"public", "nested_post"=>"true"}
Sep 25 15:06:38 - Processing by PostsController#create as JSON
Sep 25 15:06:38 - Parameters: {"raw"=>"This is just a test test test", "title"=>"This is just a test test test", "unlist_topic"=>"false", "category"=>"10", "is_warning"=>"false", "archetype"=>"regular", "typing_duration_msecs"=>"200", "composer_open_duration_msecs"=>"3160", "shared_draft"=>"false", "draft_key"=>"new_topic", "activity_pub_visibility"=>"public", "nested_post"=>"true"}
Sep 25 15:06:38 - 172.18.0.1 - - [25/Sep/2024:13:06:38 +0000] "POST /message-bus/3e2e0add2e9a41cc9ce7041980fe4f81/poll HTTP/1.1" 200 2438 "https://community.tuist.io/c/announcements/10" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0"
Sep 25 15:06:38 - 172.18.0.1 - - [25/Sep/2024:13:06:38 +0000] "POST /message-bus/3e2e0add2e9a41cc9ce7041980fe4f81/poll HTTP/1.1" 200 115 "https://community.tuist.io/c/announcements/10" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0"
[no timestamp]  2024-09-25T13:06:38Z cloudron 37a832f8-20ab-41d7-9d4d-82052354c0eb 1101 37a832f8-20ab-41d7-9d4d-82052354c0eb - 172.18.0.1 - - [25/Sep/2024:13:06:38 +0000] "POST /message-bus/3e2e0add2e9a41cc9ce7041980fe4f81/poll HTTP/1.1" 200 115 "https://community.tuist.io/c/announcements/10" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0"
[no timestamp]  start
Sep 25 15:06:39 - start
[no timestamp]  start
Sep 25 15:06:39 - start
[no timestamp]  done
Sep 25 15:06:39 - done
[no timestamp]  start
Sep 25 15:06:39 - start
[no timestamp]  start
[no timestamp]  start
Sep 25 15:06:39 - start
Sep 25 15:06:39 - start
[no timestamp]  done
Sep 25 15:06:39 - done
[no timestamp]  done
Sep 25 15:06:39 - done
[no timestamp]  500 Internal Server Error in 476ms (ActiveRecord: 0.0ms | Allocations: 56364)
[no timestamp]  done
Sep 25 15:06:39 - Completed 500 Internal Server Error in 476ms (ActiveRecord: 0.0ms | Allocations: 56364)
Sep 25 15:06:39 - done
Sep 25 15:06:39 - 172.18.0.1 - - [25/Sep/2024:13:06:39 +0000] "POST /posts HTTP/1.1" 500 46 "https://community.tuist.io/c/announcements/10" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0"
[no timestamp]  start
Sep 25 15:06:39 - start
[no timestamp]  done
Sep 25 15:06:39 - done
[no timestamp]  done
Sep 25 15:06:39 - done

ما هو المسار الموصى به لتصحيح هذه المشكلة؟

الخطوة التالية هي الانتقال إلى /logs في منتداك، والعثور على سطر السجل المقابل ونشر تتبع المكدس هنا.

3 إعجابات

هذا هو الخطأ:

Message

NoMethodError (undefined method `moderating_groups' for #<Category id: 10, name: "Announcements", color: "652D90", topic_id: 55, topic_count: 5, created_at: "2024-09-25 09:23:28.181772000 +0000", updated_at: "2024-09-27 11:53:47.131692000 +0000", user_id: 3, topics_year: 4, topics_month: 4, topics_week: 4, slug: "announcements", description: "This category is used for announcements by the mai...", text_color: "FFFFFF", read_restricted: false, auto_close_hours: nil, post_count: 4, latest_post_id: 108, latest_topic_id: 83, position: 7, parent_category_id: nil, posts_year: 4, posts_month: 4, posts_week: 4, email_in: nil, email_in_allow_strangers: false, topics_day: 0, posts_day: 0, allow_badges: true, name_lower: "announcements", auto_close_based_on_last_post: false, topic_template: nil, contains_messages: nil, sort_order: nil, sort_ascending: nil, uploaded_logo_id: nil, uploaded_background_id: nil, topic_featured_link_allowed: true, all_topics_wiki: false, show_subcategory_list: false, num_featured_topics: 3, default_view: nil, subcategory_list_style: "rows_with_featured_topics", default_top_period: "all", mailinglist_mirror: false, minimum_required_tags: 0, navigate_to_first_post_after_read: false, search_priority: 0, allow_global_tags: false, reviewable_by_group_id: nil, read_only_banner: nil, default_list_filter: "all", allow_unlimited_owner_edits_on_first_post: false, default_slow_mode_seconds: nil, uploaded_logo_dark_id: nil, uploaded_background_dark_id: nil>)
lib/plugin/instance.rb:376:in `public_send'
lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class'
lib/plugin/instance.rb:376:in `public_send'
lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class'
lib/plugin/instance.rb:376:in `public_send'
lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class'
lib/plugin/instance.rb:376:in `public_send'
lib/plugin/instance.rb:376:in `block (2 levels) in add_to_class'
lib/plugin/instance.rb:576:in `block in on'
lib/discourse_event.rb:12:in `bl...

Backtrace

activemodel (7.1.3.4) lib/active_model/attribute_methods.rb:489:in `method_missing'
plugins/discourse-activity-pub/plugin.rb:367: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:331: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:337: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:99:in `after_scheduled'
plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:109: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:455: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:661: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.2.2/lib/ruby/3.2.0/set.rb:511:in `each_key'
/home/cloudron/rbenv/versions/3.2.2/lib/ruby/3.2.0/set.rb:511: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:393: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_ser

Env

HTTP HOSTS: community.tuist.io

مرحباً، أنا مسؤول الموقع lemmy.dbzer0.com وأود أن أرى تفاعلاً أكبر بين lemmy و discourse، حيث أشعر أن هاتين القطعتين تتناسبان معًا بشكل طبيعي أكثر من discourse و mastodon.

أنا مهتم بشكل أساسي بطريقة تمكن مستخدمي lemmy من رؤية المواضيع والتفاعل معها دون الحاجة إلى إنشاء حسابات جديدة لكل منتدى discourse.

على حد فهمي، فإن المشكلة الأكبر هي أن إضافة apub لا تمثل فئات discourse كمجموعات apub، مما يمنع lemmy من رؤيتها، أليس كذلك؟

على أي حال، أرغب في إتاحة نفسي، في حال أردتم الوصول إلى نسخة lemmy ومسؤول للاختبار. حسابي على lemmy هو https://lemmy.dbzer0.com/u/db0

5 إعجابات

مرحباً يا رفاق، سأعود لتقديم الدعم المنتظم لهذا المكون الإضافي من الآن وحتى مارس من العام المقبل على الأقل. إذا كنت تستخدم هذا المكون الإضافي وتواجه صعوبة ما، فيرجى إخباري! سأرد على أكبر عدد ممكن من الأسئلة المعلقة.

كل مستخدم في Discourse هو ممثل. عملية المتابعة في Discourse تعمل بنفس الطريقة التي تعمل بها في Lemmy، وكما هو مفصل أكثر في FEP-1b12. السبب الذي يجعلك لا تستطيع متابعة ممثلي Discourse بعد (أي أن التركيز الأساسي كان على متابعة الفئات) هو أن المنتديات تتمحور بطبيعتها حول الموضوع، أي المناقشات التي تشمل بطبيعتها العديد من المستخدمين. في الواقع، هذا هو النهج الذي اتبعته تطبيقات ActivityPub الأخرى التي تشبه المنتديات، وهو ما نعمل عليه في فرقة عمل W3C Forum and Threaded Discussion (بالإضافة إلى NodeBB والبرامج المماثلة).

ما تصفه هو الفرق بين اتحادات “المنشور الأول فقط” و “الموضوع الكامل”. ما تتوقعه هو كيفية عمل اتحادات “الموضوع الكامل”. يرجى الاطلاع على الوثائق ومقاطع الفيديو التعليمية حول هذا هنا.

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

لا، يلتزم المكون الإضافي ActivityPub بالكامل بـ FEP-1b12، الذي كتبه Nutomic (منشئ Lemmy) لوصف الاتحادات المستندة إلى المجموعات. هل حاولت الاتحاد بين Lemmy و Discourse؟

إعجابَين (2)

هل يمكنك التحقيق في عدم عرض البيانات الوصفية لمجالي بشكل صحيح وعدم عرض أي محتوى من البيانات الوصفية؟

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

هل يوجد خادم Discourse بهذا المكون الإضافي يمكننا اختباره به؟ أفترض أن هذا المنتدى لا يستخدمه، صحيح؟

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

تستخدم Meta بروتوكول ActivityPub، على سبيل المثال، هذا الموضوع لم يكن موحدًا:

و هذا الموضوع كان كذلك:

أين يمكنني رؤية هذه المعلومات؟ أيضًا الرابط الثاني غير متاح لي

عنوان URL (على عكس عنوان URI الخاص بـ AP) لتلك الصفحة هو

يمكنك رؤية معلومات AP بالنقر على أيقونة AP.

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

أواجه صعوبة في العثور على أي موضوع Apub. في الغالب، الرمز غير موجود

وإذا كان موجودًا، فهو معطل.

ومع ذلك، لقد اتبعت الرابط الذي نشرته وبحثت عن عنوان URL في lemmy (وهي الطريقة التي يمكن بها استرداد الروابط التي لم يتم الاشتراك فيها مسبقًا) ولم يتم العثور عليه. لا يمكنني أيضًا العثور على منتدى الإعلانات على الإطلاق حتى أتمكن من الاشتراك فيه.

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

حسنًا، تمكنت من العثور عليها بالبحث عنها كـ announcements@meta.discourse.org واشتركت فيها. سأحاول الاشتراك في بعض المواضيع الأخرى لمعرفة ما إذا كان بإمكاني رؤية منشورات جديدة في lemmy.

تعديل: يمكن العثور على بعض المجتمعات مثل Feature و Announcements، ولكن لا يمكن العثور على Support و Plugin و Bug https://lemmy.dbzer0.com/search?q=!plugin%40meta.discourse.org&type=Communities&listingType=All&page=1&sort=TopAll

إعجابَين (2)

هذا لأنهم لا يملكون ممثلين (Actors). يرجى الاطلاع على الوثائق ومقاطع الفيديو التعليمية. سترى أنه يجب تعيين ممثل (Actor) لكل فئة قبل أن يمكن العثور عليها.

على ميتا (meta)، أعتقد أن Announcements و Feature فقط هما اللذان تم إنشاء ممثلين (Actors) لهما.

4 إعجابات

ولكنني مثيل خارجي أحاول الحصول على محتوى موحد منك. ليس لدي رؤية لذلك، أليس كذلك؟

تحرير: أرى الآن علامة تبويب الاتحاد، ولكن في بعض الأحيان فقط. في أحيان أخرى لا تظهر

إعجابَين (2)

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

ملاحظة فقط أنني أنا و @mcdanlj نناقش هذا على انفراد. من المحتمل أن تكون مشكلة تاريخية (أي لأن مايكل كان من أوائل المتبنين).

4 إعجابات

نعم، سؤالان:

  1. ماذا عن عدم القدرة على العثور على سلسلة مواضيع موحدة موجودة مثل https://meta.discourse.org/ap/object/235d597a789c305cef86318ef84d8762؟ حاولت البحث عنها على lemmy ولكنها لا تظهر.
  2. لماذا تكون بعض سلاسل المواضيع في موضوع ما موحدة، بينما لا تكون سلاسل أخرى كذلك؟ كيف يمكنني معرفة ذلك؟

على أي حال، ربما يمكن تحديث Following an ActivityPub Actor أيضًا ببعض المعلومات المتعلقة بـ lemmy؟

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

يمكنك سؤال مطوري Lemmy و @angus على Lemmy - SocialHub حتى يتمكنوا من التنسيق بشكل أفضل. التوافق مع Lemmy سيكون :tada:


@angus، في مقالة مدونة حديثة على Mastodon هناك شيء يستحق التنفيذ، على سبيل المثال، للموضوع المميز في ملف تعريف المستخدم، إذا بدأ هذا الموضوع بواسطة هذا المستخدم:

لقد قررنا إنشاء نوع جديد من علامات OpenGraph - نفس النوع من العلامات الموجودة على موقعك لتحديد أي صورة مصغرة ستظهر في المعاينة للصفحة عند مشاركتها على Discord أو iMessage أو Mastodon. يبدو الأمر كالتالي: <meta name="fediverse:creator" content="@Gargron@mastodon.social" />.

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

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

نعم، كما يقترح @hellekin، أعتقد أن مناقشة أعمق حول Lemmy / Discourse ستتم بشكل أفضل هنا

بينما أستأنف العمل على هذه الإضافة، يرجى طرح أسئلتكم الأكثر تفصيلاً حول Lemmy هناك وسأتابع قريبًا.

شكرًا، سأفكر في الأمر.

هناك ممثلون للمستخدمين في Discourse. لا يمكنك متابعتهم (حاليًا). نظرًا لأن هذا المفهوم الخاطئ قد ظهر ثلاث مرات اليوم بالفعل، أفكر في إبراز ذلك في مكان ما في واجهة المستخدم. ردًا على السؤال المتابع “لماذا لا يمكنك متابعة ممثلي المستخدمين إذا كانوا موجودين؟”، يجب الإجابة على السؤال السابق “لماذا تريد متابعة ممثلي المستخدمين في Discourse؟” أولاً (أي ما هي حالة الاستخدام الحقيقية).

(أنا على علم بأن Discourse Follow موجود - لقد قمت ببنائه - ومع ذلك هناك فرق بين متابعة مستخدم داخل مثيل لأغراض الإشعارات / الاكتشاف ومتابعة ممثل مستخدم في fediverse)

4 إعجابات

سيتم إصلاح هذا بمجرد دمج هذا.

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

إعجابَين (2)

تغيير رائع تم إطلاقه للتو:

:tada:

3 إعجابات