A principal tendência deste ano de "bloqueio", a extensão descrita abaixo, permite que você sinta o poder sobre o conteúdo no navegador.
Lembro-me por muito tempo, na infância, quando assistia TV, durante os blocos de anúncios, sempre havia um intervalo como um intervalo na escola, ir à cozinha ou uma latrina, mudar para outros canais, um intervalo para fumar era adicionado com a idade.
Agora, raramente assisto TV, leio notícias na Internet, uso bloqueadores de anúncios. No telefone, quando eles ligam e tentam impor serviços financeiros ou um assistente de janela, eu desligo. Às vezes, com raras exceções, existem comerciais interessantes ou engraçados, mas mesmo esses vídeos após a segunda exibição se tornam publicidade regular.
Há alguns anos, notei que em todos os sites de notícias, pode-se dizer que nem um dia se passou sem notícias sobre blogueiros: tais e tais blogueiros têm um conflito ou blogueiros na Duma do Estado. Um blogueiro é um "nome novo" e, como de costume, o blog "mais, mais" de todos os outros blogueiros. Ao mesmo tempo, é raro quando eles escrevem critérios por que ele é "o máximo, o máximo", para que o leitor possa assistir a vídeos ou pesquisar na Internet, que está no próximo blogueiro de "ele mesmo". Os blogueiros introduzem a nova palavra "zashkvar", os blogueiros pegaram em armas contra isso, os blogueiros estão fazendo seu próprio programa.
O ano passado sobre blogueiros de notícias se tornou menor, o líder agora é "B ... va", não menciono especificamente, existe o risco de transformar o artigo nas próximas notícias sobre "B ... va" e, portanto, todos os dias há novas notícias. Os jornalistas são frequentemente forçados a seguir o link com um trocadilho na manchete.
Eu escreveria mais alguns exemplos, mas não o farei, porque o descrito acima não é uma tentativa de ser bom comigo mesmo, com a ajuda de críticas de outros. Com qualquer coisa, pode haver rebentamento ou overdose. Estou mais do que certo de que todos têm seus próprios “líderes” nas notícias, que eles preferem não ver, sem eles o dia deles se tornaria melhor.
Os exemplos acima são essencialmente um tipo de publicidade, mas quando distribuídos na forma de notícias, eles não se enquadram em nenhum bloqueador de anúncios. Muitos navegadores possuem bloqueio de anúncios interno, mas, infelizmente, não há como bloquear o conteúdo por palavras no conteúdo. Tentei pesquisar nas extensões, mas não a encontrei com a descrição necessária, bloqueadores de anúncios chamaram minha atenção, eles pareciam ser capazes de bloquear de acordo com as palavras, mas não tentei apostar. Vi recentemente vários artigos que nem todas as extensões são seguras, e é mais interessante escrever o seu próprio, simples, apenas com a função necessária de cortar conteúdo.
Existem muitos artigos sobre a criação de extensões, mas este artigo não é uma instrução para criação.
A primeira versão da extensão saiu em apenas algumas horas, o algoritmo de corte é simples e universal. A desvantagem da universalidade é que o algoritmo pode não ser adequado para todos os sites. Mas, para fazer a extensão funcionar, tive que escrever muito código para exibir os contadores, o conteúdo oculto de cada página.
A parte content_script.js é a principal lógica para bloquear o conteúdo:
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(); }
O snippet acima mostra que o método "document.evaluate" é usado. Ao procurar texto em tags, os elementos raiz também caem nos resultados. Por exemplo, o texto da página inteira, o texto do bloco de notícias etc. Para eliminar elementos desnecessários, a segunda condição no número de filhos aninhados é usada. No meu caso, surgiu o número 9. Em três sites, o supérfluo está escondido de forma rápida e simples, embora às vezes em um dos sites de um determinado quarteirão haja uma foto, mas sem um link para as notícias e links para a foto.
Era originalmente um desejo de criar também uma página de configurações de extensão, talvez eu faça isso mais tarde. Enquanto isso, as configurações básicas são feitas diretamente no código.
Parte de background.js está nas configurações de bloqueio de conteúdo:
let childsLimit = 9; let blockString = '[contains(., "...") and count(child::node())<childsLimit]'; let blockOnlyUrlOpt = false; let urlOptions = [{url: 'https://exampleSite.com', unBlock: true, childsLimit: 4}];
A primeira variável "childsLimit" permite definir o nível geral de aninhamento dos elementos bloqueados.
A segunda variável "blockString" contém a condição xpath. Ao adicionar uma nova palavra, você precisa copiar tudo junto com colchetes e adicionar ao final a palavra "or" e substituir a palavra de pesquisa entre aspas.
let blockString = '[contains(., "1") and count(.//*)<childsLimit] or [contains(., "2") and count(.//*)<childsLimit]';
A terceira variável "urlOptions" permite ajustar as configurações de sites diferentes.
Propriedade "url" - contém o endereço ao qual a configuração será aplicada.
A propriedade "unBlock" - o valor booleano true permite não bloquear o conteúdo no site especificado em "url"
A propriedade "childsLimit" é o nível de aninhamento do item de conteúdo bloqueado.
A quarta variável "blockOnlyUrlOpt" permite definir uma lógica comum. Se o valor for verdadeiro, o bloqueio funcionará apenas nos sites listados na variável urlOptions da matriz, onde a propriedade unBlock é falsa.
Os arquivos de extensão estão disponíveis aqui.Para instalar, você deve:
- Baixe todos os arquivos para qualquer pasta conveniente para você.
- No navegador, vá para extensões e ative o modo de desenvolvedor.
- No botão "Baixar extensão descompactada ..." especifique a pasta do ponto um.
Desenvolvido e testado no navegador Opera, outros navegadores de cromo também devem funcionar.