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

Kanye West se irrita com apresentador e abandona entrevista ao vivo

Kanye West teria se irritado com as interrupções de Tim Pool - Reprodução/Twitter
Kanye West teria se irritado com as interrupções de Tim Pool Imagem: Reprodução/Twitter

Colaboração para Splash

29/11/2022 11h23

O rapper Kanye West, de 45 anos, abandonou de forma intempestiva uma entrevista ao podcast "Timcast IRL", comandado por Tim Pool no YouTube, após se irritar com uma observação feita pelo apresentador da atração.

Kanye participou do programa ao lado do nacionalista Nick Fuentes, que já chegou a negar a existência do Holocausto alemão, e do supremacista branco Milo Yiannopoulos, seu conselheiro de campanha para a corrida presidencial de 2024 nos EUA.

O rapper se disse injustiçado pelas consequências - financeiras, inclusive - que sofreu após dar declarações antissemitas à mídia. "Perdi dinheiro pela liberdade de expressão, e é isso que me torna o único americano que conhecemos que realmente merece governar o país", disparou.

"Você foi direto para o antissemita. Se você perguntar minha opinião, vou discordar de você", disse Pool em certo momento do bate-papo. "Não pedi sua opinião sobre isso", respondeu West, tentando parecer ameno.

Pouco depois, ele chegou a se comparar a Martin Luther King. "Pensei que era mais Malcolm X, mas vi que sou mais MLK, porque estou sendo atacado todo dia pela imprensa e fico parado, sem poder reagir."

"Eu concordo que a imprensa foi totalmente injusta com você", amenizou Pool. "A que imprensa você se refere?", indagou West, parecendo incomodado com a observação. "A imprensa corporativa", esclareceu o apresentador.

Foi aí que West simplesmente se levantou e, para surpresa do anfitrião e demais convidados, abandonou a entrevista no meio. "Você vai sair?", ainda tentou questionar Pool, sendo ignorado pelo rapper.

De acordo com o site TMZ, após sua saída dramática de cena, West teria comentado com os produtores do podcast que não estava zangado com Pool, mas acabou se irritando com as interrupções dele enquanto tentava expor seu lado da questão.