-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathmissav.min.html
More file actions
1 lines (1 loc) · 25 KB
/
Copy pathmissav.min.html
File metadata and controls
1 lines (1 loc) · 25 KB
1
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><meta name="theme-color" content="#101419"><title>MISSAV</title><script>window.WEBHOME_PAGE_OPENED_AT=Date.now(),(window.fongmiBridge||window.fm||window.fongmi)&&document.documentElement.classList.add("fm-native")</script><style>:root{color-scheme:dark;--panel-rgb:76,88,98;--panel:rgba(var(--panel-rgb), .58);--panel-soft:rgba(var(--panel-rgb), .44);--panel-strong:rgba(var(--panel-rgb), .82);--control:rgba(34, 43, 51, .42);--control-active:rgba(48, 61, 70, .58);--text:#f4f7fb;--muted:rgba(226, 234, 242, .72);--line:rgba(255, 255, 255, .2);--line-strong:rgba(255, 255, 255, .34);--focus-line:rgba(168, 218, 255, .72);--focus-line-soft:rgba(168, 218, 255, .42);--focus-glow:rgba(96, 165, 250, .24);--danger:#f09d9d;--radius:8px;--fm-web-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body,html{margin:0;width:100%;min-height:var(--fm-web-height);background:0 0;color:var(--text);overflow-x:hidden}html:not(.fm-native),html:not(.fm-native) body{background-color:#303840;background-image:linear-gradient(45deg,rgba(255,255,255,.07) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.07) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.07) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.07) 75%);background-position:0 0,0 16px,16px -16px,-16px 0;background-size:32px 32px}body{letter-spacing:0;overscroll-behavior-x:none}body.detail-active .app{visibility:hidden;pointer-events:none}button,input{font:inherit;color:inherit}button{border:0;margin:0;padding:0;appearance:none;-webkit-appearance:none;background:0 0;cursor:pointer;text-align:inherit;touch-action:manipulation}img{display:block;max-width:100%;background:rgba(0,0,0,.12)}.app{min-height:var(--fm-web-height);padding:max(12px,env(safe-area-inset-top)) 12px calc(18px + env(safe-area-inset-bottom));background:0 0}.topbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:42px;margin-bottom:10px;padding:0}h1{margin:0;font-size:17px;line-height:1.15;font-weight:880;letter-spacing:0}.sub{margin-top:3px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.btn,.chip,.field,.icon-btn{border-radius:var(--radius);background:var(--control);border:1px solid var(--line);color:var(--text);backdrop-filter:blur(12px) saturate(1.05)}.icon-btn{width:42px;height:42px;display:grid;place-items:center;transition:background .16s ease,border-color .16s ease,transform .16s ease}.icon-btn.is-active{background:var(--control-active);border-color:var(--line-strong)}.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;font-size:14px;font-weight:760;text-decoration:none}.btn.primary{background:var(--control-active);border-color:var(--line-strong)}.search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-width:0;margin:0;position:relative;z-index:20}.search.hidden{display:none}.field{width:100%;min-width:0;min-height:42px;padding:0 12px;outline:0;font-size:14px;background:var(--control)}.search .icon-btn{width:42px;height:42px;background:var(--control-active);border-color:var(--line-strong)}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 5px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;color:var(--muted);font-size:13px;font-weight:760;white-space:nowrap}.chip.active{background:var(--control-active);border-color:var(--line-strong);color:var(--text)}.status{min-height:38px;display:none;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border-radius:var(--radius);background:var(--panel-soft);border:1px solid var(--line);color:var(--muted);font-size:13px}.status.show{display:flex}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.16);border-top-color:rgba(255,255,255,.76);animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;min-height:180px}.card{min-width:0;border-radius:var(--radius);overflow:hidden;background:var(--panel-soft);border:1px solid var(--line);color:var(--text);text-align:left}.thumb{position:relative;aspect-ratio:2/3;overflow:hidden;background:rgba(20,24,28,.5)}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.fallback{display:grid;place-items:center;padding:8px;text-align:center}.thumb.fallback span{color:rgba(255,255,255,.28);font-size:20px;font-weight:900;line-height:1.1;word-break:break-word}.badge{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);padding:3px 6px;border-radius:6px;background:rgba(0,0,0,.52);border:1px solid rgba(255,255,255,.16);font-size:11px;font-weight:820;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-body{min-height:50px;padding:7px;background:var(--panel)}.title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;font-weight:760;line-height:1.25;word-break:break-word}.meta{margin-top:4px;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{grid-column:1/-1;min-height:120px;display:grid;place-items:center;padding:18px;border-radius:var(--radius);border:1px dashed rgba(255,255,255,.22);background:var(--panel-soft);color:var(--muted);text-align:center}.more{width:100%;margin-top:12px;display:none}.more.show{display:inline-flex}.sheet{position:fixed;inset:0;z-index:40;display:none;background:0 0;padding:max(12px,env(safe-area-inset-top)) 12px calc(18px + env(safe-area-inset-bottom));overflow:auto}.sheet.active{display:block}.detail{min-height:calc(var(--fm-web-height) - 30px);display:grid;grid-template-rows:auto 1fr;gap:14px}.detail-head{display:flex;align-items:center;gap:10px}.detail-head .brand{min-height:42px}.detail-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-content:start;padding:12px;border-radius:var(--radius);background:var(--panel-soft);border:1px solid var(--line);position:relative;overflow:hidden}.detail-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 42%),linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.18));pointer-events:none}.detail-card>*{position:relative}.poster{width:112px;aspect-ratio:2/3;border-radius:var(--radius);overflow:hidden;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 34px rgba(0,0,0,.26)}.poster img{width:100%;height:100%;object-fit:cover}.detail-title{margin:0;font-size:18px;line-height:1.22;font-weight:880;word-break:break-word}.detail-summary{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.detail-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.detail-tag{min-height:26px;display:inline-flex;align-items:center;padding:0 9px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:var(--muted);font-size:11px;font-weight:720}.detail-extra{grid-column:1/-1;display:grid;gap:10px;margin-top:2px}.detail-section{padding:11px;border-radius:var(--radius);background:rgba(18,24,30,.24);border:1px solid rgba(255,255,255,.12)}.detail-section-title{margin-bottom:7px;color:var(--text);font-size:12px;font-weight:820}.detail-section-text{color:var(--muted);font-size:13px;line-height:1.6;word-break:break-word}.detail-section-text p{margin:0}.detail-section-text p+p{margin-top:7px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:12px}.actions .btn.primary{min-width:112px;background:rgba(245,249,252,.2);border-color:var(--line-strong)}.toast{position:fixed;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:80;display:none;min-height:42px;align-items:center;padding:10px 12px;border-radius:var(--radius);background:var(--panel-strong);border:1px solid var(--line);color:var(--text);font-size:13px;box-shadow:0 14px 34px rgba(0,0,0,.3)}.toast.show{display:flex}.focusable:focus,button:focus,input:focus{outline:0;border-color:var(--focus-line);box-shadow:0 0 0 1px var(--focus-line-soft),0 10px 24px rgba(0,0,0,.24),0 0 18px var(--focus-glow)}.card:focus{transform:translateY(-1px)}@media (min-width:560px){.app,.sheet{padding-left:18px;padding-right:18px}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}@media (min-width:900px){.grid{grid-template-columns:repeat(6,minmax(0,1fr))}.detail-card{grid-template-columns:170px minmax(0,1fr);gap:18px;padding:16px}.poster{width:170px}.detail-title{font-size:24px}.detail-extra{grid-column:2}}</style></head><body><main class="app" id="app"><header class="topbar"><form class="search" id="searchForm" autocomplete="off"><input class="field focusable" id="searchInput" type="search" placeholder="番号 / 演员 / 关键词" readonly="readonly"> <button class="icon-btn focusable" type="submit" aria-label="搜索" title="搜索"><svg class="icon" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></svg></button></form></header><nav class="chips" id="chips" aria-label="分类"></nav><div class="status" id="status"><span class="spinner"></span><span id="statusText">加载中</span></div><section class="grid" id="grid" aria-live="polite"></section><button class="btn more focusable" id="moreBtn" type="button">加载更多</button></main><section class="sheet" id="detailSheet" aria-hidden="true"><div class="detail"><div class="detail-head"><button class="icon-btn focusable" id="closeDetailBtn" type="button" aria-label="返回" title="返回"><svg class="icon" viewBox="0 0 24 24"><path d="m15 18-6-6 6-6"/></svg></button><div class="brand"><div><h1>详情</h1><div class="sub" id="detailSub">MISSAV</div></div></div></div><div id="detailBody"></div></div></section><div class="toast" id="toast"></div><script>!function(){"use strict";var e="https://missav.app",t=[["new","最新"],["20","国产"],["21","有码"],["22","无码"],["28","字幕"],["23","欧美"],["24","动漫"],["25","伦理"]],n="missav_webhome",r="missav_state_v2",i={cat:"new",key:"",page:1,items:[],busy:!1,hasMore:!1,detail:null,focusKey:"",scrollY:0,sdkReady:!1},a=null,o=0;function s(e){return document.getElementById(e)}function c(e){return String(null==e?"":e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function l(e){return c(e).replace(/`/g,"`")}function u(t){var n=String(t||"").trim();return n?/^\/\//.test(n)?"https:"+n:/^https?:\/\//i.test(n)?n:"/"===n.charAt(0)?e+n:e+"/"+n.replace(/^\.?\//,""):""}function d(e){return window.fm||!window.fongmiBridge?Promise.resolve(!!window.fm):a||(a=new Promise(function(t){var n=!1;function r(){n||(n=!0,window.removeEventListener("fmsdk",r),a=null,t(!!window.fm))}window.addEventListener("fmsdk",r),setTimeout(r,null==e?1800:e)}))}function f(){return window.fm?window.fm:{req:m,play:function(e){return window.open(e,"_blank","noopener,noreferrer"),Promise.resolve({})},search:function(e){return p("原生搜索:"+e),Promise.resolve({})},cache:{get:function(e){return Promise.resolve(localStorage.getItem("fm_"+e)||"")},set:function(e,t){return localStorage.setItem("fm_"+e,t),Promise.resolve({})},del:function(e){return localStorage.removeItem("fm_"+e),Promise.resolve({})}},back:function(){return history.back(),Promise.resolve({})}}}function m(e,t){return t=t||{},fetch(e,{method:t.method||"GET",headers:t.headers||{},body:t.body||void 0,credentials:"include"===t.credentials?"include":"same-origin"}).then(function(e){return e.text().then(function(t){return{ok:e.ok,status:e.status,url:e.url,headers:{},cookies:[],body:t}})}).catch(function(t){return{ok:!1,status:500,url:e,headers:{},cookies:[],body:"",error:String(t&&t.message||t)}})}function h(t){return d(1800).then(function(){return f().req(t,{headers:{Referer:e+"/",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},timeout:30,credentials:"include"})}).then(function(e){if(!e||!e.ok||!e.body)throw new Error(e&&e.error||"HTTP "+(e&&e.status||500));return String(e.body)})}function v(e,t){s("statusText").textContent=e||"",s("status").classList.toggle("show",!!e),s("status").querySelector(".spinner").style.display=t?"":"none"}function p(e){clearTimeout(o),s("toast").textContent=e,s("toast").classList.add("show"),o=setTimeout(function(){s("toast").classList.remove("show")},2400)}function y(){s("chips").innerHTML=t.map(function(e){return'<button class="chip focusable'+(e[0]!==i.cat||i.key?"":" active")+'" type="button" data-cat="'+l(e[0])+'">'+c(e[1])+"</button>"}).join("")}function g(e){e=e||{},document.title=i.key?"MISSAV - "+i.key:"MISSAV",i.items.length||i.busy?s("grid").innerHTML=i.items.map(w).join(""):s("grid").innerHTML='<div class="empty">没有找到内容</div>',s("moreBtn").classList.toggle("show",!!i.hasMore&&!i.busy),e.focus&&P()}function w(e){var t=e.pic?'<img src="'+l(e.pic)+'" alt="" loading="lazy" referrerpolicy="no-referrer" onerror="this.parentNode.classList.add(\'fallback\');this.remove();">':"",n=t?"":"<span>"+c(e.sn||e.id)+"</span>";return'<button class="card focusable" type="button" data-id="'+l(e.id)+'" data-key="vod-'+l(e.id)+'"><div class="thumb'+(t?"":" fallback")+'" style="background:'+b(e.id)+'">'+t+n+'<div class="badge">'+c(e.sn||"#"+e.id)+'</div></div><div class="card-body"><div class="title">'+c(e.title||e.sn||e.id)+'</div><div class="meta">'+c(e.remark||"MISSAV")+"</div></div></button>"}function b(e){var t=Math.abs(parseInt(e,10)||0)%360;return"linear-gradient(135deg,hsl("+t+",36%,18%),hsl("+(t+58)%360+",32%,12%))"}function S(e){return String(e||"").replace(/\s+/g," ").trim()}function k(e){var t={};return String(e||"").split(/(?:\n+|。(?=\S)|[;;](?=\S))/).map(function(e){return S(e).replace(/^简介[::]\s*/i,"")}).filter(function(e){if(!e||e.length<2)return!1;var n=e.replace(/[,。,.、\s]/g,"").toLowerCase();return!(!n||t[n])&&(t[n]=!0,!0)})}function A(t){return i.busy?Promise.resolve():(t&&(i.page=1,i.items=[],i.hasMore=!1,window.scrollTo(0,0)),i.busy=!0,v("加载中",!0),g(),h(i.key?e+"/vodsearch/"+encodeURIComponent(i.key)+"-------------/page/"+i.page+"/":"new"===i.cat?e+"/label/new/page/"+i.page+"/":e+"/vodtype/"+i.cat+"-"+i.page+"/").then(function(e){var n=function(e){var t=(new DOMParser).parseFromString(e,"text/html"),n=Array.prototype.slice.call(t.querySelectorAll('a[href*="/vodplay/"]')),r={},i=[];return n.forEach(function(e){var t=(e.getAttribute("href")||"").match(/\/vodplay\/(\d+)-/);if(t&&!r[t[1]]){r[t[1]]=!0;var n=function(e){for(var t=e,n=0;t&&n<5;n++){if(t.querySelector&&t.querySelector("img"))return t;t=t.parentElement}return e.parentElement}(e),a=n&&n.querySelector("img"),o=S(e.textContent||e.getAttribute("title")||"");!o&&a&&(o=S(a.getAttribute("alt")||a.getAttribute("title")||""));var s=a?u(a.getAttribute("data-src")||a.getAttribute("data-original")||a.getAttribute("src")||""):"",c=(o.match(/[A-Z]{2,12}-?\d{2,6}/i)||[])[0]||"#"+t[1];i.push({id:t[1],title:o||c,sn:c.toUpperCase(),pic:s,remark:""})}}),i}(e);t&&(i.items=[]);var r={};i.items.forEach(function(e){r[e.id]=!0}),n.forEach(function(e){r[e.id]||i.items.push(e)}),i.hasMore=n.length>=12,v("",!1)}).catch(function(e){v("",!1),t&&!i.items.length&&(s("grid").innerHTML='<div class="empty">加载失败:'+c(e.message||e)+"</div>"),p("加载失败:"+(e.message||e))}).then(function(){i.busy=!1,g({focus:!0}),T()}))}function L(){!i.busy&&i.hasMore&&(i.page+=1,A(!1))}function E(t,n){n=n||{};var r=i.items.find(function(e){return e.id===String(t)})||{id:String(t),title:"MISSAV",sn:"#"+t,pic:""};n.forceSheet?(i.detail={loading:!0,item:r},x(),I(n.skipHistory)):v("读取播放信息",!0),h(e+"/vodplay/"+encodeURIComponent(t)+"-1-1/").then(function(e){var t=function(e,t){var n=(new DOMParser).parseFromString(e,"text/html"),r=function(e){var t=e.indexOf("var player_aaaa");t<0&&(t=e.indexOf("player_aaaa"));if(t<0)return null;var n=e.indexOf("{",t);if(n<0)return null;for(var r=0,i=!1,a="",o=!1,s=n;s<Math.min(e.length,n+5e3);s++){var c=e.charAt(s);if(i)o?o=!1:"\\"===c?o=!0:c===a&&(i=!1);else if('"'===c||"'"===c)i=!0,a=c;else if("{"===c)r+=1;else if("}"===c&&0===(r-=1)){var l=e.slice(n,s+1);try{return JSON.parse(l)}catch(e){return null}}}return null}(e),i=r&&r.vod_data&&r.vod_data.vod_name||S((n.querySelector("h1")||{}).textContent)||t.title,a=r&&r.vod_data&&r.vod_data.vod_class||"",o=r&&r.url||"",s=t.pic||"",c=n.querySelector('meta[property="og:image"], meta[name="twitter:image"]');c&&c.getAttribute("content")&&(s=u(c.getAttribute("content")));var l=function(e,t){var n=e.querySelector(t);return S(n&&n.getAttribute("content")||"")}(n,'meta[name="description"], meta[property="og:description"]');l&&i&&(l=S(l.replace(i,"")));var d=function(e,t){var n=[];return[".module-info-item",".video-info",".detail-info",".vod-info",".text-nord4",".text-secondary"].forEach(function(r){Array.prototype.slice.call(e.querySelectorAll(r)).forEach(function(e){var r=S(e.textContent);!r||r.length<2||r===t||n.indexOf(r)<0&&n.length<6&&n.push(r)})}),n}(n,i);return{item:t,title:i,cls:a,url:o,pic:s,desc:l,info:d,raw:r}}(e,r);return i.detail=t,v("",!1),T(),!n.forceSheet&&function(e){if(!e||!e.url)return!1;var t=S(e.desc||""),n=Array.isArray(e.info)?e.info.filter(function(e){return S(e).length>0}):[],r=t.length>=24&&t!==e.title,i=n.some(function(t){return t.length>=8&&t!==e.title&&t!==e.cls});return!r&&!i}(t)?C(t):(x(),I(n.skipHistory),null)}).catch(function(e){v("",!1),i.detail={error:e.message||String(e),item:r},x(),I(n.skipHistory)})}function I(e){document.body.classList.add("detail-active"),s("detailSheet").classList.add("active"),s("detailSheet").setAttribute("aria-hidden","false"),e||"#detail"===location.hash||history.pushState({route:"detail",id:i.detail&&i.detail.item&&i.detail.item.id},"","#detail"),setTimeout(function(){q(s("closeDetailBtn"))},40)}function M(e){document.body.classList.remove("detail-active"),s("detailSheet").classList.remove("active"),s("detailSheet").setAttribute("aria-hidden","true"),i.detail=null,e||"#detail"!==location.hash||history.back(),requestAnimationFrame(P)}function x(){var e=i.detail||{},t=e.item||{};if(s("detailSub").textContent=t.sn||"MISSAV",e.loading)s("detailBody").innerHTML='<div class="empty"><span class="spinner"></span> 加载详情</div>';else if(e.error)s("detailBody").innerHTML='<div class="empty">详情加载失败:'+c(e.error)+"</div>";else{var n,r,a,o=e.title||t.title||"MISSAV",u=e.pic||t.pic||"",d=u?'<img src="'+l(u)+'" alt="" referrerpolicy="no-referrer" onerror="this.remove();">':"",f=e.url?'<button class="btn primary focusable" id="playBtn" type="button"><svg class="icon" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>播放</button>':"",m=[e.cls,t.sn].filter(function(e,t,n){return(e=S(e))&&n.indexOf(e)===t}).map(function(e){return'<span class="detail-tag">'+c(e)+"</span>"}).join(""),h=(n=e.desc,r=[o,e.cls,t.sn],a={},(r||[]).forEach(function(e){var t=S(e).replace(/[,。,.、\s]/g,"").toLowerCase();t&&(a[t]=!0)}),k(n).filter(function(e){var t=e.replace(/[,。,.、\s]/g,"").toLowerCase();if(a[t])return!1;for(var n in a)if(n&&t.indexOf(n)>=0&&t.length<=n.length+12)return!1;return!0}).join("。")),v=h?'<section class="detail-section"><div class="detail-section-title">简介</div><div class="detail-section-text">'+function(e){return k(e).map(function(e){return"。"!==(e=S(e)).charAt(e.length-1)&&/[\u4e00-\u9fa5]/.test(e)&&(e+="。"),"<p>"+c(e)+"</p>"}).join("")}(h)+"</div></section>":"",p=v?'<div class="detail-extra">'+v+"</div>":"";s("detailBody").innerHTML='<article class="detail-card"><div class="poster" style="background:'+b(t.id)+'">'+d+'</div><div class="detail-summary"><h2 class="detail-title">'+c(o)+'</h2><div class="detail-tags">'+m+'</div><div class="actions">'+f+"</div></div>"+p+"</article>"}}function C(e){if(!e.url)return p("没有播放地址"),Promise.resolve();var t=e.title||e.item&&e.item.title||"MISSAV";return p("正在进入播放"),d(1500).then(function(){return f().play(e.url,t)}).then(function(){T()}).catch(function(e){p("播放失败:"+(e.message||e))})}function T(){i.scrollY=window.scrollY||0;var e=document.activeElement;e&&e.dataset&&e.dataset.key&&(i.focusKey=e.dataset.key);var t={time:Date.now(),cat:i.cat,key:i.key,page:i.page,items:i.items,hasMore:i.hasMore,scrollY:i.scrollY,focusKey:i.focusKey};try{f().cache.set(r,JSON.stringify(t),n).catch(function(){})}catch(e){try{localStorage.setItem("fm_"+r,JSON.stringify(t))}catch(e){}}}function q(e){if(e){try{e.focus({preventScroll:!0})}catch(t){e.focus()}var t=e.getBoundingClientRect(),n=window.innerHeight-18;(t.top<12||t.bottom>n)&&e.scrollIntoView({block:"nearest",inline:"nearest"})}}function B(e){if(!e||!e.matches||!e.matches(".focusable,button,input"))return!1;if(e.disabled||"-1"===e.getAttribute("tabindex"))return!1;if(e.closest("[aria-hidden='true']"))return!1;var t=e.getBoundingClientRect();return t.width>0&&t.height>0&&"hidden"!==getComputedStyle(e).visibility}function _(){return Array.prototype.slice.call((s("detailSheet").classList.contains("active")?s("detailSheet"):document).querySelectorAll(".focusable,button,input")).filter(B)}function P(){var e,t=i.focusKey?document.querySelector('[data-key="'+(e=i.focusKey,(window.CSS&&CSS.escape?CSS.escape(e):String(e).replace(/"/g,'\\"'))+'"]')):null;t||(t=s("grid").querySelector(".card")||s("chips").querySelector(".chip.active")||s("chips").querySelector(".chip")),q(t)}function R(){s("chips").addEventListener("click",function(e){var t,n=e.target.closest("[data-cat]");n&&(t=n.dataset.cat,i.cat=t,i.key="",s("searchInput").value="",y(),history.replaceState({route:"home"},"","#home"),A(!0))}),s("grid").addEventListener("click",function(e){var t=e.target.closest("[data-id]");t&&(i.focusKey=t.dataset.key||"",T(),E(t.dataset.id))}),s("moreBtn").addEventListener("click",L),s("searchForm").addEventListener("submit",function(e){var t;e.preventDefault(),t=s("searchInput").value,(t=String(t||"").trim())&&(i.key=t,i.cat="new",y(),history.replaceState({route:"home"},"","#search="+encodeURIComponent(t)),A(!0)),s("searchInput").blur(),s("searchInput").setAttribute("readonly","readonly")}),s("searchInput").addEventListener("click",function(){s("searchInput").removeAttribute("readonly")}),s("searchInput").addEventListener("keydown",function(e){"Enter"===e.key&&s("searchForm").dispatchEvent(new Event("submit",{cancelable:!0})),("Escape"===e.key||"Backspace"===e.key&&!s("searchInput").value)&&(s("searchInput").setAttribute("readonly","readonly"),s("searchInput").blur(),P())}),s("closeDetailBtn").addEventListener("click",function(){M(!1)}),s("detailBody").addEventListener("click",function(e){e.target.closest("#playBtn")&&C(i.detail||{})}),document.addEventListener("focusin",function(e){var t=e.target;t&&t.dataset&&t.dataset.key&&(i.focusKey=t.dataset.key)}),document.addEventListener("keydown",function(e){if(!e.defaultPrevented)if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].indexOf(e.key)>=0)e.preventDefault(),function(e){var t=document.activeElement;if(B(t)){var n=_(),r=t.getBoundingClientRect(),i=r.left+r.width/2,a=r.top+r.height/2,o=null,s=1/0;n.forEach(function(n){if(n!==t){var r=n.getBoundingClientRect(),c=r.left+r.width/2,l=r.top+r.height/2,u=c-i,d=l-a;if(!("ArrowLeft"===e&&u>=-4||"ArrowRight"===e&&u<=4||"ArrowUp"===e&&d>=-4||"ArrowDown"===e&&d<=4)){var f=4*("ArrowLeft"===e||"ArrowRight"===e?Math.abs(u):Math.abs(d))+("ArrowLeft"===e||"ArrowRight"===e?Math.abs(d):Math.abs(u));f<s&&(s=f,o=n)}}}),o&&q(o)}else q(_()[0])}(e.key);else if("Enter"===e.key){var t=document.activeElement;t&&B(t)&&"INPUT"!==t.tagName?(e.preventDefault(),t.click()):t===s("searchInput")&&s("searchInput").hasAttribute("readonly")&&(e.preventDefault(),s("searchInput").removeAttribute("readonly"))}else"Escape"!==e.key&&"Backspace"!==e.key||s("detailSheet").classList.contains("active")&&(e.preventDefault(),M(!1))}),window.addEventListener("popstate",function(){"#detail"!==location.hash&&s("detailSheet").classList.contains("active")&&M(!0)}),window.addEventListener("beforeunload",T),window.addEventListener("fmresume",function(){P()}),window.addEventListener("fmsdk",function(){document.documentElement.classList.add("fm-native"),i.sdkReady=!0})}y(),R(),d(1800).then(function(e){return i.sdkReady=e,(window.fongmiBridge||window.fm||window.fongmi)&&document.documentElement.classList.add("fm-native"),d(1200).then(function(){return f().cache.get(r,n)}).catch(function(){try{return localStorage.getItem("fm_"+r)||""}catch(e){return""}}).then(function(e){var t={};try{t=JSON.parse(e||"{}")}catch(e){t={}}return!(!t||Date.now()-Number(t.time||0)>72e5)&&(i.cat=t.cat||"new",i.key=t.key||"",i.page=Number(t.page||1),i.items=Array.isArray(t.items)?t.items:[],i.hasMore=!!t.hasMore,i.scrollY=Number(t.scrollY||0),i.focusKey=t.focusKey||"",s("searchInput").value=i.key,y(),g(),setTimeout(function(){window.scrollTo(0,i.scrollY||0),P()},50),i.items.length>0)})}).then(function(e){return e&&i.items.length?null:A(!0)}).then(function(){if("#detail"===location.hash&&i.focusKey){var e=i.focusKey.replace(/^vod-/,"");e&&E(e,{skipHistory:!0})}setTimeout(P,120)}).catch(function(e){s("grid").innerHTML='<div class="empty">初始化失败:'+c(e.message||e)+"</div>"})}()</script></body></html>