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

Barbie do Bolsonaro, árabes do Instagram e mais: debate no Piauí vira meme

Colaboração para o UOL

17/08/2022 10h17Atualizada em 17/08/2022 13h54

O debate entre os candidatos ao governo do Piauí realizado pela TV Cidade Verde ontem viralizou nas redes sociais não pelas propostas debatidas, mas pelo número de memes produzidos em um só encontro. Teve candidato questionando mediador, adversária entregando a outra sobre possível compra de seguidores no Instagram e até propaganda indireta de Ford Ka.

A candidata do PCO, Lourdes Melo, foi uma das responsáveis pelo debate aparecer como um dos assuntos mais comentados do Twitter no dia. No início do terceiro bloco, ela rebateu o mediador Joelson Giordani ao ter a pergunta interrompida: "ah, você quer me calar?", disse.

"Ah, você quer proteger os candidatos?", questionou ela, na sequência. "Pelo contrário, eu quero que a senhora diga para quem vai fazer a pergunta", respondeu o apresentador.

O humorista Antonio Tabet, um dos fundadores do canal Porta dos Fundos, ironizou a candidata do PCO. "Só para deixar claro: isso não é uma esquete do Porta dos Fundos, ok?", escreveu.

Vestida com uma camisa da seleção brasileira na cor vermelha e com um símbolo do comunismo em contraponto ao da patrocinadora do material esportivo, Lourdes Melo também protagonizou outro momento que repercutiu nas redes sociais. Ela chama a candidata Gessy Lima (PSC) de "Barbie" bolsonarista.

"Você é uma candidata bolsonarista. Você é uma Barbie. Vem para cá defender os empresários, justamente a classe que tem prioridade. Você é uma candidata que realmente precisa rever essa situação".

'Seguidores árabes'

A candidata Gessy Lima também aparece em outro momento do debate destacado pelos usuários do Twitter. Ao rebater Ravenna Castro (PMN), ela diz que a adversária tem seguidores "árabes" nas redes sociais, em referência a possível compra de contas fakes para segui-la —que geralmente usam nomes estrangeiros nos usuários dos perfis.

"Ela começou a me atacar achando que eu ia revidar, citá-la, para ela ganhar seguidores. Até nisso ela é fake. Ela comprou seguidores para comprovar que ela poderia ser a candidata que mais tem seguidores nas redes sociais. em as redes sociais dela e vejam lá os árabes que seguem ela", diz Gessy Lima, que provoca risos na plateia.

Em outro trecho, Ravenna Castro aparece, com o uso de uma sonoplastia de bordões usados no Programa do Ratinho, do SBT, criticando Gessy Lima. A candidata do PMN manda um abraço para "Stefhany do Crossfox" - referência ao clipe caseiro que viralizou há anos no YouTube.

"Tenho certeza que este ano o carro dela não seria o Crossfox. Seria um Ford Ka, que é o carro mais querido do momento".

À noite, os candidatos ao governo do Piauí participaram de outro debate, desta vez promovido pela TV Meio Norte. Lourdes Melo voltou a chamar a atenção dos usuários do Twitter ao chamar o ministro Alexandre de Moraes, recém-empossado presidente do TSE (Tribunal Superior Eleitoral), de "cabeça de ovo".

"O nosso partido, o PCO, está sendo perseguido por aquele juiz da cabeça de ovo...como é o nome dele? Está perseguindo o Rui Costa Pimenta [presidente da sigla], fez um inquérito, ainda fechou todas as nossas mídias, proibindo o direito de opinar".

Moraes incluiu o PCO no inquérito das fake news. As publicações do partido feitas pelas redes sociais chamavam o ministro de "skinhead de toga", acusavam o tribunal de "fraudar as eleições" e defendiam a dissolução do STF.