حظر المحتوى ، امتداد لمتصفحات الكروم

يتيح لك الاتجاه الرئيسي لهذا العام من "الحظر" ، الامتداد الموصوف أدناه ، أن تشعر بالقوة على المحتوى في المتصفح.


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

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

منذ بضع سنوات ، لاحظت أنه في جميع المواقع الإخبارية ، يمكنك القول أنه لم يمر يوم بدون أخبار عن المدونين: مثل هؤلاء المدونين لديهم صراع أو مدونون في دوما الدولة. المدون هو "اسم جديد" ، وكالعادة ، المدون "الأكثر والأكثر" لجميع المدونين الآخرين. في الوقت نفسه ، من النادر أن يكتبوا معايير لماذا هو "الأكثر ، الأكثر" حتى يتمكن القارئ من مشاهدة مقاطع الفيديو أو البحث على الإنترنت ، وهو في المدون التالي لـ "نفسه ، نفسه". يقدم المدونون الكلمة الجديدة "zashkvar" ، وقد حمل المدونون السلاح ضد ذلك ، ويقوم المدونون بعرضهم الخاص.

في العام الماضي حول المدونين الإخباريين أصبحوا أقل ، والزعيم الآن هو "B ... va" ، ولا أذكر على وجه التحديد ، هناك خطر من تحويل المقالة إلى الأخبار التالية حول "B ... va" ، وبالتالي هناك أخبار جديدة كل يوم. غالبًا ما يضطر الصحفيون إلى اتباع الرابط بتورية في العنوان.

أود أن أكتب بعض الأمثلة الأخرى ، لكنني لن أفعل ذلك ، لأن المثال الموضح أعلاه ليس محاولة لأن أكون جيدًا بمساعدة انتقاد الآخرين. مع أي شيء ، قد يكون هناك خرق أو جرعة زائدة. أنا أكثر من واثق من أن كل شخص لديه "قادته" في الأخبار ، وهو ما يفضلون عدم رؤيته ، لولا أن يصبح يومهم أفضل.

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

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

الجزء content_script.js هو المنطق الرئيسي لحظر المحتوى:

let search = document.evaluate('/html/body//*[contains(., "...") and count(child::node())<childsLimit]', document.body, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); let thisHeading = search.iterateNext(); while (thisHeading) { if (thisHeading.tagName !== 'script' && thisHeading.style.display != 'none') { thisHeading.style.display = 'none'; } thisHeading = search.iterateNext(); } 

يوضح المقتطف أعلاه استخدام طريقة "document.evaluate". عند البحث عن نص في العلامات ، تقع العناصر الجذر أيضًا في النتائج. على سبيل المثال ، نص الصفحة بأكملها ، نص كتلة الأخبار ، إلخ. للقضاء على العناصر غير الضرورية ، يتم استخدام الشرط الثاني لعدد الأطفال المتداخلين. في حالتي ، ظهر الرقم 9. في ثلاثة مواقع ، يتم إخفاء الفائض بسرعة وببساطة ، على الرغم من وجود صورة في بعض المواقع في كتلة معينة ، ولكن بدون رابط للأخبار وروابط إلى الصورة.

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

جزء من background.js هو إعدادات حظر المحتوى:

 let childsLimit = 9; let blockString = '[contains(., "...") and count(child::node())<childsLimit]'; let blockOnlyUrlOpt = false; let urlOptions = [{url: 'https://exampleSite.com', unBlock: true, childsLimit: 4}]; 

يتيح لك المتغير الأول "childsLimit" ضبط المستوى العام لتداخل العناصر المقفلة.

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

 let blockString = '[contains(., "1") and count(.//*)<childsLimit] or [contains(., "2") and count(.//*)<childsLimit]'; 

يسمح لك المتغير الثالث "urlOptions" بضبط الإعدادات لمواقع مختلفة.
الخاصية "url" - تحتوي على العنوان الذي سيتم تطبيق الإعداد عليه.
خاصية "unBlock" - القيمة المنطقية الحقيقية تسمح بعدم حظر المحتوى على الموقع المحدد في "url"
خاصية "childsLimit" هي مستوى تداخل عنصر المحتوى المحظور.
المتغير الرابع "blockOnlyUrlOpt" يسمح لك بتعريف المنطق المشترك. إذا كانت القيمة صحيحة ، فإن الحظر يعمل فقط على المواقع المدرجة في urlOptions للمصفوفة المتغيرة ، حيث تكون الخاصية unBlock خاطئة.

ملفات التمديد متاحة هنا.

للتثبيت ، يجب عليك:

  • قم بتنزيل جميع الملفات إلى أي مجلد مناسب لك.
  • في المتصفح ، انتقل إلى الإضافات وتمكين وضع المطور.
  • على الزر "تنزيل ملحق غير معبأ ..." حدد المجلد من النقطة الأولى.

تم تطويرها واختبارها في متصفح Opera ، كما يجب أن تعمل متصفحات الكروم الأخرى.

Source: https://habr.com/ru/post/ar425361/


All Articles