“Só serve pra fazer sujeira e fumaça.”
Três caminhos rápidos para decidir sem perder tempo.
Para este Beta local, informe seu TMDb API Read Access Token.
Busque pelo nome da série, programa, anime, dorama ou outro título de TV.
Peneire sua busca
Escolha só o que importa. Quanto mais você peneira, mais precisa fica a mineração.
Você pode peneirar algumas opções ou minerar direto, sem preencher nada.
O gênero escolhido tem prioridade real na mineração.
Escolha somente se quiser restringir o idioma ou país da produção.
Sem limite é o padrão.
Sem seleção, pesquisamos em qualquer plataforma.
O Mine2Watch lê progresso, recência, episódios novos, minas paradas e continuações para mostrar o que merece sua atenção agora.
Este perfil muda conforme você assiste e dá feedback. Idioma original e preferência de áudio também entram como sinais.
35% filtros atuais • 25% afinidade histórica • 20% comportamento real • 10% qualidade • 10% descoberta.
Ainda em dúvida? Assista ao primeiro episódio como teste e depois me diga se deu vontade de continuar.
'; return; } if(location.origin!==NEW_ORIGIN)return; function importPayload(data){ if(!data||data.type!=='m2w-domain-storage-v42182')return false; let changed=false; try{ Object.entries(data.scopes||{}).forEach(([k,v])=>{ if(k.startsWith(SCOPE_PREFIX)&&typeof v==='string'&&v){localStorage.setItem(k,v);changed=true} }); Object.entries(data.done||{}).forEach(([k,v])=>{ if(DONE_KEYS.includes(k)&&typeof v==='string'&&v){localStorage.setItem(k,v);changed=true} }); const u=authUser(), key=userKey(u); if(key){ const scoped=localStorage.getItem(SCOPE_PREFIX+key); if(scoped){ const obj=parse(scoped,{}); PERSONAL_KEYS.forEach(k=>localStorage.removeItem(k)); Object.entries(obj||{}).forEach(([k,v])=>{if(PERSONAL_KEYS.includes(k)&&typeof v==='string')localStorage.setItem(k,v)}); localStorage.setItem(ACTIVE,key); changed=true; }else if(data.active===key && data.legacy){ PERSONAL_KEYS.forEach(k=>localStorage.removeItem(k)); Object.entries(data.legacy).forEach(([k,v])=>{if(PERSONAL_KEYS.includes(k)&&typeof v==='string')localStorage.setItem(k,v)}); localStorage.setItem(SCOPE_PREFIX+key,JSON.stringify(data.legacy)); localStorage.setItem(ACTIVE,key); changed=true; } } localStorage.setItem(MIGRATED,'1'); }catch(e){console.warn('Migração de domínio Mine2Watch',e)} return changed; } window.addEventListener('message',function(ev){ if(ev.origin!==OLD_ORIGIN)return; if(importPayload(ev.data)){ try{sessionStorage.removeItem('m2wEntryState_v42128')}catch(e){} setTimeout(()=>location.reload(),80); } }); function requestLegacyStorage(){ if(localStorage.getItem(MIGRATED)==='1')return; if(!authUser())return; const f=document.createElement('iframe'); f.src=OLD_ORIGIN+'/?m2w_migrate=1&t='+Date.now(); f.setAttribute('aria-hidden','true'); f.style.cssText='position:fixed;width:1px;height:1px;opacity:0;pointer-events:none;border:0;left:-9999px;top:-9999px'; document.body.appendChild(f); setTimeout(()=>{try{f.remove();localStorage.setItem(MIGRATED,'1')}catch(e){}},4500); } // A normal login on the official domain must never manufacture a fresh Top 5 checkpoint. // New-account onboarding is already started by the signup/verification flow itself. const resume=window.m2wResumeRealOnboardingV42150; if(typeof resume==='function'){ window.m2wResumeRealOnboardingV42150=function(user){ const key=userKey(user); let p=null;try{p=JSON.parse(localStorage.getItem('m2wRealOnboardingProgress_v1')||'null')}catch(e){} const matches=p&&String(p.email||'').trim().toLowerCase()===String(user?.email||'').trim().toLowerCase(); const emptyTop5=matches&&p?.path==='manual'&&p?.stage==='top5'&&!(p.selectedGems||[]).length&&!(p.gemDraft||[]).length&&!p.csvImported; const scope=key?parse(localStorage.getItem(SCOPE_PREFIX+key),null):null; const scopeHasData=!!(scope&&((parse(scope.m2wManagerItems,'[]')||[]).length||(parse(scope.m2wProfileTop5_v1,'[]')||[]).length)); if(emptyTop5&&!scopeHasData){ try{localStorage.removeItem('m2wRealOnboardingProgress_v1')}catch(e){} try{sessionStorage.removeItem('m2wEntryState_v42128')}catch(e){} try{if(typeof m2wMarkDoneV42150==='function')m2wMarkDoneV42150(user)}catch(e){} return false; } return resume.apply(this,arguments); }; } function boot(){ document.querySelectorAll('.versionTag,.appVersion,[data-app-version],.m2wBuildBadgeV42157').forEach(el=>el.textContent=BUILD); setTimeout(requestLegacyStorage,250); } if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',boot,{once:true}); else boot(); console.info('Mine2Watch '+BUILD+' official-domain storage migration active'); })();