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

Truth Social: rede de Donald Trump estreia com problemas técnicos

Truth Social é a rede social apoiada pelo ex-presidente dos EUA Donald Trump - Chris Delmas/AFP
Truth Social é a rede social apoiada pelo ex-presidente dos EUA Donald Trump Imagem: Chris Delmas/AFP

Em San Francisco

22/02/2022 09h45

A rede social de Donald Trump, a "Truth Social", iniciou no domingo à noite seu lançamento progressivo, mas nesta segunda-feira (21) milhares de usuários estavam enfrentando problemas técnicos ou eram colocados em uma lista de espera devido ao que o aplicativo chamou de "alta demanda".

O app, que deve estar totalmente funcional até o final de março, mais de um ano após a exclusão do ex-presidente americano das grandes plataformas digitais, liderou a lista dos aplicativos mais baixados na loja online da Apple nos Estados Unidos.

No entanto, apenas algumas horas após o lançamento da Truth Social na App Store, vários usuários, incluindo jornalistas da AFP, ainda não conseguiam ar a nova rede social.

Na tela de alguns celulares apareceu a seguinte mensagem: "Devido à alta demanda, colocamos você em uma lista de espera. Nós te amamos e você não é apenas um número para nós".

Além disso, usuários que haviam solicitado o aplicativo com antecedência não conseguiram concluir sua inscrição após receber uma mensagem de erro na etapa final.

Por outro lado, personalidades próximas a Trump que tiveram o a uma versão de testes antes do lançamento estavam presentes na plataforma.

É o caso da congressista republicana Marjorie Taylor Greene, afeita às teorias da conspiração, que publicou no domingo capturas de tela de suas primeiras mensagens na Truth Social, cuja aparência lembra a do Twitter.

"Como a única congressista cuja conta pessoal no Twitter foi bloqueada, sei o que milhões de conservadores tiveram que ar vendo sua liberdade de expressão distorcida pelos gigantes da tecnologia por não repetir como papagaios a mensagem autorizada", tuitou ela de sua conta como legisladora.

"Verdade"

A Truth Social (Verdade Social, em inglês) foi apresentada por Trump como uma alternativa ao Facebook, Twitter e YouTube, dos quais ele teve seus perfis excluídos por ter incitado seus apoiadores à violência antes do ataque ao Capitólio, sede do Congresso americano, em 6 de janeiro de 2021. Na ocasião, seria certificada a vitória de seu rival democrata Joe Biden nas eleições de 2020.

"É especial para mim ver pessoas que tiveram sua voz apagada utilizarem a plataforma", disse Devin Nunes, diretor do Trump Media & Technology Group (TMTG), empresa controladora da rede social, em entrevista no domingo ao canal de televisão conservador Fox News.

"Chegou a hora da verdade", comemorou Donald Trump Junior, filho do ex-presidente, postando em sua conta no Twitter uma captura de tela de uma mensagem de seu pai na nova plataforma: "Preparem-se! Seu presidente favorito vai recebê-los em breve."

A Truth Social entrou em atividade em 21 de fevereiro, feriado nos Estados Unidos em homenagem aos presidentes do país.

Suspense

Aos 75 anos, Donald Trump deixa dúvidas sobre sua intenção de voltar a disputar a indicação republicana na corrida à Casa Branca.

O ex-presidente (2017-2021) enfrenta várias investigações por suas declarações de impostos e pela forma como teria tentado se manter no poder após sua derrota em 2020. Também sua gestão de documentos oficiais, que deveria ter sido transmitida aos arquivos nacionais, está sob escrutínio.

Antes da exclusão de sua conta no Twitter, a rede social era a favorita de Trump, que a usava diariamente para fazer anúncios presidenciais e lançar ataques contra seus inimigos políticos. Ele tinha cerca de 89 milhões de seguidores.

De acordo com diferentes declarações, o TMTG arrecadou cerca de 1,25 bilhão de dólares para atacar seus concorrentes no já saturado mercado de redes sociais populares entre os ultraconservadores, como o Gettr - lançado em julho por Jason Miller, ex-assessor de Trump -, o Parler e o Gab.

Em dezembro, o grupo anunciou uma parceria com a plataforma canadense de distribuição de vídeo Rumble, afirmando que uma versão beta havia sido lançada usando seu serviço de computação em nuvem.