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

TSE proíbe impulsionamento do 'LulaFlix', criado por campanha de Bolsonaro

"LulaFlix": Site criado por campanha de Bolsonaro - Reprodução
'LulaFlix': Site criado por campanha de Bolsonaro Imagem: Reprodução

Do UOL, em São Paulo

28/09/2022 12h02

O plenário do TSE (Tribunal Superior Eleitoral) confirmou, por unanimidade, decisão liminar que impediu o impulsionamento pago do site 'Lulaflix', criado pela campanha do presidente Jair Bolsonaro (PL) para atacar seu principal concorrente nas eleições, Luiz Inácio Lula da Silva (PT).

Os ministros seguiram decisão da relatora do caso, Maria Claudia Bucchianeri. O argumento foi de que a página era voltada à veiculação exclusivamente de publicidade negativa sobre Lula, o que é proibido pela lei eleitoral, e que o site não estava listado formalmente como uma página feita pela campanha de Bolsonaro.

Na decisão liminar, Bucchianeri já havia proibido o impulsionamento do domínio do site, e determinado que a coligação Pelo Bem do Brasil (de Bolsonaro) comunicasse à Justiça Eleitoral que a página se trata de um site de campanha.

O site foi criado em 30 de agosto e traz a mensagem "conheça a verdade sobre o presidiário". Ele ainda está no ar, apesar de a campanha de Lula ter requerido a derrubada dos conteúdos.

A coligação Brasil da Esperança afirmou que os conteúdos associados à Lula no portal são movidos "pelo estratagema de distorcer eventos ou descontextualizar informações para sustentar críticas infundadas ao candidato da Coligação representante", diz a defesa.

"Determinei que fosse informado que se trata de um site oficial de campanha, uma obrigação que não tinha sido cumprida, e, dessa forma, proibi o impulsionamento dessa página, porque, na linha da jurisprudência [do TSE], é um site que é puramente negativo a Lula. Agrego aqui também que, na providência cautelar, precisa constar que se trata de uma página oficial de campanha, para que o cidadão usuário, quando for consumir o conteúdo, saiba que é uma propaganda eleitoral com todas as clivagens ideológicas referentes [ao adversário político]", afirmou a ministra.

O UOL procurou a campanha de Jair Bolsonaro sobre o assunto e aguarda retorno.