;(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 desafiar Vladimir Putin, Netflix paralisa produções originais russas

Netflix anunciou o cancelamento de quatro produções originais russas devido à guerra com a Ucrânia - Chesnot/Getty Images
Netflix anunciou o cancelamento de quatro produções originais russas devido à guerra com a Ucrânia Imagem: Chesnot/Getty Images

Colaboração para Splash, em Maceió

02/03/2022 16h50

A Netflix paralisou o desenvolvimento de quatro produções originais russas e suspendeu a compra de filmes e séries do país, como forma de somar voz às sanções impostas à Moscou desde a deflagração da guerra contra a Ucrânia na semana ada. Anteriormente, a gigante do streaming havia se recusado a cumprir uma determinação do Kremlin de exibir TVs estatais em seu catálogo.

De acordo com informações da Variety, a Netflix paralisou as produções por tempo indeterminado, inclusive a de uma série do gênero suspense, dirigida por Dasha Zhuk, que já estava com pelo menos metade dos episódios gravados.

Recentemente, a empresa norte-americana desafiou o presidente da Rússia, Vladimir Putin , e anunciou que não permitirá a transmissão de vinte canais de TV estatais russos em sua plataforma.

No ano ado, o Roskomnadzor, órgão de fiscalização e censura das comunicações na Rússia, incluiu a Netflix como um "serviço audiovisual", uma vez que a plataforma possui mais de cem mil usuários diários no país, e impôs a obrigatoriedade de que o serviço transmita vinte canais de TV estatais, entre os quais o Channel One, um dos principais veículos de mídia aliados ao Kremlin, o de entretenimento NTV e um dedicado à Igreja Ortodoxa Russa, intitulado Spas.

Rússia sofre sanções na área cultural

Além das várias sanções impostas em sua economia por vários países como resposta à invasão do território ucraniano, a Rússia também tem sido sancionada no aspecto cultural.

Ontem, a organização responsável pelo Festival de Cannes 2022 informou que as delegações oficiais russas estão banidas do evento neste ano.

Os estúdios Disney, Warner Bros. e Sony também anunciaram o cancelamento "por tempo indeterminado" de seus filmes nos cinemas russos.

A Rússia invadiu a Ucrânia na última quinta-feira (24), quando deu início aos confrontos armados, que têm avançado diariamente por várias cidades do país europeu, embora as tropas lideradas por Putin ainda estejam incapazes de se apoderar de Kiev.

Hoje, a Assembleia-Geral da ONU (Organização das Nações Unidas) aprovou uma resolução contra a Rússia, que ganhou o apoio do Brasil.