طقم بناء بوت Discord 🤖

أوه، لقد حذفت الرابط الخطأ من المنشور الأصلي. (كان هناك إثنان من الإضافات، كان يجب أن أحذف إضافة OAuth، لكنني بدلاً من ذلك حذفت رابط البوت!)

قم بإلغاء تثبيت هذه الإضافة في أقرب وقت ممكن، حيث أن Core تدعم الآن OAuth الخاص بـ Discord بشكل افتراضي.

إضافة البوت هي هذه:

لقد قمت بتعديل المنشور الأصلي وفقاً لذلك، آسف على ذلك!!

3 إعجابات

هل نعرف ما قد يكون وضعنا في جعل هذا الإضافة تقوم بتحديث المستخدمين تلقائيًا عند انضمامهم إلى المجموعة بدلاً من المزامنة اليدوية؟ وهل هناك إمكانية محتملة لتحديد المجموعات أو الأدوار التي نريد مزامنتها معًا بدلاً من أن تقوم الإضافة بالسيطرة على الأدوار أو إنشائها بنفسها؟

إعجابَين (2)

هذه أول مرة يُطلب فيها ذلك، لذا كما تتخيل، لم يتم تضمينها حتى في قائمة الانتظار.

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

بدلاً من ذلك، قد يكون من الأفضل استكشاف بديل استدعاء API مباشر بدلاً من استخدام البوت. ثم عليك أن تقرر ما إذا كان ذلك يستحق التسليم في إضافة مختلفة بناءً على استدعاءات منفصلة، وليس بوتًا.

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

هذا أكثر عملية.

تم قبول طلب السحب (PR). للأسف، وقتي محدود جدًا للعمل على ميزات كبيرة دون تمويل.

3 إعجابات

حسنًا، كما هو الحال حاليًا، يبدو أن النظام يعتمد على “الاسم” بدلاً من “اللقب” في تحديد الأدوار. وهذا يعني أن أدواري على ديسكورد تنتهي بكلمات مثل “dashing” وبدون مسافات، على سبيل المثال. لذا، أفترض أن الحل البديل هو جعل النظام يعتمد على الاسم الكامل أو اللقب الافتراضي بدلاً من الاسم فقط.

ومع ذلك، قد توجد مجموعات على منصة ديسكورد لا أود مزامنتها مع ديسكورد على الإطلاق.

أقدر ردودكم :slight_smile:

إعجابَين (2)

هذا مقصود لتجنب الاعتماد على حقل الوصف الذي يمكن أن:

أ) يحتوي على مسافات
ب) لا يكون فريدًا

(وهو عادة فكرة سيئة في علوم الحاسوب)

ومع ذلك، إذا كانت هناك طريقة آمنة لتحسين هذا، فأنا مستعد للاستماع. أقدر أن الأمر لا ‘يبدو’ جميلاً :slight_smile:

يمكن بالتأكيد إضافة وظائف إضافية للإضافة لتعطيل المزامنة لمجموعات محددة، حسب تقدير المسؤول. طلبات السحب (PR) مقبولة.

4 إعجابات

هل يمكن للروبوت أن يقوم بالمزامنة التلقائية في وقت مجدول مؤقتًا بينما يتم استكشاف طريقة API؟ شيء مثل التحقق مرة كل ساعة، أو 24، إلخ؟

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

أعتقد أنه من الممكن إضافة وظيفة مثل ‘كرر هذا مرة أخرى بعد x ساعات’ دون أي مشكلة.

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

أفضل نهج مطلق هو إما:

أ) إضافة استدعاء API منفصل متصل بمهمة Sidekiq إلى هذه الإضافة، أو
ب) كتابة إضافة جديدة تستخدم استدعاءات API عادية بدلاً من استخدام بوت (وتضمين مزامنة دفعة في ذلك).

أي من هذين الأمرين سيتطلب رعاية أو طلب سحب (PR).

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

منصف. شكراً على المساعدة.

إعجابَين (2)

مرحبًا.

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

