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

No TikTok, a guerra na Ucrânia alterna entre tragédia, humor e desinformação

Reuters
Imagem: Reuters

Nova York (AFP)

14/03/2022 16h37

A guerra na Ucrânia se tornou a primeira da era TikTok, uma rede social onde o conflito é retratado tanto por meio de vídeos angustiantes de ataques de artilharia, como por dicas de como cozinhar em abrigos antibombas e desinformação sobre a invasão russa.

Desde que a Rússia invadiu a Ucrânia, milhões de pessoas sintonizaram o serviço de rede social, extremamente popular, para notícias e insights sobre o que está acontecendo no campo de batalha.

Isso não ou despercebido pelos governantes americanos, que organizaram uma videochamada para informar os "influenciadores" do TikTok sobre os detalhes da guerra, segundo publicações na rede social.

"Várias pessoas recorreram a criadores digitais para descobrir sobre a invasão da Ucrânia", dizia um tweet da Gen-Z for Change, uma organização sem fins lucrativos focada no uso das redes sociais.

"Ontem nos juntamos a @WhiteHouse e @WHNSC para um briefing sobre os objetivos estratégicos dos Estados Unidos na Ucrânia para melhor desmascarar a desinformação", acrescentou, referindo-se a uma reunião do Conselho de Segurança Nacional da Casa Branca.

Na conta de Marta Vasyuta, o que agora predomina são as imagens de soldados e os estragos da guerra. Presa em Londres, a estudante de intercâmbio ucraniana de 20 anos usa o TikTok para compartilhar suas opiniões sobre a tragédia do povo de seu país natal.

"Minha missão é divulgar informação, não deixar de falar sobre isso, porque realmente importa", disse esta estudante de economia de Lviv cujos vídeos acumulam milhões de visualizações.

Valeria Shashenok ficou na cidade de Chernigov, a nordeste de Kiev, e ou a usar o inglês para ampliar o alcance de seus posts sobre a guerra.

Em um deles, mostra como cozinhar borscht em um abrigo antibombas. Em outro, caminha pelos escombros enquanto ouve um remix de uma música da Rihanna.

A fotógrafa de 20 anos está entre os que não abriram mão do caráter lúdico dos vídeos, considerado marca registrada dessa rede social com mais de um bilhão de usuários.

"Tento manter o humor, porque é a minha natureza", disse Rimma, uma criadora do TikTok de 23 anos, que pediu que seu sobrenome não fosse revelado. "Estou vivendo esse trauma, minha vida está arruinada e não me resta nada além de ironia."

Destaca também que a linha entre o que é divertido e o que é doloroso ficou turva, dado o sofrimento e o medo que afligem tantos.

Mas o apetite pelo conteúdo do TikTok em tempos de guerra parece crescer, com os seguidores das contas de Vasyuta e Shashenok aumentando.

Atitude juvenil

Se o TikTok se caracteriza por algo, é pela espontaneidade e impudência de seus usuários, principalmente jovens.

Nos Estados Unidos, onde os membros da "Geração Z" - nascidos no final dos anos 1990 - evitam a televisão tradicional, plataformas online como o TikTok são as principais fontes de notícias.

"Espero que as crianças que assistem a essa guerra se desenrolar no TikTok se oponham à guerra (e) percebam seus horrores e perigos", disse o professor de história americano Chris Dier, que também é criador do TikTok.

"O que eu não quero é que eles dessensibilizem e normalizem a guerra".

O TikTok informou à AFP que aumentou os recursos para detectar e combater "ameaças emergentes" e "desinformação prejudicial" na plataforma.

Em 6 de março, a subsidiária da ByteDance suspendeu os s de vídeos na Rússia em reação a uma nova lei que torna crime "desacreditar" os militares russos.

O fluxo de mensagens pró-Rússia diminuiu visivelmente no TikTok, onde a conta russa mais popular é a da agência de notícias estatal RIA Novosti, conhecida por alegações falsas.