Pemblokiran konten, ekstensi untuk peramban kromium

Tren utama "pemblokiran" tahun ini, ekstensi yang dijelaskan di bawah ini, memungkinkan Anda merasakan kekuatan atas konten di browser.


Saya ingat untuk waktu yang lama, di masa kanak-kanak, ketika menonton TV, selama unit iklan, selalu ada istirahat seperti istirahat sekolah, pergi ke dapur atau kakus, beralih ke saluran lain, perokok ditambahkan dengan usia.

Sekarang saya jarang menonton TV, membaca berita di Internet, menggunakan pemblokir iklan. Di telepon ketika mereka menelepon dan mencoba memaksakan jasa keuangan atau ahli jendela, saya menutup telepon. Terkadang, dengan pengecualian yang jarang, ada iklan yang menarik atau lucu, tetapi bahkan video seperti itu setelah penayangan kedua berubah menjadi iklan biasa.

Beberapa tahun yang lalu, saya perhatikan bahwa di semua situs berita, Anda dapat mengatakan tidak ada hari berlalu tanpa berita tentang blogger: blogger ini dan itu memiliki konflik atau blogger di Negara Duma. Seorang blogger adalah "nama baru" dan, seperti biasa, blogger "paling, paling" dari semua blogger lainnya. Pada saat yang sama, sangat jarang ketika mereka menulis kriteria mengapa dia adalah "yang paling, paling" sehingga pembaca dapat menonton video atau mencari di Internet, yang merupakan blogger berikutnya dari "dirinya sendiri, dirinya sendiri." Blogger memperkenalkan kata baru "zashkvar", blogger telah menentang hal ini, blogger membuat acara mereka sendiri.

Tahun terakhir tentang blogger berita menjadi kurang, pemimpin sekarang adalah "B ... va", saya tidak secara khusus menyebutkan, ada risiko mengubah artikel menjadi berita berikutnya tentang "B ... va", dan setiap hari ada berita baru. Jurnalis sering dipaksa untuk mengikuti tautan dengan pelesetan di tajuk utama.

Saya akan menulis beberapa contoh lagi, tetapi saya tidak akan melakukannya, karena yang dijelaskan di atas bukanlah upaya untuk menjadi baik dengan bantuan kritik dari orang lain. Dengan hal apa pun, mungkin ada busting atau overdosis. Saya lebih dari yakin bahwa setiap orang memiliki "pemimpin" mereka sendiri dalam berita, yang mereka lebih suka tidak melihat, tanpa mereka hari mereka akan menjadi lebih baik.

Contoh-contoh di atas pada dasarnya adalah sejenis iklan, tetapi ketika didistribusikan dalam bentuk berita, mereka tidak termasuk dalam pemblokir iklan. Banyak browser memiliki pemblokiran iklan bawaan, tetapi sayangnya, tidak ada cara untuk memblokir konten dengan kata-kata dalam konten. Saya mencoba mencari di ekstensi, tetapi saya tidak menemukan yang dengan deskripsi yang tepat, pemblokir iklan menarik perhatian saya, mereka tampaknya dapat memblokir menurut kata-kata, tetapi saya tidak mencoba bertaruh. Baru-baru ini saya melihat beberapa artikel yang tidak semua ekstensi aman, dan lebih menarik untuk menulis sendiri, sederhana, hanya dengan fungsi yang diperlukan untuk memotong konten.

Ada banyak artikel tentang cara membuat ekstensi, tetapi artikel ini bukan instruksi untuk membuat ekstensi.
Versi pertama ekstensi ternyata hanya dalam beberapa jam, algoritma pemotongannya sederhana dan universal. Kelemahan dari universalitas adalah bahwa algoritma tersebut mungkin tidak cocok untuk semua situs. Tetapi untuk membuat ekstensi bekerja, saya harus menulis banyak kode untuk menampilkan penghitung, konten tersembunyi untuk setiap halaman.

Bagian content_script.js adalah logika utama untuk memblokir konten:

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(); } 

Cuplikan di atas menunjukkan bahwa metode "document.evaluate" digunakan. Saat mencari teks dalam tag, elemen root juga termasuk dalam hasil. Misalnya, teks seluruh halaman, teks blok berita, dll. Untuk menghilangkan elemen yang tidak perlu, kondisi kedua pada jumlah anak bersarang digunakan. Dalam kasus saya, nomor 9 muncul. Di tiga situs, yang berlebihan bersembunyi dengan cepat dan sederhana, meskipun kadang-kadang di salah satu situs di blok tertentu ada foto, tetapi tanpa tautan ke berita dan tautan ke gambar.

Awalnya memang keinginan untuk membuat juga halaman pengaturan ekstensi, mungkin saya akan melakukannya nanti. Sementara itu, pengaturan dasar dibuat langsung dalam kode.

Bagian dari background.js adalah pengaturan pemblokiran konten:

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

Variabel pertama "childsLimit" memungkinkan Anda untuk mengatur tingkat keseluruhan dari elemen yang terkunci.

Variabel kedua "blockString" berisi kondisi xpath, saat menambahkan kata baru, Anda harus menyalin semuanya bersama-sama dengan tanda kurung siku dan menambahkan ke akhir dengan kata "atau" dan kemudian mengganti kata pencarian dengan tanda kutip.

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

Variabel ketiga "urlOptions" memungkinkan Anda menyempurnakan pengaturan untuk berbagai situs.
Properti "url" - berisi alamat untuk mana pengaturan akan diterapkan.
Properti "unBlock" - nilai boolean true memungkinkan untuk tidak memblokir konten di situs yang ditentukan dalam "url"
Properti "childsLimit" adalah tingkat bersarang dari item konten yang diblokir.
Variabel keempat "blockOnlyUrlOpt" memungkinkan Anda untuk menentukan logika umum. Jika nilainya benar, pemblokiran hanya berfungsi di situs yang tercantum dalam urlOptions array variabel, di mana properti unBlock salah.

File ekstensi tersedia di sini.

Untuk menginstal, Anda harus:

  • Unduh semua file ke folder apa pun yang nyaman bagi Anda.
  • Di browser, buka ekstensi dan aktifkan mode pengembang.
  • Pada tombol "Unduh ekstensi yang belum dibuka ..." tentukan folder dari titik satu.

Dikembangkan dan diuji di browser Opera, browser chromium lainnya juga harus berfungsi.

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


All Articles