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

Tem muito fake curtindo seus stories do Instagram? Não é só com você

No Twitter, várias pessoas reclamam de curtidas de fakes e marcações de pessoas desconhecidas no Instagram - Getty Images
No Twitter, várias pessoas reclamam de curtidas de fakes e marcações de pessoas desconhecidas no Instagram Imagem: Getty Images

De Tilt, em São Paulo

27/12/2022 15h14Atualizada em 19/01/2023 11h10

Quem tem conta aberta no Instagram e postou story nesses dias, deve ter reparado que começaram a aparecer curtidas de contas fakes ou marcações de perfis aleatórios com propostas do tipo "se estiver marcado, ganha".

Sobre as curtidas de contas fakes, sempre são perfis com nomes esquisitos (geralmente cheio de números) e, na maioria das vezes com fotos de mulheres seminuas e com links de procedência duvidosa.

Já nas marcações, na maioria das vezes são perfis oferecendo algum tipo de vantagem financeira - muitas vezes com ofertas de criptomoeda ou prometendo outros tipos de benefícios financeiros.

Tilt perguntou para o Instagram se há algo de errado, e a empresa disse que dedica "recursos significativos para combater perfis que promovem este tipo de comportamento" e que quando são detectadas, as contas são suspensas e removidas.

No Twitter, várias pessoas estão reclamando nas últimas semanas destes problemas no Instagram:

O que dá para fazer

Infelizmente, não existe nenhuma técnica mágica para resolver esses problemas. O Instagram recomenda que no caso das curtidas de perfis fakes, as pessoas denunciem as contas.

Como denunciar contas falsas no Instagram

  • Toque em "..." na parte superior direita do perfil;
  • Toque em Denunciar;
  • Selecione "O conteúdo é inadequado" e, depois, "Denunciar conta";
  • Selecione a opção "Está fingindo ser outra pessoa";
  • Indique se a conta falsa está fingindo ser você, um conhecido, uma empresa/organização ou uma celebridade/figura pública. No caso de perfis verificados, você pode indicar qual o perfil legítimo que a conta falsa está fingindo ser.

Como evitar marcações de pessoas desconhecidas

  • e a página do seu perfil (tocando sobre o ícone de sua foto no canto direito) e toque no menu de três listas (canto direito superior);
  • Toque em Configurações e em seguida Privacidade;
  • Em Menções, escolha "Pessoas que você segue".

Caso a situação não se resolva, o Instagram sugere outras medidas dentro de Configurações > Privacidade.

A função Limites, por exemplo, foi pensada em casos de assédio. Ao ativá-la, a rede oculta comentários de pessoas que não seguem você ou que se tornaram suas seguidoras recentemente.

Segundo o Instagram, é uma ferramenta bastante útil para contas com muitos seguidores, como de criadores de conteúdo e figuras públicas, e para quando essas pessoas enfrentam uma onda de comentários/interações indesejadas.