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

Renato Peters chora após cobertura do Mundial: "Tira caminhão das costas"

Repórter da TV Globo se emocionou ao revelar superação no Qatar diante das dificuldades por conta da pandemia - Reprodução/TV Globo
Repórter da TV Globo se emocionou ao revelar superação no Qatar diante das dificuldades por conta da pandemia Imagem: Reprodução/TV Globo

Do UOL, em São Paulo

12/02/2021 08h53

O repórter Renato Peters, da TV Globo, não segurou a emoção ao finalizar sua cobertura do Mundial de Clubes à emissora no Qatar, sede do torneio que foi encerrado ontem.

Em uma aparição no "Bom Dia SP", o jornalista falou sobre o final da competição em um ponto turístico do país e aproveitou para mostrar ao público o repórter cinematográfico Jonathan dos Santos, revelando a dificuldade de um trabalho "enxuto" por conta do coronavírus.

"Foram quinze dias e eu vou contar um perrengue que aconteceu. A gente está entrando [no ar] via internet, temos os chips... e a nossa internet acabou minutos antes do 'Bom Dia Qatar'. Fizemos um gato aqui! Neste momento estamos roteando do meu celular para nossa maleta de transmissão", iniciou Peters, antes de não segurar o choro.

"Foi muito legal essa cobertura. Foi uma jornada muito intensa. A Globo decidiu mandar uma equipe enxuta até porque tem a pandemia e existe o risco de contaminação. Aqui no Qatar os casos estão aumentando. Foi muito intensa por causa da equipe reduzida. Tivemos quatro profissionais do grupo. [Além de mim e do Jonathan], foi o produtor Fabrício Crepaldi e o André Hernan. E... Meu deus do céu, esse 'Bom Dia SP' emociona. Foi uma cobertura intensa... Ih rapaz, bota as imagens!", disse o repórter, já com lágrimas nos olhos.

Neste momento, ele foi ajudado pelo apresentador do telejornal, Rodrigo Bocardi. "Desfruta desse momento! Você acompanhou e viu nossa proximidade com o público, isso é fantástico, com caminho de redes sociais. Foi um sucesso enorme, foi muito bacana ver todo mundo se divertindo e tentando trazer descontração. Você contribuiu demais para isso."

Ainda emocionado, Peters afirmou ter tirado "um caminhão das costas" com o fim da cobertura e relembrou um episódio divertido no Qatar, envolvendo uma calça rasgada durante um eio de camelo.

"Essa emoção é que vocês sabem. Quando acaba uma cobertura e dá tudo certo, você tira um caminhão das costas. A gente se desdobrou aqui. Quando chega no final, você pensa: 'foi tudo certo'. Desculpa aí... o 'Bom Dia SP' faz cada coisa. Faz a gente rasgar calça ao vivo!".

"Espero que a gente tenha levado para vocês todas as informações. Como disse, a torcida palmeirense sai frustrada com o 4° lugar, mas o time tem Copa do Brasil para disputar. Cumprimos a nossa missão. Quem sabe voltamos em 2022!", finalizou o repórter, fazendo alusão à próxima Copa do Mundo, que será realizada no país.

No Twitter, vários telespectadores se emocionaram com o gesto e elogiaram o trabalho do repórter: