;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Não quer nem saber de BBB 23? Saiba como bloquear conteúdo sobre reality

Os quatro participantes da casa de vidro do BBB 23 já estão confinados - Reprodução/Globoplay
Os quatro participantes da casa de vidro do BBB 23 já estão confinados Imagem: Reprodução/Globoplay

De Tilt, em São Paulo

12/01/2023 10h29Atualizada em 12/01/2023 21h30

Os nomes dos participantes da nova edição do Big Brother Brasil foram divulgados hoje (12). Mas se você já não aguenta mais ver notícias sobre o reality apresentado por Tadeu Schmidt, siga as digas a seguir.

Tilt te ensina a diminuir as chances de informações sobre o BBB 23 aparecerem. Basta configurar o seu navegador de web e filtros das redes para não exibirem notícias, menções, postagens e vídeos relacionados ao programa.

O processo vai exigir um pouco de paciência da sua parte. Mas vale a pena para quem não curte.

Ponto de partida

Você precisa preparar uma lista com palavras-chaves relacionadas ao reality show. Quanto mais termos, melhor.

Essa lista tem quer os nomes de todos os confinados na casa, palavras que geralmente são usadas para se referir ao programa, ou hashtags relacionadas ao reality, como "paredão", "prova do líder", "estalecas", "eliminação", e por aí vai — além, claro, de "BBB" e "BBB23".

No Twitter

O Twitter é a rede social mais fácil de bloquear postagens que você não quer ver. A dica é usar um computador para seguir o o a o.

1. No seu feed, ache os três pontinhos que ficam do lado esquerdo da tela.

2. Entre em "Configurações e e",

3. Depois em "Configurações e privacidade"

4. Vá na área de "Privacidade e segurança" e encontre a opção "Silenciar e bloquear"

5. Clique em "Palavras silenciadas"

BBB - Twitter 2 - Reprodução - Reprodução
Imagem: Reprodução

6. Clique no sinal de "Adição" que vai aparecer no canto superior direito da tela. Ali, você já pode começar a adicionar todas as palavras-chave contidas na sua lista — uma de cada vez.

BBB - Twitter 3 - Reprodução - Reprodução
Imagem: Reprodução

Dá para silenciar as palavras para sempre, mas se você quer apenas um break do programa, é possível bloquear os termos por 24 horas, sete dias e 30 dias.

Sem BBB no navegador, Facebook e Instagram

Se você usa o Google Chrome como navegador, o único trabalho que vai ter é baixar uma extensão chamada "Chega de BBB".

1. Para encontrar a loja de complementos do Chrome clique nos três pontinhos no canto superior direito da tela do seu navegador

2. Abra o menu "Configurações"

3. Clique em "Extensão" no canto inferior esquerdo da tela.

4. Na página, clique nos três traços que ficam em cima, no lado esquerdo. Abra o Chrome Web Store.

BBB - Chrome 1 - Reprodução - Reprodução
Imagem: Reprodução

5. Encontre a extensão "Chega de BBB" e a instale no seu navegador.

6. A partir de agora o botão do complemento vai aparecer ao lado da barra de endereços do seu Chrome. Ao clicar nele, haverá a opção de adicionar palavras-chaves. É a hora de descarregar aquela lista que você preparou.

BBB - Chrome 2 - Reprodução - Reprodução
Imagem: Reprodução

Além do "Chega de BBB", há outras extensões que cumprem basicamente o mesmo papel, como Spoiler Protection 2.0, que também te permite bloquear todos os termos que você não deseja ver.

As duas extensões substituem o conteúdo referente ao reality show por pequenos quadrados. Não é bonito, mas é efetivo.

As duas ferramentas também funcionam na hora de esconder postagens sobre o tema no Facebook e Instagram se você estiver usando a versão web das plataformas.