2.5.0.beta5 يكسر إضافة retort

لقد قمت للتو بالترقية من الإصدار 2.5.0.beta4 إلى 2.5.0.beta5، والآن لا يبدو أن السكربتات الخاصة بي الموجودة في السمة الخاصة بي تعمل، وأرى هذا في وحدة تحكم المتصفح:

سياسة أمان المحتوى: تمنع إعدادات الموقع تحميل المورد من مضمن ("script-src"). injectGlobalHook.js:1:1760
سياسة أمان المحتوى: تمنع إعدادات الموقع تحميل المورد من مضمن ("script-src"). pagewrap.bundle.js:1:1151

تعديل: يبدو أنني أرى هذه الرسائل على موقعي الآخر أيضًا، والذي لا أستخدم فيه نفس السمة، لذا فهذا ليس المشكلة. إذن، أعتقد أن واجهة برمجة التطبيقات (API) الخاصة بالسمة تغيرت؟ على الرغم من أن هذا الموضوع لم يتم تحديثه: Using the JS API

بشكل أساسي، يبدو أن تحديث discourse الجديد جعل سياسة أمان المحتوى (CSP) أكثر صرامة.
كيف يمكنني حل هذه المشكلة؟ لم أجد أي شيء يتعلق بتغييرات CSP أو السمة في ملاحظات الإصدار.

هذا هو السكربت الذي أريد تشغيله:

<script type="text/discourse-plugin" version="0.0.1">
api.onPageChange(() => {
	checkMainPageLoadFeeds();
});

function checkMainPageLoadFeeds() {
    // تحميل فقط في الصفحة الرئيسية
    // يبدو أن هذا لا يعمل بشكل مثالي بسبب طريقة عمل discourse،
    // لكن على الأقل هذا لا يسبب أي مشاكل...
    if(/https?:\/\/[^\/]+\/(categories)?$/.test(window.location.href) ){
        // هذه الملفات تم إنشاؤها بواسطة روبوت يعمل على نفس الخادم الذي يستضيف هذا المنتدى
        if($("#development-info").text() == ""){
            $("#development-info").load("/thrive-feed-bot/devforum-and-github");
            $("#announcement-contents").load("/thrive-feed-bot/community-announcements");
        }
    }
    
    $("#development-heading").off("click").on("click", expandTheFeeds);
    $("#announcement-heading").off("click").on("click", expandTheFeeds);
}

function expandTheFeeds(){
    
    let target = $("#development-feed").height() == 200 ? 450 : 200;
    $('#development-feed').animate({ height: target + "px" });
    $('#development-info').animate({ height: (target - 95) + "px" });
    $('#announcement-feed').animate({ height: target + "px" });
    $('#announcement-contents').animate({ height: (target - 95) + "px" });
}

$( document ).ready(function(){
    checkMainPageLoadFeeds();
})
</script>

وهذا هو السكربت الثاني:

<script type="text/discourse-plugin" version="0.0.1">
api.onAppEvent('modal:body-shown', (data) => {
    
    if(data.title){
    
        if(data.title.match(/.*create.*account.*/)){
        
            $(".create-account.fixed-modal .modal-footer").prepend(getEmailSpamCheckMessage(true));
        }
    } else {
        
        // قد يكون هذا نسيت كلمة المرور
        let element = $(".fixed-modal .forgot-password-modal")
        if(element){
            element.append(getEmailSpamCheckMessage(false));
        }
    }
	
});

function getEmailSpamCheckMessage(register){
    return $.parseHTML("<p class='EmailNoteMessage'>إذا لم تتلق رسالة بريد إلكتروني " + 
                (register ? "تأكيد " : "") + "فراجع مجلد الرسائل غير المرغوب فيها.<br>" +
                "يمكنك أيضًا زيارة سيرفر <a href='https://discordapp.com/invite/FZxDQ4H'>discord</a> " +
                "إذا واجهت مشكلة " + (register ? "في التسجيل" : "في استلام رسائلنا البريدية") + ".</p>");
}
</script>

وهو ما أتذكر أنني نشرته هنا في الميتا من قبل، لكن لا أستطيع العثور على ذلك المنشور الآن.

