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

Mais uma dose, Teresa!

Petiscos, bate-papo e samba. A rainha das lives volta a unir as 3 paixões na nova edição do Botequim da Teresa

Ricardo Borges

Em time que está ganhando, não se mexe! É com base neste conhecido ditado, que estreia nesta sexta-feira (8), às 11 horas, no Canal UOL e no YouTube de Nossa, a nova temporada do "Botequim da Teresa", apresentado pela cantora e compositora Teresa Cristina.

A fórmula que deu certo mistura a estrela, o bom humor, a simpatia, a cultura e a desenvoltura de Teresa com deliciosos petiscos, especialmente escolhidos em renomados bares do Rio de Janeiro. Estes destaques da gastronomia carioca são preparados pela própria cantora e servidos durante o bate-papo com amigas e amigos que ela reencontra nesta temporada para momentos de canto, riso e emoção.

Enquanto está nos preparos dos quitutes, Teresa conta histórias dos locais tradicionais da boemia do Rio e dos nomes que vai receber em seu botequim virtual. Spoiler: na estreia, o cantor Criolo surpreende a apresentadora com uma música feita especialmente em sua homenagem.

Boemia, aqui me tens de regresso

"Os botequins são um tesouro que existe no Rio", diz Teresa. "A conversa no balcão tem que ser valorizada, e é esse clima que trazemos para o 'Botequim da Teresa'".

Sem os botecos, lembra Teresa, não haveria composições de Aldir Blanc, Moacyr Luz e muitas do Chico Buarque. "Basta lembrar da obra de Zé Keti, da bossa nova, os redutos onde se tocava choro. É como se fossem focos de fazedores de cultura", completa.

Para a nova temporada do programa, ela lança luz sobre oito desses locais, de clássicos e novidades do cenário carioca. O circuito vai do Maracanã, endereço do Bode Cheiroso, ao Morro do Pinto, onde o Bar do Omar serve de mirante para a Baía da Guanabara, ando pela Barra, território do Bar do Zeca.

Nossa felicidade não está longe, num palácio luxuoso. É num pé-sujo que você tem reflexões profundas importantíssimas sobre sua vida, seus relacionamentos, o futuro do país"



Reencontro de bambas

Feliz e na expectativa pelo início da reestreia do "Botequim", Teresa ressalta a energia boa e os dias alegres que resultaram nos oito episódios.

Estive com muitas amigas e amigos jogando papo fora, cara a cara, olho no olho. Faz toda diferença para o nosso coração, nossa alma e a saúde também, né?"

A cantora recebe nomes como os atores Paulo Vieira e Luís Lobianco e a cantora Simone Mazzer. A atriz Samantha Schmütz gostou tanto do "Botequim da Teresa" que, um dia depois de gravar sua participação, retornou para acompanhar o rapper Criolo, que dá um show à parte ao lado de um músico. Imperdível!

Diante de Teresa Cristina, as atrizes Zezé Motta e Juliana Alves abrem o coração. Três gerações de mulheres negras reunidas em torno da boa conversa regada a boa botecagem. E, de forma remota, Zeca Pagodinho, Martinho da Vila e Marcelo Adnet são nomes que também figuram na lista de convidados especiais.

Acho que, assim como eu, o público está ansioso por essa nova temporada. Podem esperar bom humor, receitas, música e bastante emoção".

Para maratonar

As séries de Nossa no YouTube para você aprender e mandar bem na cozinha

Mariana Pekin/UOL

Vai ter churras

Com humor e muito conhecimento da arte da grelha, Bruno Salomão comanda o programa que ensina os segredos e a ciência de uma paixão nacional: o churrasco.

Ler mais
Ricardo Borges/UOL

Botequim da Teresa

Para o "esquenta" da nova temporada, que estreia nesta sexta (8), confira os episódios anteriores com Teresa Cristina à frente do bar mais charmoso do Brasil.

Ler mais
Getty Images

Gastronobásico

O básico da culinária para cozinheiros de primeira viagem, do arroz soltinho à massa fresca. Tudo em vídeo rápidos e saborosos com o o a o das receitas.

Ler mais
Topo