كيفية تحسين تجربة Reddit باستخدام سكربت بسيط
يمكن أن تتراكم الإزعاجات الصغيرة على مواقعك المفضلة مع مرور الوقت وتسبب إحباطًا كبيرًا. بالنسبة لي، فإن المشكلة تكمن في أن Reddit يتجه افتراضيًا إلى "الأفضل". لحسن الحظ، مع قليل من العزيمة وامتداد قوي، يمكنك إصلاح معظم هذه المشكلات.
ما هي المشكلة؟
انتظرت طويلاً، لكنني مؤخرًا قررت الانتقال إلى Reddit "الجديد". عمومًا، ليس سيئًا كما كنت أخشى، وواجهة المستخدم جيدة إلى حد كبير. لكن هناك مشكلة واحدة تزعجني بشكل كبير: ترتيب المنشورات الافتراضي.
في الصفحة الرئيسية وتغذيات subreddit الفردية، تُعرض المنشورات بترتيب "الأفضل". هذا إعداد غير شفاف، ومثل خوارزمية "لك" على X أو الصفحة الرئيسية لـ YouTube، فإنه يعمل أكثر على ترويج المحتوى بدلاً من تلبية حاجة معينة. لا أستطيع أن أحصي عدد المرات التي جذبتني فيها عنوان منشور، فقط لأتحول إلى الإحباط عندما أرى أنه قديم لأسابيع أو شهور.
حتى عندما أكتشف ما هو الخطأ، يستغرق الأمر نقرتين للانتقال من "الأفضل" إلى "الجديد"، مما يعيق تدفق القراءة. لكن بفضل بعض الجهد، لم تعد هذه مشكلة.
كيفية إصلاح التغذية
إذا كنت تعرف أي شيء عن JavaScript، فقد تفكر بالفعل في كيفية حل هذه المشكلة. باستخدام هذه اللغة البرمجية، يمكنك إضافة وظائف إلى موقع ويب، وتعديل ألوانه وخطوطه، أو حتى إزالة المحتوى الذي لا تهتم به. لجعل هذه التغييرات مرئية للجميع، ستحتاج إلى الوصول إلى خلفية الموقع، لكن يمكنك استخدام متصفحك لإجراء هذه الأنواع من التغييرات على تجربتك الشخصية في أي موقع.
المفتاح هو امتداد متصفح يتيح لك تشغيل JavaScript الخاص بك على مواقع معينة. أنا أستخدم امتدادًا لمتصفح Chrome يسمى Tampermonkey.
تحتوي معظم المتصفحات على هذه الميزة إما مدمجة أو متاحة عبر امتداد. في الواقع، يتوفر Tampermonkey لجميع المتصفحات الرئيسية - Chrome وEdge وSafari وFirefox - لذا أوصي به كخيارك الأول.
ابدأ بتنزيل Tampermonkey لمتصفحك؛ أنا أستخدم النسخة الخاصة بـ Chrome.
بمجرد إضافة وتمكين الامتداد، استخدم القائمة الخاصة به لـ "إنشاء نص جديد". يجب أن ترى شيئًا يشبه هذا:
هناك الكثير من القوالب هنا، ومعظمها تعليقات لن تؤثر بشكل مادي. لكن يجب عليك التأكد من أن سطر "@match" يبدو كما يلي:
// @match https://www.reddit.com/*
هذا يخبر Tampermonkey بتشغيل النص فقط على موقع Reddit. تعني العلامة النجمية "*" أنه سيعمل على كل صفحة، لكن النص سيأخذ ذلك في الاعتبار ويتأكد من أنه يؤثر فقط على الصفحة الرئيسية.
الآن بالنسبة للنص الفعلي، الذي يجب أن يحل محل السطر الذي يقرأ "// كودك هنا...:"
function checkURL() { if (window.location.pathname === "/") { window.location.replace("//www.reddit.com/new"); } } let currentUrl = location.href; checkURL(); setInterval(() => { if (location.href !== currentUrl) { currentUrl = location.href; checkURL(); } }, 500);
تقوم دالة checkURL بالعمل الرئيسي. أولاً، تتحقق مما إذا كانت URL الصفحة تحتوي على شريحة واحدة فقط بعد اسم النطاق. إذا كان الأمر كذلك، فنحن على الصفحة الرئيسية. بعد ذلك، تستدعي window.location.replace()، ببساطة تضيف "new" إلى نهاية URL. هذا يوجه متصفحك لتحميل URL، وهو الصفحة الرئيسية، مرتبة حسب أحدث المنشورات بدلاً من الافتراضي.
تتأكد بقية النص من أن هذا الفحص يحدث بانتظام: مرتين في الثانية. من الناحية المثالية، لن يكون هذا ضروريًا؛ يجب أن يتم الفحص فقط عندما تتغير URL وتحمّل الصفحة في البداية. ومع ذلك، بسبب الطريقة التي يقوم بها Reddit بتحميل الصفحات، يحتاج النص إلى التحقق بانتظام بدلاً من ذلك. إنها طريقة "قوة غاشمة"، لكن الكود يقوم بعمل قليل جدًا لدرجة أننا يمكننا تحمل ذلك.
احفظ نصك وأغلق علامة تبويب Tampermonkey، ثم انتقل إلى Reddit وحاول تحميل الصفحة الرئيسية. يجب أن ترى الآن أنه بدلاً من تغذية "الأفضل" الافتراضية، أنت تشاهد "الجديد"، وهي تجربة أفضل بكثير!
ماذا يمكنك أيضًا إصلاحه؟
لا تحتاج إلى تغيير الكود كثيرًا لاستيعاب صفحات subreddit الرئيسية أيضًا. فقط أضف شرطًا آخر إلى دالة checkURL()، التي تعالج URLs subreddit بطريقة مشابهة:
function checkURL() { let match; if (window.location.pathname === "/") { window.location.replace("//www.reddit.com/new"); } else if (match = window.location.pathname.match("(/r/[^/]+)/$")) { window.location.replace("//www.reddit.com" + match[1] + "/new/"); } }
هذا الفحص أكثر تعقيدًا بعض الشيء لأنك تحتاج إلى اختبار نمط يمكن أن يتطابق مع العديد من URLs المختلفة، بدلاً من URL ثابت واحد. تستعمل الدالة window.location.pathname.match() تعبيرًا منتظمًا. مرة أخرى، التفاصيل ليست مهمة للغاية؛ الشيء الرئيسي هو أن هذا الفحص يتطابق مع URLs التي تبدو مثل “/r/[subreddit]/” ويضيف “new/” إلى نهايتها.
بمجرد إعداد هذا الامتداد، فإن العالم بين يديك، شريطة أن تتعلم قليلاً من JavaScript. مع Tampermonkey، أو امتداد مشابه، وبعض العزيمة، يمكنك إصلاح جميع أنواع المشكلات مع المواقع التي تستخدمها بانتظام. قم بإزالة العناصر غير المرغوب فيها، وأعد تنظيم التنقل، واضغط على وضع الظلام، وتوقف عن تشغيل مقاطع الفيديو، وأكثر من ذلك.
تقتصر الحدود الحقيقية على مدى تنظيم كل موقع. على سبيل المثال، يستخدم X (Twitter) نفس URL لكل من عرض "لك" وعرض "المتابعة"، مما يعني أنه من الصعب جدًا العمل معه. من ناحية أخرى، يتمتع YouTube بسلوك أفضل، مع URLs متميزة لصفحته الرئيسية وتغذية الاشتراكات.
لذا فإن إصلاح المواقع يتطلب بعض التحقيق وتجربة قليلة، لكن التحسينات التي يمكنك إضافتها تجعل الأمر يستحق وقتك.
التعليقات 0
سجل دخولك لإضافة تعليق
لا توجد تعليقات بعد. كن أول من يعلق!