مرحباً بالجميع،
أحاول إنشاء أتمتة مخصصة بحيث عندما يتم تمييز استعلام كحل/تم حله، يتلقى منشئ الموضوع رسالة خاصة (أو بدلاً من ذلك، يتم إنشاء رد جديد في السلسلة برسالة محددة مسبقًا - في كلتا الحالتين ستكون استطلاعًا).
يجب أن تكون هذه أتمتة مخصصة لأن البرنامج النصي الحالي المتاح “إرسال رسائل خاصة” في المكون الإضافي للأتمتة يرسل الرسائل الخاصة إلى أي شخص أرسل الرد الذي تم تمييزه كحل/تم حله (وليس إلى الشخص الذي أنشأ الموضوع، كما هو مقصود في حالة الاستخدام الخاصة بي).
فيما يلي البرنامج النصي الذي أنشأته لمحاولة نشر رد جديد في الموضوع بمجرد تمييز رد كحل (في العينة التالية، لا أرسل الاستطلاع كرد، بل أمنح المسؤول حرية اختيار ما سيتم إرجاعه أو تركه كافتراضي):
# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::REPLY_ON_SOLUTION) do
field :reply_text, component: :text
# field :answering_user, component: :user
field :once, component: :boolean
version 1
triggerables %i[:first_accepted_solution] if defined?(DiscourseSolved)
placeholder :sender_username
placeholder :word
script do |context, fields, automation|
topic = context["topic"]
# user = context["user"]
reply_text = fields.dig("reply_text", "value")
# نشر رد في الموضوع الذي تم فيه تمييز حل
PostCreator.create!(
Discourse.system_user,
topic_id: topic.id,
raw: reply_text || "A solution has been marked for this topic!",
)
end
end
لكنني لست متأكدًا مما إذا كان يجب أن يكون PostCreator.create!، أو PostCreator.reply، أو ربما شيء آخر. ما يقودني إلى سؤال:
- هل هناك أي مكان موثق للكلمات الرئيسية التي يجب استخدامها أثناء إنشاء برنامج نصي للأتمتة المخصصة؟
بناءً على الأتمتة المذكورة أعلاه، بمجرد تشغيلها عن طريق تمييز رد كحل، بعد ثانية واحدة أتلقى رسالة منبثقة مع رسالة خطأ 500 internal server error على الشاشة.
- هل فاتني شيء؟ تم النشر الخاص بي باستخدام devcontainers، على جهازي المحلي لأغراض اختبار التطوير.
- ما الذي يلزم فعله، بعد إنشاء البرنامج النصي المخصص؟ ربما فاتني شيء في هذه المرحلة؟ أو ربما هي مشكلة في البرنامج النصي نفسه؟
- هل هناك أي مكان موثق للخطوات التي يجب اتباعها بعد الانتهاء من البرنامج النصي الخاص بي؟ على سبيل المثال: ما هي الملفات التي تحتاج إلى تعديلها حتى يعمل كل شيء بسلاسة؟ (وجدت بالطريقة الصعبة أنني بحاجة إلى تغيير
client.en.ymlللاسم والوصف الصحيحين اللذين يظهران في قائمة الأتمتة)
أخطط لمحاولة، بناءً على البرنامج النصي المدمج “إرسال رسائل خاصة”، لتغيير برنامجي النصي لإنشاء رد بدلاً من ذلك، وإرسال الرسائل الخاصة، ولكن لست متأكدًا مما يلي:
- كيف سأقوم بوضع علامة على الشخص الذي أنشأ الموضوع وليس الشخص الذي تم تمييز الرد الخاص به كحل؟
شكراً جزيلاً مقدمًا على أي توجيهات ومساعدة.