لا يعرض موجز Reddit دائمًا المنشورات التي تُهمك، خاصة إن كنت مشتركًا في عدد كبير من المنتديات الفرعية. الترتيب العشوائي، المنشورات المكررة، أو تلك التي لا تهمك قد تُشعرك أن المنصة لا تفهم تفضيلاتك. باستخدام برنامج نصي بسيط، يمكنك تخصيص واجهة Reddit بشكل يجعلها أكثر دقة وتنظيمًا، سواء بحذف منشورات من منتديات معينة، أو ترتيب المحتوى حسب كلمات مفتاحية، أو تحسين أداء التمرير. هذا الدليل يشرح لك طريقة تنفيذ ذلك خطوة بخطوة باستخدام كود خفيف وفعال.
يمكن أن تتراكم الإزعاجات البسيطة على مواقعك المفضلة مع مرور الوقت وتُسبب إحباطًا كبيرًا. بالنسبة لي، يُعدّ اختيار Reddit الافتراضي لـ “الأفضل” هو الحل. لحسن الحظ، بقليل من العزيمة وإضافة فعّالة، يُمكنك حل معظم هذه المشاكل.
ما المشكلة؟
صمدت طويلًا، لكنني قررتُ مؤخرًا الانتقال إلى Reddit “الجديد”. بشكل عام، ليس الأمر سيئًا كما توقعتُ، وواجهة المستخدم جيدة في معظمها. لكن هناك مشكلة واحدة تُزعجني إلى حد كبير: ترتيب المنشورات الافتراضي.
في موجز الصفحة الرئيسية وموجزات الصفحات الفرعية، تُعرض المنشورات بترتيب “الأفضل”. هذا الإعداد غير واضح، ومثل خوارزمية “لك” على X أو موجز الصفحة الرئيسية في YouTube، فهو يهدف إلى الترويج للمحتوى أكثر من تلبية حاجة معينة. لا أستطيع إحصاء عدد المرات التي جذبني فيها عنوان منشور، ثم انزعج عندما رأيته منذ أسابيع أو أشهر.
حتى عندما أكتشف الخطأ، يستغرقني الأمر نقرتين للانتقال من “الأفضل” إلى “الجديد”، وهذا يُعيق تدفق أفكاري. لكن بفضل القليل من الجهد، لم تعد هذه المشكلة قائمة.
كيفية إصلاح مشكلة التغذية
إذا كنت تعرف لغة جافا سكريبت، فربما تفكر في حل هذه المشكلة. باستخدام هذه اللغة البرمجية، يمكنك إضافة وظائف إلى موقع ويب، وتعديل ألوانه وخطوطه، أو حتى إزالة محتوى لا يهمك. لكي تكون هذه التغييرات مرئية للجميع، ستحتاج إلى الوصول إلى الواجهة الخلفية للموقع، ولكن يمكنك استخدام متصفحك لإجراء هذه التغييرات على تجربتك الشخصية على أي موقع.
الحل يكمن في إضافة متصفح تتيح لك تشغيل جافا سكريبت خاص بك على مواقع محددة. أستخدم إضافةً لمتصفح كروم تُسمى Tampermonkey:
معظم المتصفحات تتضمن هذه الميزة إما مدمجة أو متاحة عبر إضافة. في الواقع، Tampermonkey متاح لجميع المتصفحات الرئيسية – كروم، إيدج، سفاري، وفايرفوكس – لذا أنصح به كخيار أول.
ابدأ بتنزيل Tampermonkey لمتصفحك؛ أنا أستخدم إصدار كروم.
بعد إضافة الامتداد وتفعيله، استخدم القائمة الخاصة به لـ “إنشاء نص برمجي جديد”. سترى ما يشبه هذا:
هناك الكثير من النصوص الجاهزة هنا، ومعظمها تعليقات لن يكون لها تأثير ملموس. لكن تأكد من أن سطر “@match” يبدو كما يلي:
// @match https://www.reddit.com/*
هذا يُلزم Tampermonkey بتشغيل البرنامج النصي على موقع Reddit فقط. يعني الرمز البديل “*” أنه سيعمل على جميع الصفحات، لكن البرنامج النصي سيأخذ ذلك في الاعتبار ويتأكد من أنه يؤثر فقط على الصفحة الرئيسية.
الآن، بالنسبة للبرنامج النصي نفسه، والذي من المفترض أن يحل محل السطر “// Your code here…:”
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 وحاول تحميل الصفحة الرئيسية. ستلاحظ الآن أنه بدلاً من صفحة “الأفضل” الافتراضية، ستظهر لك صفحة “جديد”، وهي تجربة أفضل بكثير!
ما الذي يمكنك إصلاحه أيضًا؟
لست بحاجة لتغيير الكود كثيرًا لتتوافق مع الصفحات الرئيسية للصفحات الفرعية. ما عليك سوى إضافة شرط آخر إلى دالة checkURL()، والتي تتعامل مع عناوين URL للصفحات الفرعية بنفس الطريقة:
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/");
}
}
هذا الفحص أكثر تعقيدًا بعض الشيء، إذ يتطلب التحقق من وجود نمط يتطابق مع عناوين URL مختلفة، بدلًا من عنوان URL ثابت واحد. يستخدم استدعاء window.location.pathname.match() تعبيرًا عاديًا. التفاصيل ليست مهمة جدًا؛ المهم هو أن يتطابق هذا الفحص مع عناوين URL التي تبدو مثل “/r/[subreddit]/” ويضيف “new/” في نهايتها.
بمجرد إعداد هذه الإضافة، ستكون جميع الخيارات متاحة لك، شريطة أن تتعلم القليل من جافا سكريبت. باستخدام Tampermonkey، أو إضافة مشابهة، وببعض العزيمة، يمكنك إصلاح جميع مشاكل المواقع التي تستخدمها بانتظام. أزل العناصر غير المرغوب فيها، وأعد تنظيم التنقل، وفعّل الوضع الداكن، وأوقف تشغيل الفيديوهات، وغير ذلك الكثير.
تعتمد القيود الحقيقية الوحيدة على مدى جودة هيكلة كل موقع. على سبيل المثال، يستخدم X (تويتر) عنوان URL نفسه لكل من عرض “لك” و”المتابعين”، مما يجعل التعامل معه أكثر تعقيدًا. من ناحية أخرى، يتميز YouTube بسلوك أفضل، مع عناوين URL مميزة للصفحة الرئيسية وخلاصة الاشتراكات.
لذا، يتطلب إصلاح المواقع بعض البحث والتجربة، لكن التحسينات التي يمكنك إضافتها تجعل الأمر يستحق وقتك.
بدلًا من تصفح موجز مزدحم بالمحتوى غير المرغوب فيه، يمكنك باستخدام برنامج نصي بسيط تحويل واجهة Reddit إلى تجربة مخصصة بالكامل. التعديل لا يتطلب خبرة برمجية عميقة، بل فقط القليل من التركيز ومحرر نصوص بسيط. هذه الطريقة تمنحك تحكمًا حقيقيًا بما يظهر أمامك، وتوفر وقتًا كثيرًا كنت تقضيه في تجاهل منشورات لا تهمك. جرّبها وستلاحظ الفرق فورًا.