أفاتار متحرك

هل يعمل هذا مع لافتات الملف الشخصي؟

هناك مشكلة في البرنامج النصي للتثبيت install.sh تمنع إعادة بناء Discourse، انظر هنا.

كنت سأقوم بتثبيت هذه الإضافة ولكن رؤية هذا التعليق غيرت رأيي هههه

لا يزال الأمر كذلك. علّق جزء install.sh، وأعد البناء. ألغِ التعليق عليه، وأعد البناء مرة أخرى. هذا يعمل. غريب.

هل لا يزال التثبيت يسبب مشاكل؟

لا، ليس بالنسبة لي.

هل حاولت تثبيته مرة أخرى دون الحاجة إلى التعليق عليه؟

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

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

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

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

مرحبًا، أواجه خطأً قاتلاً (Fatal Error) في هذا الإضافة على أحدث إصدار من Discourse (v2026.8.0-latest.1).

عندما يحاول المستخدم تعيين صورة ملف شخصي أو تحديثها، يعيد الواجهة الأمامية خطأً عامًا 422 (Unprocessable Content)، ويسجّل Uppy تحذيرًا متعلقًا بالشبكة.

عند فحص سجلات Sidekiq/Rails، يتضح أن الإضافة تُسبّب انهيار خط أنابيب UploadCreator لأنها تبحث عن مفتاح resize_animated يبدو أنه مفقود من جدول تحسين الصور الحالي.

إليك أثر الاستدعاء (backtrace) من /logs:

Job exception: key not found: "resize_animated"

/var/www/discourse/app/models/optimized_image.rb:336:in 'Hash#fetch'
/var/www/discourse/app/models/optimized_image.rb:336:in 'OptimizedImage.optimize'
/var/www/discourse/plugins/discourse-animated-avatars/lib/discourse_animated_avatars/optimized_image_extension.rb:9:in 'DiscourseAnimatedAvatars::OptimizedImageExtension::ClassMethods#resize_animated'
/var/www/discourse/plugins/discourse-animated-avatars/lib/discourse_animated_avatars/upload_creator_gifsicle_extension.rb:18:in 'DiscourseAnimatedAvatars::UploadCreatorGifsicleExtension#crop!'
/var/www/discourse/lib/upload_creator.rb:115:in 'block in UploadCreator#create_for'

أخبرني إذا كنت بحاجة إلى أي سجلات أخرى!

قمت بتثبيت البرنامج التجريبي وحاولت استخدامه مع صور GIF وWebP (بحجم 200 بكسل أو أقل)، لذا لا ينبغي إعادة تحجيمها، لكنني أحصل على رسالة الخطأ key not found: "resize_animated" في كل محاولة، ولا أستطيع جعله يعمل.

تم تثبيت الإضافة كما هو موصوف في الدليل. وقد التزمت بإرشادات post_exec المطلوبة.

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

شكرًا لكم على تقارير الأخطاء! يؤثر هذا الخطأ فقط على v2026.8 والإصدارات الأحدث. لقد قمت للتو بدفع الإصلاح، لذا يمكنك التحديث الآن.

3 إعجابات

شكراً على التصحيح السريع لخطأ مفتاح resize_animated. تم حل تلك المشكلة وقد قمت بتحديث الإصدار إلى 29784ee (Discourse v2026.9.0-latest). ومع ذلك، أواجه الآن خطأً قاتلاً جديداً ومختلفاً في نفس مسار الكود عند تعيين صورة الملف الشخصي أو تحديثها.

أعتقد أن الحجة --crop غير صحيحة الصياغة. يتوقع Gifsicle الصيغة --crop x,y+width+height (أو x,y-x2,y2)، لكن الأمر الحالي يحتوي فقط على 0,49+399، أي زوج x,y متبوعاً بـ +399 واحد فقط، مع غياب مكوّن +height الثاني بالكامل.

