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

Carioca - 2023

TV's entram na briga por transmissão do Carioca em meio a racha dos clubes

Jogadores do Fluminense comemoram a conquista do título de campeão após partida com o Flamengo válida pela final do Campeonato Carioca  - ALEXANDRE BRUM/ESTADÃO CONTEÚDO
Jogadores do Fluminense comemoram a conquista do título de campeão após partida com o Flamengo válida pela final do Campeonato Carioca Imagem: ALEXANDRE BRUM/ESTADÃO CONTEÚDO

Alexandre Araújo, Leo Burlá e Luiza Sá

Do UOL, no Rio de Janeiro (RJ)

19/12/2022 04h00

Em meio às negociações para os direitos de transmissão do Campeonato Carioca, a TV Bandeirantes, o SBT e a ESPN demonstraram interesse na competição, e uma reunião ainda nesta semana pode fazer o assunto avançar. Caso o atual cenário não tenha modificações, a tendência é que Botafogo e Vasco não assinem o acordo e busquem parcerias com base na Lei do Mandante.

  • As negociações para o direito de transmissão do Estadual do Rio estão sendo levadas à frente pela Brax.
  • Esse possível acordo com as interessadas seria para exibição de partidas de Flamengo, Fluminense e os pequenos.
  • O Flamengo e os clubes de menor investimento já têm um acordo alinhado. O Fluminense quer R$ 15 milhões e avança nas conversas para fechar.

"A nossa posição é, a nível estadual e nacional, da diminuição da diferença que existe hoje. Estamos fazendo uma proposta que entendemos que o Fluminense vai estar remunerado de acordo com aquilo que o que acha justo para o tamanho da competição e apelo dos seus jogos" Mário Bittencourt, presidente tricolor

  • A ideia é que tudo seja concretizado até o fim do mês. O Carioca começa no dia 12 de janeiro.
  • Nas últimas duas temporadas, a Record transmitiu em TV aberta, enquanto os outros jogos foram exclusivos do sistema PPV, seja com canal próprio nas operadoras de TV, por streaming, ou pelos canais de clubes na internet. O modelo não atingiu as metas.
  • A Ferj rompeu com a Sportsview, agência responsável pela comercialização do campeonato em 2021 e 2022, e os novos contratos estão sendo negociados pela Brax.
  • A Lei do Mandante, sancionada no ano ado, permite o clube mandante, com uma alteração da Lei Pelé, a prerrogativa exclusiva de negociar os direitos de transmissão de seus jogos.

Botafogo e Vasco fora

As últimas semanas foram de publicação de notas com trocas de farpas entre os dois clubes, a Ferj e o Fla. A decisão de Bota e Vasco aconteceu após o "Extra" divulgar um acordo entre o Rubro-Negro e a federação para o recebimento do dobro da cota.