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

'Hotel Caro', nova música de Sonza, sai dois dias depois de 'Motel Barato'

Luísa Sonza anunciou participação em nova música de Baco Exu do Blues - Reprodução Instagram @luisasonza
Luísa Sonza anunciou participação em nova música de Baco Exu do Blues Imagem: Reprodução Instagram @luisasonza

Lívia Venaglia

De Splash, em São Paulo

09/06/2022 21h49

Parece uma sequência de anúncios de hospedagens, mas são na verdade os lançamentos previstos para os próximos dias na música pop brasileira. Em uma coincidência curiosa, "Hotel Caro", parceria de Baco Exu do Blues e Luísa Sonza, foi anunciada para sair no próximo domingo (12), apenas dois dias depois de "Motel Barato", parceria de Kabraw com Reddy Allor.

Splash conversou com a equipe de Kabraw, que contou que foi uma coincidência, que ninguém sabia que Sonza e Baco preparavam um lançamento com nome tão parecido para o mesmo final de semana. O que une as duas músicas é a temática: ambas conversam com o Dia dos Namorados, comemorado no domingo.

"Motel Barato" é o primeiro feat da carreira de Kabraw, uma aposta na pisadinha em parceria com a drag Reddy Allor, em alta após ser uma das vencedoras do reality "Queen Stars Brasil" — programa do streaming HBO Max que tem como apresentadora a própria Luísa Sonza, que divide o comando com Pabllo Vittar.

Kabraw e Reddy Allor - Gui Martinez/Divulgação - Gui Martinez/Divulgação
Kabraw e Reddy Allor em cena do clipe de 'Motel Barato'
Imagem: Gui Martinez/Divulgação

A coincidência, é claro, foi razão para reforçar a divulgação. Reddy Allor tem um dos comentários com mais curtidas, incluída a da própria Sonza, na publicação em que a cantora gaúcha anuncia a parceria com Exu do Blues.

A nova música de Kabraw será lançada a 0h de sexta-feira (10), com o clipe chegando ao canal do cantor as 11h. A coreografia de "Motel Barato" é assinada por Thiago Rocha, bailarino da equipe de Pabllo Vittar. Já a parceria entre Luísa Sonza e Baco Exu do Blues sai no domingo, dia 12, às 21h.