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

ONU: Comentários negativos na web dominam reação a discurso de Bolsonaro

Bolsonaro durante gravação de pronunciamento à ONU - Marcos Correa/Divulgação
Bolsonaro durante gravação de pronunciamento à ONU Imagem: Marcos Correa/Divulgação

Wanderley Preite Sobrinho

Do UOL, em São Paulo

23/09/2020 12h52

O polêmico discurso de ontem do presidente Jair Bolsonaro (sem partido) na Assembleia Geral da ONU (Organizações das Nações Unidas) gerou mais comentários negativos do que positivos na internet, que se mobilizou muito menos este ano em relação ao discurso dele do ano ado.

O Sistema Analítico Bites, especializado em coletar e analisar dados da internet, avaliou os tweets publicados, hashtags positivas e negativas, buscas no Google e repercussão do discurso na mídia internacional.

Em 14 minutos de fala, o brasileiro mentiu em diversas ocasiões: sobre o valor do auxílio emergencial, afirmou que índios e caboclos são responsáveis por incêndios na Amazônia. Depois, disse que as queimadas no Pantanal se devem às altas temperaturas e culpou a Venezuela pelas manchas no litoral de 11 estados brasileiros no ano ado.

Em seu discurso de 2019, o total de comentários negativos por meio de hashtags superaram em 11,6% os positivos: foram 77 mil posts contra 68 mil. Neste ano, essa proporção saltou para 38%: foram 42 mil tweets negativos e 26 mil positivos.

A tendência também foi confirmada pela plataforma de monitoramento digital Torabit. Ela estimou em 58% o público nas redes sociais que avaliou como negativa a fala do presidente, em 20% as menções positivas e em 21% as neutras.

"Em relação às menções sobre o discurso de Bolsonaro na ONU em 2019, quando comparadas às menções deste ano, percebe-se uma queda no apoio às falas do presidente. Em 2019, 47% das menções foram positivas e 30% foram negativas", informa a pesquisa, que a pedido do UOL analisou citações no Twitter, Facebook, Instagram e YouTube.

"As menções negativas cresceram 28 pontos percentuais enquanto as positivas perderam 27 pontos percentuais", aponta o levantamento.

A repercussão do discurso de ontem também foi menor que o de 2019, quando Bolsonaro estreou naquela tribuna. Se no ano ado, a presença do presidente brasileiro na ONU rendeu 845 mil tweets no dia, ontem esse número foi de 502 mil, informa a Bites.

Google e mídia internacional

O interesse por Bolsonaro nas buscas no Google em todo o mundo, incluindo o Brasil, também foi menor este ano. O buscador tem uma escala que vai de 0 a 100 para indicar o interesse das pessoas em determinado assunto: 0 é nenhum interesse, 50 médio e 100 total interesse.

"Em 2019, o interesse por Bolsonaro estava em 26 nessa escala e caiu para 13 ontem", afirma Manoel Fernandes, diretor da Bites. "Significa que o interesse pelo presidente caiu pela metade em relação ao discurso do ano ado."

A repercussão também foi menor na mídia internacional. Entre os 300 sites de maior repercussão no mundo, o discurso do presidente apareceu em apenas três.

O texto de maior propagação contou com 1.700 interações, diz a pesquisa, que compara com um artigo sobre Bolsonaro publicado no site da New Yorker no ano ado, que alcançou 15 mil interações.

Discurso de Bolsonaro em Assembleia da ONU

Band Terra Viva