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

'Ei, Bolsonaro...': Fãs invadem ao vivo da Globo e xingam presidente no RiR

 "Ei, Bolsonaro...": Fãs invadem ao vivo da Globo e xingam presidente no RiR - Reprodução/TV Globo
'Ei, Bolsonaro...': Fãs invadem ao vivo da Globo e xingam presidente no RiR Imagem: Reprodução/TV Globo

De Splash, no Rio

02/09/2022 20h33

O público presente na primeira noite de curtição do Rock in Rio aproveitou um link ao vivo da TV Globo para mostrar o evento, no Rio de Janeiro, para protestar contra o presidente da república, Jair Bolsonaro (PL).

Inicialmente, a repórter da TV Globo apareceu no meio da multidão e tentou falar sobre os shows especiais da noite. "Tem Iron Maiden que vai tocar logo mais", disse ela.

A jornalista, no entanto, acabou sendo 'engolida' pelo público do festival pulando em sua volta e não conseguiu segurar a risada. "Essa é a empolgação de Rock in Rio. É a Globo no Rock in Rio", riu.

Os fãs do Rock in Rio, inclusive, aproveitaram o link ao vivo da emissora carioca para exibirem a letra L com as mãos, em referência ao ex-presidente Lula (PT), e xingarem o presidente Jair Bolsonaro.

Ei, Bolsonaro, vai tomar no c*
gritaram os fãs no Rock in Rio

O momento rapidamente tomou conta das redes sociais. A "ousadia" do público em xingar o Presidente da República ao vivo na TV Globo - canal que é considerado seu desafeto - levou o público ao delírio.

Rock in Rio: dia do metal abre o festival

Como e onde assistir aos shows do Rock in Rio 2022

Os fãs do festival vão poder curtir os shows de sua casa ou de onde quer que estejam através dos canais pagos Multishow e Canal Bis, gratuitamente no Globoplay (basta cadastro de conta gratuita na plataforma), além de exibição dos melhores momentos na TV Globo na programação noturna.

Tudo será transmitido já a partir de hoje, seguindo por amanhã e domingo (4), e nos shows da semana seguinte que começam na quinta-feira (8) e vão até o domingo (11).

Multishow: transmissão ao vivo do Palco Mundo e Sunset hoje a partir das 14h30 e nos outros dias do festival a partir das 15 horas.

Canal Bis: transmissão ao vivo dos palcos Favela e New Dance Order todos os dias a partir das 17 horas.

TV Globo: exibição de um compilado com os melhores momentos da programação do festival nas quinta e sextas-feiras após o "Conversa com Bial", sábados após o "Altas Horas" e domingos após o "Vai que Cola".

Globoplay: vai ter exibição simultânea do Multishow (Palco Mundo e Sunset) para não s logados no streaming, ou seja, basta ter cadastro gratuito; e também vai contar com exibição do Canal Bis para s do pacote "+Canais ao Vivo".

Veja a programação dos principais shows de hoje no Rock in Rio

Palco Mundo

  • 18h - Sepultura + Orquestra Sinfônica Brasileira
  • 20h10 - Gojira
  • 22h20 - Iron Maiden
  • 00h10 - Dream Theater

Palco Sunset

  • 15h30 - Black Pantera + Devotos
  • 16h55 - Metal Allegiance
  • 19h05 - Living Colour + Steve Vai
  • 21h15 - Bullet For My Valentine