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

Cancelamentos, assédio, show explícito: MC Pipokinha acumula controvérsias

MC Pipokinha já protagonizou polêmicas com políticos e professores - Reprodução/Instagram
MC Pipokinha já protagonizou polêmicas com políticos e professores Imagem: Reprodução/Instagram

De Splash, em São Paulo

15/05/2023 19h33

MC Pipokinha, 24, teve um show cancelado no PR após um deputado estadual, Tito Barrichello (União), ameaçar prendê-la.

A casa noturna Shed Bar, em Curitiba, anunciou no domingo (14), que o show da funkeira foi cancelado em virtude dos "últimos acontecimentos e divergências".

Essa não é a primeira polêmica de Pipokinha que, em poucos meses de sucesso, já acumula controvérsias. Confira algumas delas:

Shows cancelados

Em março deste ano, pelo menos sete shows da cantora foram cancelados após debochar do salário de professores. Pipokinha fez o comentário ao aconselhar uma fã que disse ter brigado com uma professora para defendê-la.

"Coitada, deixa ela. Meu baile tá R$ 70 mil, 30 minutinhos em cima do palco eu ganho R$ 70 mil. Ela não ganha nem R$ 5 mil pra ser professora às vezes. Tem que estudar muito."

Diante da repercussão, a MC pediu desculpas: "Eu estava sofrendo muitos ataques que não chegaram à mídia e, no calor da emoção, acabei falando aquilo mesmo. Mas em nenhum momento quis ofender os professores."

Sexo oral em show

Em março, um vídeo da cantora recebendo sexo oral de uma espectadora durante uma apresentação viralizou nas redes sociais. A cena dividiu opiniões: teve quem criticou Pipokinha por "ar dos limites" com a apresentação explícita, enquanto outros defenderam que esse conteúdo é comum no tipo de apresentação que a MC costuma fazer.

Acidente no palco

Em janeiro, uma mulher desmaiou após levar um chute no rosto durante uma apresentação da MC, famosa por suas coreografias sexuais.

O dançarino Jonas Kaik disse que a fã foi socorrida imediatamente e ficou bem: "O pessoal da produção de imediato já foi e pegou ela. Ela levantou de boa, desceu, a gente deixou ela com o pessoal da casa, da emergência".

Fala sobre assédio

Após sofrer assédio sexual em um show, Pipokinha minimizou o ocorrido e disse que esse tipo de comportamento "é a coisa mais normal que existe".

"Assédio todo mundo sofre. Isso é a coisa mais normal que existe. Agora vai saber de você se defender. [...] Se você não sabe se defender, evita, não use roupa curta. Se não sabe lidar com o assédio, se você não tem boca e não tem peito para bater de frente com o cara e falar 'não é não', se vai ficar com medo quando ele mexer com você, não use roupa curta", declarou.

Clipe retirado do ar por denúncia de racismo

1 - Reprodução - Reprodução
A música Índio foi gravada por MC Pipokinha e MC Nerak.
Imagem: Reprodução

A artista teve o clipe da música "Funk Índio" retirado do ar em agosto de 2021 após denúncias de racismo contra indígenas. A letra da canção continha estereótipos como "mim quer" e "mim vai tomar". No videoclipe, pessoas brancas e negras apareciam com o rosto pintado e usando adereços como cocar, tanga e outros adereços indígenas não brasileiros.