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

Músico de Lana Del Rey se desculpa após ter xingado brasileiros: 'Injusto'

Will Whitney, músico da equipe da cantora Lana Del Rey, xingou brasileiros após ser assaltado  - Reprodução/Instagram
Will Whitney, músico da equipe da cantora Lana Del Rey, xingou brasileiros após ser assaltado Imagem: Reprodução/Instagram

Colaboração para Splash, no Rio de Janeiro

31/05/2023 21h59

Will Whitney, músico da equipe da cantora Lana Del Rey, que disse ter sido assaltado no Rio de Janeiro, se desculpou após ter xingado os brasileiros.

Músico faz um post em uma rede social para se desculpar. "Gostaria de pedir desculpas pelo meu post sobre ser assaltado no Rio. A experiência realmente me abalou e escrevi um post no auge das minhas emoções", começou ele, em uma publicação no Instagram.

Whitney ite que o assalto poderia ter acontecido em qualquer lugar. "Eu sei que poderia ter acontecido em qualquer lugar e generalizar sobre qualquer pessoa ou lugar costuma ser injusto para a maioria. Eu deveria saber melhor. Já estive no Brasil muitas vezes com vários artistas diferentes e sempre me diverti muito. As pessoas sempre foram gentis comigo."

Em seguida, ele ressalta como o show no Rio de Janeiro tem um público espetacular. "O show no Rio foi incrível e os fãs são os mais apaixonados (e barulhentos) do mundo e ninguém merece música ao vivo mais do que o Brasil."

O músico continua e diz que o Brasil era o lugar ideal para Lana começar a turnê em mais de três anos longe dos palcos. "A foto é dos ensaios da turnê que foi cancelada devido a covid em fevereiro de 2020. Serve para lembrar o quão incrível é estar de volta em turnê depois de tanto tempo longe, e o Brasil era absolutamente o lugar certo para o primeiro show da Lana em mais de 3 anos", disse.

Por fim, ele pediu desculpas mais uma vez e citou o show de São Paulo. "Minhas sinceras desculpas a qualquer que tenha se sentido ofendido e no aguardo de mais um grande show em São Paulo", escreveu.

Lana Del Rey se apresenta no próximo sábado (3), no Vale do Anhangabaú, no centro de São Paulo, no festival MITA.

O que aconteceu?

Whitney relatou que foi vítima de um assalto em sua agem pelo Rio de Janeiro. De acordo com ele, seu celular foi levado. O desabafo, com ataques ao país, foi feito em sua rede social.

Em um post, o músico direcionou uma série de xingamentos aos brasileiros após o episódio. "Acabei de ter o meu iPhone roubado na minha mão por um pedaço de merd* numa moto. Foda-s* este país inteiro. Eles não merecem música ao vivo. Mal posso esperar para ir para casa."

Ele ainda usou as hashtags "Foda-se Brasil", "lixo humano" e "buraco de merda" na postagem.