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

Campeã paulista de basquete vende vídeos eróticos no OnlyFans

Amanda Costa, ex-jogadora de basquete do Ribeirão Preto - Reprodução
Amanda Costa, ex-jogadora de basquete do Ribeirão Preto Imagem: Reprodução

Adriano Wilkson

Do UOL, em São Paulo

22/01/2021 04h00

Depois de ar por equipes como o Microcamp e o Ribeirão Preto, a ex-jogadora de basquete Amanda Costa se encontrou em outra profissão: produtora de conteúdo erótico na plataforma OnlyFans.

Cinco anos depois de se aposentar das quadras, a ex-atleta se tornou influenciadora digital e afirma faturar até R$ 40 mil por mês com suas fotos e vídeos para maiores de 18 anos.

Além do OnlyFans, site que se popularizou no Brasil durante a pandemia, Amanda mantém um canal exclusivo e pago para seguidores no Telegram. Assim como outras modelos e atrizes, ela consegue ser remunerada diretamente pelos seguidores, minimizando assim a necessidade de intermediação de agências e produtoras.

As fotos e vídeos na internet foram uma alternativa que Amanda encontrou de se manter trabalhando após casar com um engenheiro americano, que ela acompanha em missões de trabalho pelo mundo. Sem poder ter um emprego presencial, a solução foi apostar no digital. Hoje, o casal mora nos Estados Unidos.

"Em 2000, com 16 anos, fui convidada pra jogar em Barretos e lá participei do meu primeiro concurso de beleza, na Festa do Peão. Foi quando despertou esse lado de querer fazer foto. Parei de jogar os Jogos Abertos e comecei a investir na minha carreira de internet, vender conteúdo erótico e me divulgar", conta a ex-atleta, que também já foi "Musa do Coritiba" em outro concurso de beleza.

Amanda já foi considerada uma revelação do basquete de Ribeirão Preto. Em 1997, com 13 anos, foi selecionada para jogar pelo Microcamp, que na época contava com a armadora Magic Paula no elenco. O time infantil treinava em horários diferentes do profissional, e as duas não tiveram tanto contato. Mas na equipe de Campinas, Amanda se sagrou campeã paulista de sua categoria.

A jogadora morou em várias cidades do interior paulista para jogar basquete. Em 2005, já como profissional, foi vice-campeã do Campeonato Paulista com o Ribeirão Preto, após perder a final para o Ourinhos. Em seu perfil no Instagram, a ex-jogadora também posta lances e celebrações de títulos. Em um deles, ela recebe uma bola na defesa e puxa um contra-ataque para fazer dois pontos.

Site teve crescimento no isolamento social

Criado em 2016 na Inglaterra, o OnlyFans é uma plataforma social que permite aos seguidores pagarem uma para terem o a fotos e vídeos exclusivos dos produtores de conteúdo cadastrados.

Como, diferentemente de outras redes sociais, não há censura para nudez, a plataforma ou a ser usada também por modelos, influenciadores e atores pornô para divulgar conteúdo explícito - e ser remunerado por ele.

No Brasil, a influenciadora Raíssa Costa, ex-Fazenda, se tornou um dos nomes mais populares da plataforma. No ano ado, a cantora Anitta anunciou que também criaria um perfil no site.

"Em dezembro, [o OnlyFans] tinha mais de 90 milhões de usuários e mais de 1 milhão de criadores de conteúdo, contra 120 mil em 2019", escreveu o jornal "New York Times" em uma reportagem recente.