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

Castanhari 'profetizou' pandemia na série 'Mundo Mistério', da Netflix

De Splash, no Rio

04/10/2021 04h00

Sempre firme com seus posicionamentos —desde as críticas ao governo de Jair Bolsonaro ao confronto com os negacionistas—, Felipe Castanhari brincou, em entrevista no "OtaLab" desta semana, sobre o fato de ter "profetizado" a pandemia da covid 19 em um dos episódios de sua série "Mundo Mistério", da Netflix.

É um episódio sobre a peste bubônica. No final, eu falo a seguinte frase: 'Sabe o que eu fico pensando? Será que uma pandemia mudaria o mundo hoje como aconteceu na época da peste negra'?. Eu falo isso, cara. Eu odiei ter profetizado isso, mas...

No papo com Ota, Castanhari lamentou as mudanças políticas do Brasil nos últimos anos: Sem dúvidas o Brasil mudou para pior, né? Meu deus do céu, que momento estamos ando. É até difícil falar disso...", comentou o youtuber, antes de deixar uma mensagem de esperança:

É um momento muito estranho. Estranho talvez não seja a palavra, mas as coisas mudaram muito. Mas eu ainda tenho fé de que daqui a um tempo, talvez aí com a nova eleição, as coisas voltem ao normal e a gente finalmente pare de ter o absurdo sendo normalizado, que isso é muito triste.

c - Reprodução - Reprodução
Felipe Castanhari foi um dos convidados de Otaviano Costa no "OtaLab" desta semana
Imagem: Reprodução

Treta com Felipe Neto

O youtuber do canal Nostalgia também não fugiu do assunto quando foi questionado sobre a treta com Felipe Neto. A troca de farpas entre os dois gigantes da internet brasileira aconteceu há alguns anos: "Eu perdi um pouco a mão", itiu Castanhari, que disse estar tudo bem entre os dois atualmente.

Nyvi Estephan

Outra pessoa que conhece muito bem Castanhari também participou do "OtaLab" desta semana. A youtuber e apresentadora Nyvi Estephan, que é namorada dele, falou com Ota sobre como lida com o machismo entre os gamers. Nyvi, que é um dos maiores nomes dos e-sports no país, disse que, no início da carreira, foi criticada pelas roupas que usava.

Valesca Popozuda também foi

E o "OtaLab" também teve muita música e bom humor com a presença de Valesca Popozuda, que revelou alguns de seus segredos mais íntimos, como a gaveta de fantasias sexuais inspirada no filme "50 Tons de Cinza". A funkeira também contou já ter se convidado para o "BBB" e levado um bolo de Boninho: "Nem me respondeu".

Valesca se emocionou, durante a conversa com Ota, ao ver um vídeo de Verônica Costa. A cantora revelou que a Mãe Loira ajudou a pagar o tratamento de câncer de sua mãe: "A verônica é uma pessoa incrível. Ela é tudo na minha vida".

Você pode assistir a toda a programação do Canal UOL aqui.