Bloqueo de contenido, extensi贸n para navegadores de cromo

La tendencia principal de este a帽o de "bloqueo", la extensi贸n que se describe a continuaci贸n, le permite sentir el poder sobre el contenido en el navegador.


Recuerdo durante mucho tiempo, en la infancia, cuando ve铆a la televisi贸n, durante los bloques de anuncios, siempre hab铆a un descanso como un receso escolar, ir a la cocina o una letrina, cambiar a otros canales, se agregaba un descanso para fumar con la edad.

Ahora rara vez veo televisi贸n, leo noticias en Internet, uso bloqueadores de anuncios. En el tel茅fono cuando llaman e intentan imponer servicios financieros o un asistente de ventana, cuelgo. A veces, con raras excepciones, hay comerciales interesantes o divertidos, pero incluso esos videos despu茅s de la segunda visualizaci贸n se convierten en publicidad regular.

Hace un par de a帽os, not茅 que en todos los sitios de noticias, se puede decir que no pas贸 un d铆a sin noticias sobre los bloggers: tales y otros bloggers tienen un conflicto o bloggers en la Duma del Estado. Un blogger es un "nombre nuevo" y, como de costumbre, el blogger "m谩s, m谩s" de todos los dem谩s bloggers. Al mismo tiempo, es raro cuando escriben criterios de por qu茅 茅l es "el m谩s, el m谩s" para que el lector pueda ver videos o buscar en Internet, que se encuentra en el pr贸ximo blogger de "茅l mismo". Los bloggers introducen la nueva palabra "zashkvar", los bloggers se han alzado contra esto, los bloggers est谩n haciendo su propio show.

El 煤ltimo a帽o sobre blogueros de noticias se ha vuelto menos, el l铆der ahora es "B ... va", no lo menciono espec铆ficamente, existe el riesgo de convertir el art铆culo en las pr贸ximas noticias sobre "B ... va", por lo que cada d铆a hay noticias nuevas. Los periodistas a menudo se ven obligados a seguir el enlace con un juego de palabras en el titular.

Escribir铆a algunos ejemplos m谩s, pero no lo har茅, porque el descrito anteriormente no es un intento de ser bueno yo mismo con la ayuda de la cr铆tica de los dem谩s. Con cualquier cosa, puede haber una explosi贸n o una sobredosis. Estoy m谩s que seguro de que todos tienen sus propios "l铆deres" en las noticias, que preferir铆an no ver, sin ellos su d铆a habr铆a mejorado.

Los ejemplos anteriores son esencialmente un tipo de publicidad, pero cuando se distribuyen en forma de noticias, no entran en ning煤n bloqueador de anuncios. Muchos navegadores tienen bloqueo de anuncios incorporado, pero desafortunadamente, no hay forma de bloquear el contenido por palabras en el contenido. Intent茅 buscar en las extensiones, pero no lo encontr茅 con la descripci贸n necesaria, los bloqueadores de anuncios me llamaron la atenci贸n, parec铆an poder bloquear seg煤n las palabras, pero no intent茅 apostar. Recientemente vi varios art铆culos que no todas las extensiones son seguras, y es m谩s interesante escribir el suyo, simple, solo con la funci贸n necesaria de cortar contenido.

Hay muchos art铆culos sobre la creaci贸n de extensiones, pero este art铆culo no es una instrucci贸n para crear.
La primera versi贸n de la extensi贸n result贸 en solo un par de horas, el algoritmo de corte es simple y universal. La desventaja de la universalidad es que el algoritmo puede no ser adecuado para todos los sitios. Pero para que la extensi贸n funcionara, tuve que escribir mucho c贸digo para mostrar los contadores, el contenido oculto de cada p谩gina.

La parte content_script.js es la l贸gica principal para bloquear el contenido:

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

El fragmento anterior muestra que se utiliza el m茅todo "document.evaluate". Al buscar texto en las etiquetas, los elementos ra铆z tambi茅n se incluyen en los resultados. Por ejemplo, el texto de toda la p谩gina, el texto del bloque de noticias, etc. Para eliminar elementos innecesarios, se utiliza la segunda condici贸n sobre el n煤mero de hijos anidados. En mi caso, apareci贸 el n煤mero 9. En tres sitios, lo superfluo se esconde de forma r谩pida y sencilla, aunque a veces en uno de los sitios de un determinado bloque hay una foto, pero sin un enlace a las noticias y enlaces a la imagen.

Originalmente era un deseo de hacer tambi茅n una p谩gina de configuraci贸n de extensi贸n, tal vez lo har茅 m谩s tarde. Mientras tanto, la configuraci贸n b谩sica se realiza directamente en el c贸digo.

Parte de background.js es la configuraci贸n de bloqueo de contenido:

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

La primera variable "childsLimit" le permite establecer el nivel general de anidamiento de los elementos bloqueados.

La segunda variable "blockString" contiene la condici贸n xpath, al agregar una nueva palabra, debe copiar todo junto con corchetes y agregar al final con la palabra "o" y luego reemplazar la palabra de b煤squeda entre comillas.

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

La tercera variable "urlOptions" le permite ajustar la configuraci贸n de diferentes sitios.
Propiedad "url": contiene la direcci贸n para la que se aplicar谩 la configuraci贸n.
La propiedad "desbloquear": el valor booleano verdadero permite no bloquear el contenido en el sitio especificado en la "url"
La propiedad "childsLimit" es el nivel de anidaci贸n del elemento de contenido bloqueado.
La cuarta variable "blockOnlyUrlOpt" le permite definir una l贸gica com煤n. Si el valor es verdadero, el bloqueo solo funciona en los sitios enumerados en la matriz variable urlOptions, donde la propiedad de desbloqueo es falsa.

Los archivos de extensi贸n est谩n disponibles aqu铆.

Para instalar, debes:

  • Descargue todos los archivos a cualquier carpeta que sea conveniente para usted.
  • En el navegador, vaya a extensiones y active el modo desarrollador.
  • En el bot贸n "Descargar extensi贸n desempaquetada ..." especifique la carpeta desde el punto uno.

Desarrollado y probado en el navegador Opera, otros navegadores de cromo tambi茅n deber铆an funcionar.

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


All Articles