كل ما تريد معرفته حول سياسة أمن المحتوى (CSP) موجود هنا:

لا أعتقد أن مشكلتي تتعلق بـ CSP، حيث أنني أحصل على نفس الخطأين في موقع (https://forum.revolutionarygamesstudio.com/) الذي يستخدم السمة الافتراضية. لذا يبدو أن نصوصي البرمجية لا يتم حتى محاولة تحميلها. في الموقع الذي يحتوي على سمة مخصصة، تظل المربعات القريبة من أعلى الصفحة فارغة لأن JavaScript يُستخدم لملئها: https://community.revolutionarygamesstudio.com/
لقد جربت أيضًا تعطيل CSP في قسم الإدارة، لكن ذلك لم يُصلح نصوصي البرمجية، بل جعل الخطأين يختفيان (مُتاركًا خطأً واحدًا فقط قادمًا من retort).

تعديل: لذا أعتقد أن شيئًا ما تغير مما يجعل <script type="text/discourse-plugin" version="0.0.1"> لا يتم تحميلها على الإطلاق بعد الآن.

تعديل 2: لذا حتى مع تمكين CSP وعدم إضافة أي شيء إلى القائمة البيضاء، يعمل هذا:

<script>
console.log('this loaded just fine');
</script> 

لكن هذا لا يعمل:

<script type="text/discourse-plugin" version="0.0.1">
console.log('this loaded just fine');
</script> 

يوجد خطأ في JavaScript مع Retort على https://community.revolutionarygamesstudio.com/

_retort-75a57ba39180becb082af07c57df6a5dd4e16efe0dbd24ec6c4e5d903e138efb.js:188 خطأ غير مُلتقط من نوع TypeError: لا يمكن قراءة الخاصية 'retort_disabled_categories' من غير معرف
    عند _retort-75a57ba39180becb082af07c57df6a5dd4e16efe0dbd24ec6c4e5d903e138efb.js:188
    عند t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74640)
    عند t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74470)
    عند require (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74637)
    عند f (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74596)
    عند _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74561
    عند t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74639)
    عند t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74470)
    عند require (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74637)
    عند t._prepareInitializer (_application-66bcc4126a5a02dd0d99aed67150087a79a427788cc00feaf5e17bf042b73d75.js:6849)

بخصوص الموقع الآخر، لا أستطيع العثور على checkMainPageLoadFeeds في كود المصدر، لذا لا أ确信 ما إذا كان محملاً.

لكن يمكنني العثور عليه على https://community.revolutionarygamesstudio.com/:

لذا حاول إصلاح خطأ JavaScript هذا باستخدام هذه الإضافة.

هذا ما أراه أنا أيضًا. راجع تحديثي في المنشور السابق؛ يبدو أن نوع السكربت "text/discourse-plugin" لا يعمل، بينما يعمل وسم السكربت العادي.

لاحظت ذلك، فأنا أستخدم أحدث إصدار من retort:
Kuvakaappaus - 2020-05-31 13-07-36

إذن، هل وجود خطأ في هذه الإضافة يمنع الإضافة المحددة في السمة من العمل؟

لقد اختبرت للتو هنا في موقع Meta، وهذا ما يُستدعى بشكل صحيح:

<script type="text/discourse-plugin" version="0.1">
</script>

هذا ليس إضافة رسمية، لذا لا أعرف الكثير عنها، آسف.

هذا ممكن نعم، حاول تعطيلها أو حتى إزالتها، وراجع ما إذا كان ذلك يحل مشكلتك.

إعادة البناء دون إضافة retort إلى قائمة الإضافات الخاصة بي “تحل” المشكلة. شكرًا على المساعدة. لم أفكر في أن فشل إضافة واحدة قد يتسبب في فشل أي إضافة أخرى أيضًا. سأحاول تذكر ذلك في المستقبل والتحقق قبل الإبلاغ عن مشكلة.

سأشير إلى هذا الحل، بينما أنتظر إصدارًا جديدًا من retort حتى أتمكن من تمكينه مرة أخرى.

يبدو أن مشاكل الإصدار الأخير من discourse تم الإبلاغ عنها بالفعل:

أؤكد أن إصلاح الرد قد حل هذه المشكلة بالنسبة لي.