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

ANÁLISE

Testei o porquinho sugador de clitóris que promete orgasmo em 3 minutos

Sugador de clitóris em forma de porquinho pode ser encontrado à venda por menos de R$ 100 - arquivo pessoal
Sugador de clitóris em forma de porquinho pode ser encontrado à venda por menos de R$ 100 Imagem: arquivo pessoal

Elisa Soupin

Colaboração para Universa*

27/04/2023 04h00Atualizada em 27/04/2023 14h11

Volta e meia, fico obcecada com objetos de desejo, alguma coisa que quero mais do que tudo no mundo. Houve um momento em que era o batom vermelho da Fenty, a marca da Rihanna. Em outra época, queria scrunchies de cabelo de todas as cores, ainda que só usasse as mesmas três. Até que, depois de uma transa memorável com uma ex, meu novo must-have máximo virou um porquinho sugador clitoriano.

Ele é rosa, fofinho, e minha então companheira disse que ele era conhecido pelo seu efeito "instantâneo": a promessa é que você atinja o clímax em três minutos. Sou jornalista e decidi usar minha história sobre a busca e o uso do porquinho para escrever este texto.

Comecei a procurar o preço e fiquei indignada: o modelo não saía por menos de R$ 300. Apesar do desempenho inegavelmente satisfatório, eu achei o valor alto.

Só que uma mulher determinada a gozar em três minutos vai até a China, se preciso. Acabei descobrindo em um grupo de amigas do WhatsApp que existia um sugador chinês igualzinho ao que eu queria.

"Gente, mas será que não é perigoso comprar essas coisas da China para usar na ppk?", perguntei. Quase em uníssono ouvi: "De onde você acha que vêm os produtos que são revendidos na sex shop? Não tem perigo nenhum", me garantiram compradoras mais experientes, uma delas que até já tinha revendido produtos eróticos.

Sugador porquinho

Sugador porquinho

Preço: R$ 90,55

É importante salientar que quando você compra um produto assim, sem garantias, está fazendo isso por sua conta e risco, ok? Eu resolvi arriscar.

A conta deu em torno de R$ 100, um terço do preço que havia pesquisado anteriormente. Abri a embalagem e já fiquei feliz que o vibrador vindo da China era exatamente igual ao que eu havia visto pelo triplo nas sex shops.

Fofinho e discreto, o sugador de clitóris em forma de porquinho vira decoração entre um uso e outro - Elisa Soupin - Elisa Soupin
Fofinho e discreto, o sugador de clitóris em forma de porquinho vira decoração entre um uso e outro
Imagem: Elisa Soupin

Dei para ele o nome de Rabicó

Com meu porquinho, que chegou em embalagem super discreta, era a hora de comparar o desempenho com o original da minha ex-companheira.

Esteticamente, o modelo original e o genérico são idênticos. Ambos têm:

  • dez velocidades
  • bateria de uma hora
  • podem ser usados debaixo d'água
  • material que parece um silicone cirúrgico, bem gostosinho, tem a mesma textura
  • são um pouquinho barulhentos

E vale a pena?

Na hora do vamos ver, o resultado é excelente: seja com a versão made in China ou com a comprada nas sexy shops hypadas e famosinhas a dificuldade é se segurar para não gozar rápido demais.

Sucesso total e não fez a menor diferença a procedência de cada um dos produtos. Uso todos os dias. Depois lavo e deixo o Rabicó (nome que dei para meu porquinho vibrador made in China) para enfeitar o quarto. Acho uma gracinha.

Sex toys para o seu prazer

Vibrador Pretty Love

Sugador Satisfyer Pro 2

Vibrador para casais Satisfyer Pro 4

Sugador Porquinho

Rodapé content commerce -  -

* Conteúdo publicado originalmente em 04/03/2021.