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

"Parece que a gente não consegue avançar", diz Manuela sobre fake news

Manuela D"Ávila (PCdoB) e Guilherme Boulos (PSOL) participaram de live - Reprodução
Manuela D'Ávila (PCdoB) e Guilherme Boulos (PSOL) participaram de live Imagem: Reprodução

Hygino Vasconcellos

Colaboração para o UOL, em Porto Alegre

02/12/2020 20h08

Manuela D'Ávila (PCdoB), que concorreu à Prefeitura de Porto Alegre, reclamou das fake news na noite de hoje em live com Guilherme Boulos (PSOL), que disputou o Executivo municipal de São Paulo. Ambos foram derrotados em segundo turno e tiveram de enfrentar esse tipo de ataque.

Manuela falou sobre uma falsa pesquisa de intenção de votos em Porto Alegre, divulgada inclusive pelo site da Band.

"Aqui, com a crise, muita gente deixou de ter internet. Então sabe o que fizeram? É engraçado, mas é triste. Eles fizeram as fake news circular nos caminhões de som. Então tu não tem ideia da minha cara, quando eu própria estou andando de carro e o por um caminhão de som dizendo que, se eu for prefeita, vai ter carne de cachorro em Porto Alegre legalizada. Imagina, os caminhões de som todos dizendo isso", disse Manuela.

"E, claro, as coisas tradicionais: de derrubar as igrejas, que a gente iria transformar todos os banheiros em unissex. Parece que a gente não consegue avançar em como enfrentar o tema das fake news", complementou a política.

Boulos disse que, no caso dele, as fake news vinham no primeiro turno do "gabinete do ódio", em referência ao presidente da República Jair Bolsonaro (sem partido) e ao candidato apoiado por ele à prefeitura, Celso Russomanno (Republicanos).

"O Russomanno levou para a televisão, para as inserções dele na televisão, todo dia me chamando de invasor, chegou a dizer que eu cobrava aluguel de ocupações do centro, tanto é que eu tive no primeiro turno mais tempo de TV, de direito de resposta que eu ganhei do Russomanno, do que o meu tempo de TV, que era de 17 segundos. Muito mais, eu ganhei uns 5, 6 minutos de direito de resposta na Justiça Eleitoral pelas mentiras que ele jogou", afirmou.

"Eles inventaram que minha campanha tinha empresas fantasmas e subiram um hashtag no Twitter de laranjal do Boulos, era uma mentira deslavada. Não surtiu efeito. Eu tive o dobro de votos do Russomanno", observou Boulos.

No começo da live, Boulos manifestou o desejo de vencer as eleições e destacou a participação da juventude na corrida eleitoral. "Nós fomos para ganhar, nossas campanhas disputaram para valer o poder das nossas cidades. Ainda que não seja desta vez, que a gente não consiga ganhar esta eleição, a gente ganhou o projeto de uma geração, acho que isso vale mais que tudo", disse.

Segundo Boulos, parte desses jovens estavam divididos entre ser contra a política ou apoiar Bolsonaro. "Uma parte desses jovens que, talvez, há dois anos estavam seduzidos com a ideia da antipolítica, do Bolsonaro, do mito, fazia arminha com a mão. Eu vi esses jovens aqui em São Paulo com o olho brilhando, pensando em cidade, projeto, futuro, indo no comitê, pegando material", complementou o psolista.

"Essa geração tem isso mais presente que a nossa tinha, a ideia de que quer mudar o mundo, mas que quer ver a mudança acontecer na sua cidade. Mas eu sinto isso, na geração de 18, 19 anos de agora. Eles querem mudar hoje", destacou Manuela.

A política acrescentou que, em ambos os casos, a esquerda não estava unida no primeiro turno, o que só mudou no segundo turno.

Amanhã, Manuela será entrevistada pelo UOL, com transmissão ao vivo.