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

Após ser ameaçada por MC Gui, Jojo Todynho desafia: 'Bota na roda, pô'

A Fazenda 2021: Jojo Todynho desafia MC Gui - Reprodução/Playlus
A Fazenda 2021: Jojo Todynho desafia MC Gui Imagem: Reprodução/Playlus

Colaboração para Splash, em São Paulo

15/12/2021 20h47Atualizada em 15/12/2021 21h25

Jojo Todynho, campeã da 12ª edição de "A Fazenda" (RecordTV) e MC Gui, eliminado na segunda-feira na roça especial, continuam trocando ofensas e ameaças. Enquanto o funkeiro estava confinado, a cantora trocou farpas com o pai do MC nas redes sociais e alfinetou o ex-peão. E hoje, durante a gravação do "Link Podcast", MC Gui ameaçou contar 'coisas sérias' sobre ela.

Ô Disney, você tem coisas sobre mim? Bota na roda, pô. Jojo Todynho

Através do seu perfil no Instagram, Jojo encorajou MC Gui a 'botar na roda' o que sabe sobre ela: "Se você tem coisas sobre mim para falar, bota na roda que eu estou esperando", mas alertou: "Preste bem atenção, calúnia e difamação dá um bom processo. Pra gente falar, a gente tem que provar", falou.

Guarda não, bota pra fora. Ninguém é baú, guarda não, bora pra fora. Jojo Todynho

Jojo finalizou explicando que não falou nada de mais do cantor, apenas respondeu aos ataques de Rogério, pai do MC.

Minutos depois, a funkeira apagou a sequência de vídeos.

'Se ela não fechar a boca dela, eu vou começar a falar'

Na gravação do podcast, na noite de quarta-feira, MC Gui ameaçou expor a ex-peoa, caso ela continue falando sobre ele.

"Eu não arrego, não, pode vir. [...] Ela quer palco, a Jojo, não vou ficar dando palco pra ela, não. Foi uma das pessoas que mais me desrespeitou, desrespeitou meus familiares. Eu não vou ficar mais quieto. Se ela quer treta, ela quer guerra, ela vai encontrar guerra. Eu tenho 23 anos, mas eu não sou nenhum otário. Ela tá achando que só ela tem boca, só ela pode falar? Não vou ficar mais quieto", reclamou o MC.

Eu sei de assuntos sobre ela que, se ela não fechar a boca dela, eu vou começar a falar também de coisa muito séria. Ela não gosta de falar dos outros? MC Gui

MC Gui não revelou quais são os "assuntos sérios" a qual se referiu, mas seguiu ameaçando a cantora.

"Eu sei coisas suficientes. Quero ver, ela quer ficar me afrontando, vou começar a afrontar ela também. Vamos ficar trocando farpas. Ela quer mídia? Vamos dar mídia pra ela, e ela vai me dar um pouco mídia também", disse o cantor.

O ex-peão disse ainda que conhece Jojo há anos e que, por isso, ficou desapontado com as atitudes da cantora.

'A Fazenda 13': Os peões que foram eliminados ou saíram do reality rural

A Fazenda: Quem você quer que vença? Bil, Marina, Rico ou Solange?

Enquete encerrada

Total de 50788 votos
57,06%
Antonio Chahestian/Record TV