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

Orlando e Joice vão à Justiça contra 'horário eleitoral' de Bolsonaro em lives

Rayssa Motta e Breno Pires

Brasília e São Paulo

09/11/2020 14h25

Os candidatos Orlando Silva (PCdoB) e Joice Hasselmann (PSL), ambos na disputa pela Prefeitura de São Paulo, acionaram a Justiça Eleitoral para proibir o presidente Jair Bolsonaro (sem partido) de usar suas 'lives' semanais como plataforma de campanha em favor de aliados nas eleições municipais.

As ações foram ajuizadas depois que Bolsonaro pediu votos para uma série de candidatos, incluindo o adversário Celso Russomano (Republicanos), e anunciou, na última quinta-feira, 5, a instituição de um 'horário eleitoral gratuito' nas transmissões ao vivo. O vídeo rendeu mais de 600 mil visualizações nas redes. O presidente também ou a publicar 'santinhos' - imagens com foto e número da urna - dos candidatos aliados em seus perfis nas mídias sociais.

Nas ações, os candidatos sustentam que o presidente cometeu abuso de poder político ao usar a máquina pública em benefício de outras candidaturas. Isso porque o vídeo teria sido gravado na biblioteca do Palácio da Alvorada. Outro argumento usado foi o status de canal de comunicação oficial que, segundo os candidatos, as lives de Bolsonaro teriam ganhado, uma vez que o presidente costuma usar a plataforma para fazer anúncios de atos do governo.

"Tal ferramenta, a live, ganhou tamanha projeção, que o Presidente da República ou a utilizá-la para, efetivamente, fazer dela seu principal meio de comunicação com a população brasileira. Sempre acompanhado de Ministros de Estado, ou uma outra autoridade, o que imprime um tom mais oficial ao programa, a live alcança gigantesca repercussão, sendo, usualmente, fonte de notícia para jornais, rádios e redes de televisão de grande audiência no país", escreveram os advogados Fátima Cristina Pires Miranda, Wilton Luis da Silva Gomes e Cristiano Vilela de Pinho, que representam Orlando Silva e também acionaram a Procuradoria Geral da República (PGR).

Os advogados de Joice, Gustavo Bonini Guedes, Geraldo Agosti Filho, Rick Daniel Pianaro e Karenina Lopes, chamaram atenção para o 'uso do bem imóvel e da estrutura física e pessoal à disposição do chefe do Executivo federal para pedir votos em evidente desvio de finalidade'.

Além das ações de Orlando Silva e Joice Hasselmann em São Paulo, a Procuradoria Regional Eleitoral no Rio conseguiu, junto ao Ministério Público Estadual, a abertura de uma investigação para apurar se houve ilícitos na transmissão do presidente. Isso porque, além de Russomano, o prefeito carioca Marcelo Crivella (Republicanos), que concorre à reeleição no Rio de Janeiro, também recebeu apoio declarado de Bolsonaro.

A Lei das Eleições trata como conduta vedada ao agente público 'ceder ou usar, em benefício de candidato, partido político ou coligação, bens móveis ou imóveis pertencentes à istração direta ou indireta da União'. Ainda que o presidente utilize seus canais pessoais no Facebook e no YouTube nas lives, especialistas ouvidos pelo Estadão concordam que os perfis de Bolsonaro vêm sendo usados como redes de comunicação institucional.