لاحظت سلوكًا غير متسق مع وسمات الإيموجي في مُنشئ الموضوعات، ونجحت في إعادة إنتاج المشكلة على فرع main غير المعدّل عند الرمز 802125b979b5bb848a7cfc52409ef3176ffd4d82.
بالنسبة لوسم إيموجي موجود مسبقًا، قد يؤدي إلى كتابة اسمه إلى ظهور خيار إنشاء بدلاً من الوسم الموجود وعدد مرات استخدامه. واختيار هذا الخيار والنشر يظل يربط الوسم الموجود. أما وسم الإيموجي الجديد تمامًا فهو حالة منفصلة: يمكن اختياره في المُنشئ، لكنه يختفي بعد النشر.
لإعادة إنتاج مشكلة الوسم الموجود:
- استخدم موقعًا يحتوي على وسم إيموجي موجود، مثل
😊، بالإضافة إلى وسوم أخرى أكثر استخدامًا. - افتح مُنشئ الموضوع وأدخل اسم وسم الإيموجي.
- إذا كان ذلك الوسم خارج حد الوسوم الشائعة المُعادَة، فإن القائمة المنسدلة تعرض خيار إنشاء ووسوم شائعة غير ذات صلة، دون عرض عدد مرات استخدام الوسم الموجود.
- اختر خيار الإنشاء، انشر، ثم حدّث الصفحة. لا يزال الموضوع يستخدم سجل الوسم الأصلي.
في اختبار متصفح معزول، استخدمت وسم إيموجي موجودًا بعدد 17، ووسمًا غير ذي صلة بعدد 100، وحد بحث قدره 1. أظهرت القائمة المنسدلة إنشاء: '😊' وشائع x100؛ وبعد النشر، تم إعادة استخدام وسم الإيموجي الموجود بشكل صحيح. وفي غياب سجل 😊 موجود، أعادت نفس العملية HTTP 200 لكنها لم تحفظ أي وسم.
السبب يكمن في DiscourseTagging.clean_tag، والذي يُستخدم لكل من مصطلحات البحث وحفظ الأسماء الجديدة. يقوم بإزالة أحرف الإيموجي. ثم يلجأ البحث إلى النتائج الشائعة، بينما يمكن للحفظ أن يجد وسمًا موجودًا باسمه الأصلي قبل تنظيف الأسماء الجديدة.
لدي تصحيح صغير يحافظ على وحدات رسم الإيموجي الكاملة المعترف بها بواسطة بيانات Emoji.unicode_replacements الموجودة. وهو يحتفظ بتصفية ASCII الحالية ويزيل الأحرف غير الصالحة من النص غير الإيموجي. كما يسمح بمطابقة اقتراحات الوسوم المعطلة مع بداية الاسم، حيث إن تعبير حد الكلمة الحالي يفوت أسماء تبدأ بالإيموجي مثل 😊-restricted.
يُغيّر التصحيح ملفَي تنفيذ ويضيف تغطية للانسداد (regression coverage) في ثلاثة ملفات اختبار. ولا يضيف هجرة قاعدة بيانات، أو تغييرات واجهة أمامية، أو API جديدًا، أو ذاكرة تخزين مؤقت إضافية للإيموجي.
التحقق المحلي: نجح 572 مثالًا مرتبطًا بالخلفية و8 أمثلة للمتصفح. تفحص اختبارات المتصفح أن وسم الإيموجي الموجود يعرض x17، وأن كلًا منه ووسم 😊 الجديد تمامًا يبقى بعد النشر والتحديث.
فرع التصحيح:
التقارير والمناقشات ذات الصلة:
تصف هذه التقارير قيود وسمات الإيموجي السابقة. يعالج هذا التصحيح أخطاء البحث والحفظ في المُنشئ المُعاد إنتاجها أعلاه؛ ولا يدّعي حل جميع مشاكل وسمات الإيموجي.