app.js:367 ℹ️ Discourse v2026.9.0-latest — https://github.com/discourse/discourse/commits/ed9f07d9f5 — Ember v6.10.1
uppy-upload.js:503  POST https://btt.community/uploads.json?client_id=f57abab8b5c64413a953f6c839424130 422 (Unprocessable Content)
(anonymous) @ fetcher.js:83
await in (anonymous)
_ @ fetcher.js:17
(anonymous) @ fetcher.js:86
(anonymous) @ index.js:81
(anonymous) @ index.js:227
(anonymous) @ TaskQueue.js:45
#i @ TaskQueue.js:92
add @ TaskQueue.js:73
#uploadLocalFile @ index.js:218
(anonymous) @ index.js:316
#uploadFiles @ index.js:297
(anonymous) @ index.js:345
#runUpload @ Uppy.js:1413
await in #runUpload
upload @ Uppy.js:1521
(anonymous) @ Uppy.js:523
setTimeout
#f @ Uppy.js:521
addFiles @ Uppy.js:672
addFiles @ uppy-upload.js:503
_run @ index.js:804
_join @ index.js:783
join @ index.js:605
join @ index.js:152
(anonymous) @ index.js:250
(anonymous) @ uploads.js:411
n @ uploads.js:410
uppy-upload.js:503 [Uppy] [05:34:13] This looks like a network error, the endpoint might be blocked by an internet provider or a firewall.
(anonymous) @ loggers.js:7
log @ Uppy.js:1277
(anonymous) @ Uppy.js:970
r @ index.js:131
(anonymous) @ index.js:33
emit @ Uppy.js:110
(anonymous) @ index.js:134
await in (anonymous)
(anonymous) @ index.js:227
(anonymous) @ TaskQueue.js:45
#i @ TaskQueue.js:92
add @ TaskQueue.js:73
#uploadLocalFile @ index.js:218
(anonymous) @ index.js:316
#uploadFiles @ index.js:297
(anonymous) @ index.js:345
#runUpload @ Uppy.js:1413
await in #runUpload
upload @ Uppy.js:1521
(anonymous) @ Uppy.js:523
setTimeout
#f @ Uppy.js:521
addFiles @ Uppy.js:672
addFiles @ uppy-upload.js:503
_run @ index.js:804
_join @ index.js:783
join @ index.js:605
join @ index.js:152
(anonymous) @ index.js:250
(anonymous) @ uploads.js:411
n @ uploads.js:410

إعجابَين (2)

شكرًا لك على الرد السريع! حاولت مرة أخرى باستخدام صورة webp متحركة، ورأيت هذا المخرَج:

gifsicle --colors=256 --crop 0,0+200 --resize-fit 288x288 --optimize=3 --output /tmp/RackMultipartID.webp /tmp/RackMultipartID.webp

لكن الصورة لا تزال من نوع png. هل فاتني شيء ما؟ قمت بتحديث المتصفح بشكل قسري على سبيل الاحتياط، لكن الصورة غير المتحركة ما زالت موجودة.

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

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

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

يمكنك التواصل معي بأي وسيلة تراها مناسبة؛ فأنا متاح على نطاق واسع ويمكنني تعديل جدولي/وقتي وفقاً لذلك.

يبدو أن إصلاحي كشف عن خطأ برمجي (Bug) خفي. لقد حدّثت المستودع (repo) بإصلاح آخر (وعدد أكبر من الاختبارات). الإصدارات v2026.8 وما بعدها من Discourse متأثرة بهذا الخطأ.

خطأ الفشل (Fatal error) ومنع الرفع هما خطأ برمجي، وقد تم إصلاحهما. ومع ذلك، لا تزال الصور المتحركة بصيغة WebP غير مدعومة. صُمم الإضافة (plugin) في الأصل لملفات GIF، وتبقى صيغ الصور الأخرى ثابتة. قد يتم إضافة الدعم للصور المتحركة بصيغة WebP (وAPNG) في المستقبل.


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

شكراً على الإصلاح! لقد جربته للتو على نسختي (تم التحديث إلى 012466a) وهو يعمل. جرّبت صورة ملف شخصي بصيغة .png وأخرى بصيغة .gif، ولم تظهر أي أخطاء في الحالتين. يبدو كل شيء على ما يرام من جهتي.

4 إعجابات

أشكركم أيضًا على التحديث، وأؤكد لكم أنه يعمل بشكل مثالي بصيغة gif.

إعجابَين (2)

تمت إضافة دعم صيغ WebP المتحركة، إلى جانب بعض الأدوات المريحة!

أصبح الآن هناك إعداد باسم animated_gif_avatar_to_webp، يقوم تلقائيًا بتحويل صور GIF المتحركة إلى صيغة WebP، مما يقلص حجم الملف الكلي بشكل كبير. يعمل هذا الإعداد عند رفع الملف، لذا ستبقى ملفات GIF الموجودة كما هي.

عند تمكين animated_gif_avatar_to_webp، لم يعد من الضروري استخدام gifsicle وخطاف install.sh، حيث يتم تحويل صور GIF الجديدة إلى WebP مع الحفاظ على النسبة الصحيحة والقص المناسب.

يمكن أيضًا للمشرفين تحويل صور GIF المتحركة الموجودة إلى WebP باستخدام مهمة rake bin/rake animated_avatars:gif_to_webp. سيتم تحويل جميع صور GIF المتحركة المستخدمة إلى WebP، وستستبدل الصورة الحالية بأخرى بحجم ملف أصغر.

إعجابَين (2)