ومع ذلك، لدي بعض الأسئلة: الآن بعد أن يعمل كل شيء، أحتاج إلى أن يسجل مستخدموا الدخول عبر Discord OAuth. وهذا يؤدي إلى إنشاء حساب جديد.

ما هي أفضل طريقة لإدارة هذا؟ هل أحتاج إلى دمج الحساب الجديد مع القديم؟ لقد جربت ذلك مع حساب المسؤول، وحصلت على الخطأ “ليس لديك إذن بتنفيذ أمر discsync!” عند محاولة تشغيل !discsync يدويًا.

بالإضافة إلى ذلك، لم يتم نسخ أي أدوار من منصة Discourse الخاصة بي حتى الآن.

للعلم، يظهر حساب Discord الخاص بي في خياراتي على أنه حساب مرتبط.

شكرًا مقدمًا على مساعدتكم!

إعجابَين (2)

شكرًا لاهتمامك بالإضافة!

هذه ليست ميزة من مميزات الإضافة، بل هي ميزة أساسية. حيث يأتي OAuth الخاص بـ Discord مع Discourse افتراضيًا:

تظهر الإعدادات المذكورة أعلاه بغض النظر عما إذا كنت قد أضفت هذه الإضافة إلى Discourse أم لا.

إذا قمت بتسجيل الدخول عبر الحساب الاجتماعي، وطابقت عناوين البريد الإلكتروني المسجلة، فسيتم التعرف على الحساب ولن يتم إنشاء حساب جديد. أما إذا كان المستخدم قد سجل في Discord باستخدام بريد إلكتروني مختلف عن بريد Discourse، فبالطبع لا توجد طريقة لمعرفة أنهما نفس المستخدم، وبالتالي سيتم إنشاء حساب جديد.

هل تقصد حساب المسؤول على خادم Discord؟ وهل قمت أيضًا بتفويض البوت؟

ما هي نتيجة الأمر Ping!؟

4 إعجابات

أوافق على ذلك. في أسوأ الحالات، يمكنني دمج الحسابات ذات عناوين البريد الإلكتروني غير المتطابقة.

نعم، هذا صحيح. أنا مالك كل من خادم Discord ونسخة Discourse. نتيجة أمر “Ping!” هي “Pong!”. لم يتم ترحيل أي أدوار من Discourse إلى Discord.

البوت موجود على خادم Discord الخاص بي ويتمتع بصلاحيات المسؤول. هل يمكنني توضيح ما تقصده بـ “تفويض”؟

3 إعجابات

هل أكملت هذه الخطوة؟ (فقط للتحقق من جميع المتطلبات الأساسية، فأنت على الأرجح قد فعلت ذلك بالفعل).

إعجابَين (2)

نعم، لدي :slight_smile:

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

تخميني هو أن حقوقك أو حقوق البوت على خادم ديسكورد لم تُعد بشكل صحيح بطريقة ما. أنا فقط أجدد ذاكرتي مع هذه الإضافة بينما أعمل على عشرات الإضافات. آخر تغيير قمت به لهذه الإضافة كان منذ فترة!

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

روجر! قمت بفحص سريع من جانبي، لذا لأغراض اطلاعك، أنا مدرج كمالك للخادم ولدي حقوق المسؤول.

تعديل: هل يمكننا توضيح الحقوق التي يحتاجها البوت؟ حاليًا مدرج كمشرف (تم منح هذه الصلاحية له عبر دور وليس عبر دعوة OAuth، على الرغم من ذلك).

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

يحتوي البوت الخاص بي على هذه العناصر:

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

إليك صوري (آسف، بصفتي مستخدمًا جديدًا هنا

، أحتاج إلى نشر 3 مشاركات…)

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

هل يمكنك التحقق من أذونات القناة؟ أذونات القناة في Discord تتجاوز أذونات الخادم.

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

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

يمكنه إرسال “Pong!”، لكنه يخبرني أنني لا أملك الأذونات المطلوبة لتشغيل أمر “!discsync”.

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

حسنًا، أحاول إعادة إنشاء المشكلة، لكن حتى الآن تمكنت من تشغيل كلا الأمرين.

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