// ==UserScript== // @name 全网影视收藏助手 // @namespace FBin001-JVideoCollector // @version 2.0.0 // @description 跨站点影视追剧收藏工具:追剧片单、想看/已看标记,自动记录观看集数与播放进度,海报墙浏览,豆瓣评分,全网搜索与跨站直达,站点换域名也能照常跳转。支持低端影视(低调影视/ddrk)、厂长资源(czzy)、嘀嗒影视、韩剧TV(hanjuc)、LIBVIO、毒舌电影、注视影视、片库、开心影院、追影、太乙电影、极速追剧、懂片帝、韩剧网等站点 video watchlist drama tracker // @author FBin001 // @match *://*/* // @match *://*.didahd.xyz/* // @match *://*.4kcz.com/* // @match *://*.czzy.top/* // @match *://*.cz4k.com/* // @match *://*.hanjuc.com/* // @match *://*.hantv.net/* // @match *://*.hantvz.com/* // @match *://*.ddys.app/* // @match *://*.ddys.ai/* // @match *://*.libvio.host/* // @match *://*.libvio.mov/* // @match *://*.libvios.com/* // @match *://*.libhd.com/* // @match *://*.libviobd.com/* // @match *://*.libvio.in/* // @match *://*.libvio.io/* // @match *://*.duse2.com/* // @match *://*.duse3.com/* // @match *://*.duse4.com/* // @match *://*.dushe3.app/* // @match *://*.dushe05.com/* // @match *://*.dushe06.com/* // @match *://*.gaze.red/* // @match *://*.gazes.store/* // @match *://*.gazes.top/* // @match *://*.gaze.show/* // @match *://*.gazes.host/* // @include /^https?:\/\/([^/]*\.)?didahd\./ // @include /^https?:\/\/([^/]*\.)?(4kcz|czzy|cz4k)\./ // @include /^https?:\/\/([^/]*\.)?(hantv[a-z]?|hanju[a-z])\./ // @include /^https?:\/\/([^/]*\.)?ddys\./ // @include /^https?:\/\/([^/]*\.)?(libvio|libvios|libviobd|libhd)\./ // @include /^https?:\/\/([^/]*\.)?dush?e\d+\./ // @include /^https?:\/\/([^/]*\.)?gazes?\d*\./ // @connect www.didahd.xyz // @connect www.4kcz.com // @connect czzy.top // @connect www.cz4k.com // @connect hanjuc.com // @connect hantv.net // @connect www.hantv.net // @connect hantvz.com // @connect www.hantvz.com // @connect ddys.app // @connect ddys.ai // @connect libvio.host // @connect www.libvio.mov // @connect www.libvios.com // @connect www.libhd.com // @connect libviobd.com // @connect www.libvio.in // @connect www.libvio.io // @connect www.duse2.com // @connect www.duse3.com // @connect www.duse4.com // @connect www.dushe3.app // @connect www.dushe05.com // @connect www.dushe06.com // @connect gaze.red // @connect gazes.store // @connect gazes.top // @connect gaze.show // @connect gazes.host // @connect 4k01.pianku.online // @connect 4k.pianku.online // @connect 4k02.pianku.online // @connect 4k03.pianku.online // @connect gitee.com // @connect raw.giteeusercontent.com // @connect api.douban.com // @connect movie.douban.com // @connect frodo.douban.com // @license MIT // @grant GM_setValue // @grant GM_getValue // @grant GM_addValueChangeListener // @grant GM_registerMenuCommand // @grant GM_xmlhttpRequest // @run-at document-start // ==/UserScript== (()=>{var ef=Object.defineProperty; var o=(t,e)=>ef(t,"name",{value:e,configurable:true}); function or(t,e){return t.replace(/\{\{(\w+)\}\}/g,(n,r)=>e[r]??"")} o(or,"interpolate"); var nf={"&":"&","<":"<",">":">",'"':""","'":"'"}; function ut(t){if(t===void 0||t===null)return"";return String(t).replace(/[&<>"']/g,e=>nf[e])} o(ut,"escapeHtml"); function yn(t){const e=String(t||"").trim();return/^(https?:\/\/|data:image\/|blob:)/i.test(e)?e:""} o(yn,"safeUrl"); function Xe(t){const e=typeof t==="string"?t:t?JSON.stringify(t)||"":"";try{return new TextEncoder().encode(e).length}catch(n){return e.length}} o(Xe,"utf8Bytes"); function Ut(t){const e=Number(t)||0;if(e>=1024*1024)return(e/1024/1024).toFixed(2)+"MB";return(e/1024).toFixed(1)+"KB"} o(Ut,"formatBytes"); function mc(t){if(!t)return"";const e=new Date(t);const n=o(r=>String(r).padStart(2,"0"),"pad");return`${n(e.getMonth()+1)}-${n(e.getDate())} ${n(e.getHours())}:${n(e.getMinutes())}`} o(mc,"formatDateShort"); function hc(t){if(!t)return"";const e=new Date(t);const n=o(r=>String(r).padStart(2,"0"),"pad");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${n(e.getHours())}:${n(e.getMinutes())}:${n(e.getSeconds())}`} o(hc,"formatDateFull"); function Se(t){if(!t||t<=0)return"";const e=Math.floor(t);const n=o(r=>String(r).padStart(2,"0"),"pad");return`${n(Math.floor(e/3600))}:${n(Math.floor(e%3600/60))}:${n(e%60)}`} o(Se,"formatDuration"); function Je(t){return(t||"").replace(/\s*[((][^))]*[))]\s*/g,"").trim()} o(Je,"stripParens"); function ir(t){if(t===null||t===void 0)return"";return typeof t==="string"?t:String(t)} o(ir,"asText"); var vc={\u96F6:0,\u4E00:1,\u4E8C:2,\u4E24:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9}; function rf(t){let e=0,n=0,r=false;for(const i of String(t)){if(i in vc){n=vc[i];r=true}else if(i==="\u5341"){e+=(n||1)*10;n=0;r=true}else if(i==="\u767E"){e+=(n||1)*100;n=0;r=true}else return NaN}return r?e+n:NaN} o(rf,"cnToNumber"); function wo(t){const e=String(t==null?"":t);if(/^[0-9]+$/.test(e))return Number(e);return rf(e)} o(wo,"epNumber"); var rr="0-9\u96F6\u4E00\u4E8C\u4E24\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\u767E"; function Ze(t){const e=ir(t).trim().match(new RegExp(`^\u7B2C?\\s*([${rr}]+)\\s*\u96C6?$`));if(!e)return"";const n=wo(e[1]);return n>0?`\u7B2C${n}\u96C6`:""} o(Ze,"numberToEpisode"); function To(t){const e=ir(t).trim();return Ze(e)||e} o(To,"episodeLabel"); function xn(t){const e=ir(t).trim();return new RegExp(`^\u7B2C\\s*[${rr}]+\\s*\u96C6$`).test(e)||/^S\d+E\d+$/i.test(e)||/^S\d+\s*第\s*\d+\s*集$/i.test(e)} o(xn,"isEpisodeLabel"); function jt(t){const e=ir(t).trim();const n=o(f=>String(f).padStart(2,"0"),"pad");const r=e.match(/^S(\d{1,2})\s*第\s*(\d{1,3})\s*集$/i)||e.match(/^S(\d{1,2})E(\d{1,3})$/i);if(r)return`S${n(r[1])}E${n(r[2])}`;const i=e.match(/^S(\d{1,2})$/i);if(i)return`S${n(i[1])}`;const c=e.match(new RegExp(`^\u7B2C?\\s*([${rr}]+)\\s*\u96C6?$`));if(c){const f=wo(c[1]);return f>0?`E${n(f)}`:e}const a=e.match(new RegExp(`\u7B2C\\s*([${rr}]+)\\s*\u96C6\\s*$`));if(!a)return e;const s=wo(a[1]);if(!(s>0))return e;const l=So(Y(e));if(l)return`S${n(l)}E${n(s)}`;const p=e.slice(0,a.index).trim();return p?`${p} E${n(s)}`:`E${n(s)}`} o(jt,"formatEpisodeShort"); function gc(t){const e=(t||"").match(/background-image:\s*url\(["']?([^"')]+)["']?\)/i);return e?e[1]:""} o(gc,"parseBgImage"); function yt(t){if(!t)return true;if(/load\.gif|loading\.gif|placeholder|^data:image|\.svg$/i.test(t))return true;if(/favicon|(?:^|[/_.-])(?:site[-_]?)?(?:logo|ico|icon|default|blank|loading|placeholder|spacer|avatar|no-?(?:img|pic|poster|cover|image))\d*[.\-_/]/i.test(t))return true;if(/(?:^|[/_.-])(?:banner|ads?|adv)\//i.test(t))return true;return false} o(yt,"isPlaceholderImage"); var Pt={OK:"ok",MISSING:"missing",BROKEN:"broken",ABANDONED:"abandoned"}; var cr={PAGE:"page"}; function of(t){const e=t&&t.coverState;return e===Pt.BROKEN||e===Pt.MISSING||e===Pt.ABANDONED} o(of,"isCoverUnusable"); function wn(t){return!!(t&&t.cover&&!yt(t.cover)&&!of(t))} o(wn,"isCoverUsable"); var cf=/更新至|更新到|全集|完结|在线观看|在线播放|免费观看|抢先版|正版资源|未删减|高清片|中字/g; var af=/(4k|8k|1080p?|2160p?|720p?|hdr10?|hdr|dv|杜比视界|杜比全景声|atmos|remux|blu-?ray|bdrip|web-?dl|webrip|hdts|hdtv|hdrip|x26[45]|h\.?26[45])/gi; var sf=/[\u4e00-\u9fff0-9][::||]+/; var lf=/[\u4e00-\u9fff][\s\-()()【】\[\]]+/; var uf=2; var df=/[!?!?]+\s*[0-9]{1,2}$/; function ff(t){return t.replace(df,"").trim()} o(ff,"stripSequelSuffix"); function pf(t){const e=sf.exec(t);const n=lf.exec(t);let r=null;if(e&&n)r=e.index<=n.index?e:n;else r=e||n;if(!r)return t;const i=t.slice(0,r.index+1).trim();return i.length>=uf?i:t} o(pf,"headOfName"); function ar(t){const e=String(t||"").replace(/\s+/g," ").trim();if(!e)return[];const n=ff(pf(e));return[e,n,n.replace(cf," ").replace(af," ")].map(r=>r.replace(/\s+/g," ").trim()).filter((r,i,c)=>r.length>=2&&c.indexOf(r)===i)} o(ar,"searchVariants"); var vf={"\u2160":"1","\u2161":"2","\u2162":"3","\u2163":"4","\u2164":"5","\u2165":"6","\u2166":"7","\u2167":"8","\u2168":"9","\u2169":"10","\u216A":"11","\u216B":"12","\u2170":"1","\u2171":"2","\u2172":"3","\u2173":"4","\u2174":"5","\u2175":"6","\u2176":"7","\u2177":"8","\u2178":"9","\u2179":"10","\u217A":"11","\u217B":"12"}; var bn={"\u3007":0,"\u4E00":1,"\u4E8C":2,"\u4E09":3,"\u56DB":4,"\u4E94":5,"\u516D":6,"\u4E03":7,"\u516B":8,"\u4E5D":9}; function mf(t){if(t==="\u5341")return 10;const e=/^([一二三四五六七八九])?十([一二三四五六七八九])?$/.exec(t);if(e)return(e[1]?bn[e[1]]:1)*10+(e[2]?bn[e[2]]:0);if(/^[〇一二三四五六七八九]+$/.test(t)){return Number(Array.from(t).map(n=>bn[n]).join(""))}return bn[t]!=null?bn[t]:null} o(mf,"cnNumToInt"); var hf=/[\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e\u2018\u2019\u201c\u201d\u2020-\u2027\u3000-\u3006\u3008-\u303f\uffe5]/g; function Y(t){if(!t)return"";let e=String(t);e=e.replace(/[!-~]/g,n=>String.fromCharCode(n.charCodeAt(0)-65248));e=e.replace(/[Ⅰ-Ⅻⅰ-ⅻ]/g,n=>vf[n]||n);e=e.replace(/第([〇一二三四五六七八九十]+)(季|集)/g,(n,r,i)=>{const c=mf(r);return c?"\u7B2C"+c+i:n});e=e.replace(hf,"").toLowerCase();e=e.replace(/([\u4e00-\u9fff])0*(\d{1,2})$/,(n,r,i)=>r+"s"+Number(i));e=e.replace(/第0*(\d{1,2})季/g,(n,r)=>"s"+Number(r));e=e.replace(/season0*(\d{1,2})/g,(n,r)=>"s"+Number(r));e=e.replace(/(^|[^a-z])s0*(\d{1,2})(?![a-z0-9])/g,(n,r,i)=>r+"s"+Number(i));return e} o(Y,"normalizeName"); function So(t){const e=t.match(/(^|[^a-z])s(\d{1,2})(?![a-z0-9])/);return e?Number(e[2]):null} o(So,"seasonOf"); var gf=6; function Eo(t){return t.replace(/(^|[^a-z])s\d{1,2}(?![a-z0-9])/g,"$1")} o(Eo,"stripSeason"); var bf=["\u7279\u522B\u7BC7","\u7279\u522B\u7248","\u7279\u522B\u5B63","\u756A\u5916\u7BC7","\u756A\u5916","\u5916\u4F20","\u524D\u4F20","\u540E\u4F20","\u5267\u573A\u7248","\u7535\u5F71\u7248","\u771F\u4EBA\u7248","\u91CD\u5236\u7248","ova","oad","sp"]; function _o(t){for(const e of bf){if(t.length>e.length&&t.endsWith(e)){return{base:t.slice(0,t.length-e.length),tag:e}}}return{base:t,tag:""}} o(_o,"splitSuffix"); function Be(t,e){return ko(Y(t),Y(e))} o(Be,"isSameName"); function ko(t,e){if(!t||!e)return false;if(t===e)return true;const n=_o(t);const r=_o(e);if(n.tag!==r.tag)return false;const i=n.base;const c=r.base;if(i===c)return true;const a=So(i);const s=So(c);const l=a===null&&s===1||a===1&&s===null;if(a!==s&&!l)return false;if(Eo(i)===Eo(c))return true;const p=i.length<=c.length?i:c;const f=p===i?c:i;return p.length>=gf&&f.startsWith(p)} o(ko,"sameNormalizedName"); function Ao(){const t=new Map;function e(c){const a=c||"";let s=t.get(a);if(s)return s;const l=Y(a);s={norm:l,stripped:l?Eo(_o(l).base):""};t.set(a,s);return s}o(e,"compile");function n(c,a){if(!c.norm||!a.norm)return false;if(c.norm===a.norm)return true;const s=c.stripped.length<=a.stripped.length?c.stripped:a.stripped;const l=s===c.stripped?a.stripped:c.stripped;return l.startsWith(s)}o(n,"mayMatch");function r(c,a){const s=e(a);if(!s.norm)return-1;for(let l=0;l{};if(Ee.some(r=>r.node===t))return()=>{};Ee.push({node:t,parent:e});if(!Lo){Lo=new MutationObserver(()=>{if(Ee.some(r=>!r.node.isConnected))yf()});Lo.observe(document.body,{childList:true})}const n=Ee[Ee.length-1];return()=>{const r=Ee.indexOf(n);if(r>=0)Ee.splice(r,1)}} o(_e,"keepMounted"); function yf(){Ee.forEach(({node:t,parent:e})=>{if(t.isConnected)return;const n=e&&e.isConnected?e:document.body;if(n&&n.isConnected)n.appendChild(t)})} o(yf,"remountAll"); function X(t){if(!t||!t.getAttribute)return"";const e=[t.getAttribute("data-original"),t.getAttribute("data-src"),t.getAttribute("data-lazy-src")];if(t.tagName==="IMG")e.push(t.getAttribute("src"),t.src);return e.find(n=>!yt(n))||""} o(X,"pickImageSrc"); var yc=".vc-preview-img"; var bc="vc-preview-enter"; var Sn=0; function xf(t){let e=document.querySelector(".vc-image-preview");if(!e){e=document.createElement("div");e.className="vc-image-preview";e.addEventListener("click",Co);document.body.appendChild(e)}if(t||!e.querySelector(yc)){e.replaceChildren();[0,1].forEach(()=>{const n=document.createElement("img");n.className="vc-preview-img";n.alt="\u5C01\u9762\u9884\u89C8";e.appendChild(n)})}return e} o(xf,"ensurePreviewEl"); function xc(t){return Array.from(t.querySelectorAll(yc))} o(xc,"previewLayers"); function Co(){const t=document.querySelector(".vc-image-preview");if(t)t.classList.remove("vc-show");Sn++} o(Co,"closeImagePreview"); function Mo(t){const e=xf(true);Sn++;if(t){const n=xc(e);if(n[0]){n[0].classList.add("vc-active");n[0].src=t}}void e.offsetWidth;e.classList.add("vc-show")} o(Mo,"openImagePreview"); function Io(t){const e=document.querySelector(".vc-image-preview");if(!t||!e||!e.classList.contains("vc-show"))return;const n=xc(e);const r=n.find(l=>l.classList.contains("vc-active"))||n[0];const i=n.find(l=>l!==r);if(!r||!i||r.getAttribute("src")===t)return;const c=++Sn;const a=o(()=>{if(c!==Sn)return;if(!e.classList.contains("vc-show"))return;i.classList.add(bc);i.addEventListener("animationend",()=>i.classList.remove(bc),{once:true});i.classList.add("vc-active");r.classList.remove("vc-active")},"swap");const s=new Image;s.onload=()=>{i.src=t;const l=typeof i.decode==="function"?i.decode().catch(()=>{}):Promise.resolve();l.then(()=>{if(c!==Sn)return;requestAnimationFrame(()=>requestAnimationFrame(a))})};s.src=t} o(Io,"updateImagePreview"); var wf=/^(?:豆瓣\s*[::]?\s*)?(\d+(?:\.\d+)?)\s*分?$/; var Sf=/^豆瓣\s*[::]?\s*(\d+(?:\.\d+)?)\s*分?$/; function wc(t){if(!t)return"";const e=Number(t[1]);if(!(e>0&&e<=10))return"";return String(e)} o(wc,"scoreOf"); function lr(t){return wc(wf.exec(String(t||"").trim()))} o(lr,"parseDoubanScore"); function Po(t){return wc(Sf.exec(String(t||"").trim()))} o(Po,"parseDoubanLabeledScore"); function Oo(t){const e=/movie\.douban\.com\/subject\/(\d+)/.exec(String(t||""));return e?e[1]:""} o(Oo,"doubanSubjectId"); function Ro(t){const e=Oo(t);return e?"https://movie.douban.com/subject/"+e+"/":""} o(Ro,"doubanSubjectUrl"); function Ef(t){const e=t&&t.querySelector?t.querySelector('a[href*="movie.douban.com/subject/"]'):null;if(!e)return null;const n=Ro(e.getAttribute("href"));if(!n)return null;return{score:lr(e.textContent),url:n}} o(Ef,"findDoubanLink"); function _f(t){if(!t||!t.querySelectorAll)return null;const e=t.querySelectorAll("span, div, a, em, p, h1, h2, h3, h4, h5");for(const n of e){if(n.children.length)continue;const r=Po(n.textContent);if(r)return{score:r}}return null} o(_f,"findByDoubanText"); function Vt(t,e,n){if(!t)return null;let r=t;if(t===document){if(!n)return null;r=document.querySelector(n);if(!r)return null}const i=Ef(r);if(i&&i.score)return i;if(Array.isArray(e)){for(const a of e){const s=r.querySelector(a);const l=lr(s&&s.textContent);if(l)return{score:l,url:i?i.url:""}}}const c=_f(r);if(c)return{score:c.score,url:i?i.url:""};return null} o(Vt,"readDoubanRating"); var kf=60; var sr=2; function Qe(t,e,n){const r=e.getBoundingClientRect();const i=t.getBoundingClientRect();let c=0;t.querySelectorAll(n).forEach(a=>{const s=a.getBoundingClientRect();if(!s.width||!s.height)return;if(s.bottom-i.top>kf)return;const l=s.leftr.left-sr&&s.topr.top-sr;if(l)c=Math.max(c,s.bottom)});return c?Math.round(c-i.top):0} o(Qe,"overlappingTagBottom"); function Sc(t){if(!t)return false;const e=o(()=>{const n=document.createElement("textarea");n.value=t;n.style.position="fixed";n.style.opacity="0";document.body.appendChild(n);n.select();let r=false;try{r=document.execCommand("copy")}catch(i){r=false}document.body.removeChild(n);return r},"fallback");if(navigator.clipboard&&window.isSecureContext){navigator.clipboard.writeText(t).catch(()=>e());return true}return e()} o(Sc,"copyText"); var Ec={id:"dida",name:"\u5600\u55D2\u5F71\u89C6",domains:["www.didahd.xyz"],matches:["*://*.didahd.xyz/*"],include:["/^https?:\\/\\/([^/]*\\.)?didahd\\./"],searchPath:o(t=>"/search/-------------.html?wd="+encodeURIComponent(t),"searchPath"),pageType(){const t=location.pathname;if(t.startsWith("/detail/"))return"detail";if(t.startsWith("/play/"))return"play";if(t.startsWith("/search/"))return"search";if(document.querySelector(".myui-vodlist"))return"list";return"other"},listCardSelector:".myui-vodlist__box, #searchList li",getListCards(){const t=[];const e=new Set;document.querySelectorAll(".myui-vodlist__box").forEach(n=>{if(e.has(n))return;const r=n.querySelector("a.myui-vodlist__thumb");if(!r)return;const i=(r.getAttribute("title")||"").trim();const c=X(r)||X(r.querySelector("img"));if(i){e.add(n);t.push({element:n,name:i,cover:c,path:r.pathname})}});document.querySelectorAll("#searchList li").forEach(n=>{if(e.has(n))return;const r=n.querySelector("a.myui-vodlist__thumb");if(!r)return;const i=n.querySelector("a.searchkey");const c=((i==null?void 0:i.textContent)||r.getAttribute("title")||"").trim();const a=X(r)||X(r.querySelector("img"));if(c){e.add(n);t.push({element:n,name:c,cover:a,path:r.pathname})}});return t},getDetailInfo(){const t=document.querySelector(".myui-content__thumb img");const e=document.querySelector(".myui-content__detail .title");const n=document.querySelector(".myui-content__thumb a");const r=((e==null?void 0:e.textContent)||"").trim();if(!r)return null;const i=X(t);const c=(n==null?void 0:n.getAttribute("href"))||location.pathname;return{name:r,cover:i,path:c}},getSiteRating(t){if(!t||t===document){return Vt(document,["#rating .branch",".branch"],".myui-content__detail, #desc")}return Vt(t,[".pic-tag-right",".pic-tag"])},getPlayInfo(){const t=document.querySelector("#player-sidebar .myui-panel__head h3.title");let e="";if(t){const n=t.cloneNode(true);n.querySelectorAll("small").forEach(r=>r.remove());e=n.textContent.trim()}if(!e)return null;return{name:e,path:location.pathname}}}; var _c={id:"czzy",name:"\u5382\u957F\u8D44\u6E90",domains:["www.4kcz.com","czzy.top","www.cz4k.com"],matches:["*://*.4kcz.com/*","*://*.czzy.top/*","*://*.cz4k.com/*"],include:["/^https?:\\/\\/([^/]*\\.)?(4kcz|czzy|cz4k)\\./"],searchPath:o(t=>"/#vc-search="+encodeURIComponent(t),"searchPath"),onPageReady(){const t=location.hash.match(/vc-search=([^&]+)/);if(!t)return;const e=decodeURIComponent(t[1]);let n=0;const r=o(()=>{if(n++>10)return;const i=document.querySelector("#sosuobox form, form.w-search-form");const c=i==null?void 0:i.querySelector("input[name]");const a=i==null?void 0:i.getAttribute("action");if(i&&c&&a){const s=new URL(a,location.href);s.searchParams.set(c.getAttribute("name"),e);location.href=s.href;return}setTimeout(r,300)},"trySearch");r()},pageType(){const t=location.pathname;if(t.startsWith("/movie/"))return"detail";if(t.startsWith("/v_play/"))return"play";if(/^\/(boss1O1|nimasile)\b/.test(t))return"search";if(document.querySelector(".bt_img, .bt_image"))return"list";return"other"},listCardSelector:".bt_img li, .bt_image li",statusOffset(t,e){const n=Qe(t,e,".furk, .jidi");return n?{top:n+6,left:8}:null},getSiteRating(t){if(!t||t===document){return Vt(document,[".dbpingfen"],".mi_ne_kd.dypre")}return Vt(t,[".rating"])},getListCards(){const t=[];const e=new Set;document.querySelectorAll(".bt_img li, .bt_image li").forEach(n=>{if(e.has(n))return;const r=n.querySelector("a");const i=n.querySelector("img");const c=n.querySelector(".dytit");if(!r)return;const a=((c==null?void 0:c.textContent)||(i==null?void 0:i.alt)||"").trim();const s=X(i);if(a){e.add(n);t.push({element:n,name:a,cover:s,path:r.pathname})}});return t},getDetailInfo(){const t=document.querySelector(".dyimg img");const e=document.querySelector(".dytext h1");const n=document.querySelector(".paly_list_btn a");const r=((e==null?void 0:e.textContent)||"").trim();if(!r)return null;const i=X(t);const c=(n==null?void 0:n.getAttribute("href"))||location.pathname;return{name:r,cover:i,path:c}},getPlayInfo(){const t=document.querySelector(".ptit a");if(!t)return null;const e=(t.textContent||"").trim();if(!e)return null;return{name:e,path:t.pathname}}}; var Do=".myui-vodbox-content"; var kc={id:"hantv",name:"\u97E9\u5267tv",domains:["hanjuc.com","hantv.net","www.hantv.net","hantvz.com","www.hantvz.com"],matches:["*://*.hanjuc.com/*","*://*.hantv.net/*","*://*.hantvz.com/*"],include:["/^https?:\\/\\/([^/]*\\.)?(hantv[a-z]?|hanju[a-z])\\./"],searchPath:o(t=>"/vodsearch.html?wd="+encodeURIComponent(t),"searchPath"),pageType(){const t=location.pathname;if(t.startsWith("/nf-detail/"))return"detail";if(t.startsWith("/nf-play/"))return"play";if(t.startsWith("/vodsearch"))return"search";if(document.querySelector(Do))return"list";return"other"},listCardSelector:Do,getListCards(){const t=[];document.querySelectorAll(Do).forEach(e=>{var i;const n=e.querySelector('a[href*="/nf-detail/"]');if(!n)return;const r=(((i=n.querySelector(".card-info .title"))==null?void 0:i.textContent)||"").trim();if(!r)return;t.push({element:e.querySelector(".content-card")||n,name:r,cover:X(n.querySelector(".myui-vodlist__thumb img")),path:n.pathname})});return t},statusOffset(t,e){const n=Qe(t,e,".tag-box");return n?{top:n+6,left:8}:null},getDetailInfo(){var n;const t=document.querySelector(".vod-detail-box");if(!t)return null;const e=(((n=t.querySelector(".title-box h1.title"))==null?void 0:n.textContent)||"").trim();if(!e)return null;return{name:e,cover:X(t.querySelector(".img-box img")),path:location.pathname}},getPlayInfo(){var r;const t=document.querySelector("h1.title_name");const e=t==null?void 0:t.closest('a[href*="/nf-detail/"]');const n=((t==null?void 0:t.textContent)||"").trim()||(((r=document.querySelector(".player-head .video_title"))==null?void 0:r.textContent)||"").trim();if(!n)return null;return{name:n,path:e?e.pathname:Tf()}}}; function Tf(){var e;const t=(e=location.pathname.match(/^\/nf-play\/(\d+)/))==null?void 0:e[1];return t?`/nf-detail/${t}.html`:location.pathname} o(Tf,"detailPathFromPlay"); var Cc=/第\s*(\d{1,2})\s*季/; var Af=/(ova|oad|特别篇|特别版|剧场版|番外|外传)/; function ur(t){const e=String(t||"").match(/[((][^))]*[))]/g)||[];for(const n of e){const r=Cc.exec(n);if(r)return Number(r[1])}return 0} o(ur,"seasonFromTitle"); function No(){const t=document.querySelector(".ddys-season-menu .ddys-season-tab.is-active");const e=t?Cc.exec(t.textContent||""):null;return e?Number(e[1]):0} o(No,"seasonFromTab"); function Tc(t,e){const n=Je(t);return e?n+" \u7B2C"+e+"\u5B63":n} o(Tc,"nameWithSeason"); function Lf(t,e){const n=t.querySelector(".title");const r=n?n.textContent||"":"";const i=Y(r);if(!i||!e)return 0;if(Af.test(i))return 0;if(i.indexOf(e)!==0)return 0;const c=/^(?:s(\d{1,2})|(\d{1,2}))(?!\d)/.exec(i.slice(e.length));return c?Number(c[1]||c[2]):1} o(Lf,"seasonOfBlock"); function Ac(t,e,n){const r=t.filter(c=>Lf(c,n)===e);if(!r.length)return null;const i=r.filter(c=>!/part/.test(Y((c.querySelector(".title")||{}).textContent||"")));return i[0]||r[0]} o(Ac,"pickSeasonBlock"); var Lc=["ddys.app","ddys.ai"]; var Mc={id:"ddys",name:"\u4F4E\u7AEF\u5F71\u89C6",domains:Lc,matches:["*://*.ddys.app/*","*://*.ddys.ai/*"],include:["/^https?:\\/\\/([^/]*\\.)?ddys\\./"],searchPath:o(t=>"/?s="+encodeURIComponent(t)+"&post_type=post","searchPath"),coverReferer:o((t,e)=>(e||"https://"+Lc[0])+(t||"/"),"coverReferer"),trackPlaybackOnDetail:true,pageType(){if(new URLSearchParams(location.search).has("s"))return"search";if(document.querySelector(".post-title"))return"detail";if(document.querySelector(".post-box"))return"list";return"other"},listCardSelector:".post-box",getListCards(){const t=[];document.querySelectorAll(".post-box").forEach(e=>{const n=e.querySelector(".post-box-title a")||e.querySelector("a");if(!n)return;const r=e.querySelector(".post-box-title");const i=(r==null?void 0:r.textContent)||"";const c=Tc(i,ur(i));const a=e.querySelector(".post-box-image");const s=gc((a==null?void 0:a.getAttribute("style"))||"")||X(a==null?void 0:a.querySelector("img"));if(c){t.push({element:e,name:c,cover:s,path:n.pathname});if(s&&!e.dataset.vcDdysCoverBound){e.dataset.vcDdysCoverBound="1";e.addEventListener("click",()=>{try{sessionStorage.setItem("ddys_cover_"+Je(i),s)}catch(l){}})}}});return t},getDetailInfo(){var r;const t=((r=document.querySelector(".post-title"))==null?void 0:r.textContent)||"";const e=Tc(t,No()||ur(t));if(!e)return null;let n="";try{n=sessionStorage.getItem("ddys_cover_"+Je(t))||""}catch(i){}if(!n){const i=Array.from(document.querySelectorAll(".doulist-item"));const c=Y(Je(t));const a=Ac(i,No()||ur(t)||1,c);const s=a||i[i.length-1];if(s)n=X(s.querySelector("img"))}return{name:e,cover:n,path:location.pathname}},getSiteRating(t){var e;if(!t||t===document){const n=Array.from(document.querySelectorAll(".doulist-item"));if(!n.length)return null;const r=((e=document.querySelector(".post-title"))==null?void 0:e.textContent)||"";const i=No()||ur(r);const c=Ac(n,i||1,Y(Je(r)));if(!c)return null;const a=c.querySelector('a.wpd-rating-source[href*="movie.douban.com"]');if(!a)return null;const s=a.parentElement?a.parentElement.querySelector(".rating_nums"):null;const l=lr(s&&s.textContent);const p=Ro(a.getAttribute("href"));if(!l&&!p)return null;return{score:l,url:p}}return null}}; var Ic={id:"libvio",name:"LIBVIO",domains:["libvio.host","www.libvio.mov","www.libvios.com","www.libhd.com","libviobd.com","www.libvio.in","www.libvio.io"],matches:["*://*.libvio.host/*","*://*.libvio.mov/*","*://*.libvios.com/*","*://*.libhd.com/*","*://*.libviobd.com/*","*://*.libvio.in/*","*://*.libvio.io/*"],include:["/^https?:\\/\\/([^/]*\\.)?(libvio|libvios|libviobd|libhd)\\./"],searchPath:o(t=>"/search/-------------.html?wd="+encodeURIComponent(t),"searchPath"),pageType(){const t=location.pathname;if(t.startsWith("/detail/"))return"detail";if(t.startsWith("/w/"))return"play";if(t.startsWith("/search/"))return"search";if(document.querySelector(".stui-vodlist"))return"list";return"other"},listCardSelector:".stui-vodlist__box",getListCards(){const t=[];document.querySelectorAll(".stui-vodlist__box").forEach(e=>{const n=e.querySelector("a.stui-vodlist__thumb");const r=e.querySelector(".stui-vodlist__detail .title");if(!n)return;const i=((r==null?void 0:r.textContent)||n.getAttribute("title")||"").trim();const c=X(n)||X(n.querySelector("img"));if(i)t.push({element:e,name:i,cover:c,path:n.pathname})});return t},getDetailInfo(){const t=document.querySelector(".vod-poster img");const e=document.querySelector(".vod-info .title");const n=document.querySelector(".vod-info a");const r=((e==null?void 0:e.textContent)||"").trim();if(!r)return null;const i=X(t);const c=(n==null?void 0:n.getAttribute("href"))||location.pathname;return{name:r,cover:i,path:c}},getPlayInfo(){const t=document.querySelector(".stui-player__detail .title");const e=((t==null?void 0:t.textContent)||"").trim();if(!e)return null;return{name:e,path:location.pathname}},getSiteRating(t){if(!t||t===document){return Vt(document,[".vod-rating-mobile"],".vod-hero__inner, .stui-player__detail")}return Vt(t,[".pic-tag-top",".pic-tag"])}}; function Cf(t){if(!t.length)return"";const e=t.filter(r=>r.id!=="noneCoverImg"&&!yt(X(r)));const n=e.length?e[e.length-1]:t[t.length-1];return n.id==="noneCoverImg"?"":X(n)} o(Cf,"pickCover"); var Pc={id:"duse",name:"\u6BD2\u820C\u7535\u5F71",domains:["www.duse2.com","www.duse3.com","www.duse4.com","www.dushe3.app","www.dushe05.com","www.dushe06.com"],matches:["*://*.duse2.com/*","*://*.duse3.com/*","*://*.duse4.com/*","*://*.dushe3.app/*","*://*.dushe05.com/*","*://*.dushe06.com/*"],include:["/^https?:\\/\\/([^/]*\\.)?dush?e\\d+\\./"],searchPath:o(t=>"/#vc-search="+encodeURIComponent(t),"searchPath"),isPlayUrl(t){return/\/play\//.test(t||"")},onPageReady(){const t=location.hash.match(/vc-search=([^&]+)/);if(!t)return;const e=decodeURIComponent(t[1]);let n=0;const r=o(()=>{if(n++>30)return;const i=document.querySelector('input[name="t"], input#t');if(i&&i.value){location.href="/search?t="+encodeURIComponent(i.value)+"&k="+encodeURIComponent(e);return}const c=document.querySelectorAll("script:not([src])");for(const l of c){const p=l.textContent.match(/["']?t["']?\s*[:=]\s*["']([A-Za-z0-9+/=]{16,})["']/);if(p){location.href="/search?t="+encodeURIComponent(p[1])+"&k="+encodeURIComponent(e);return}}let a=document.querySelector('input[type="search"], input[placeholder*="\u641C"], input[placeholder*="Search" i], input[name="wd"], input[name="search"], input[name="q"], input[name="k"]');if(!a){a=Array.from(document.querySelectorAll('input[type="text"]')).find(l=>/search|搜索|搜|片名/.test(l.placeholder||"")||/search|wd|keyword|q|k/.test(l.name||""))}if(!a){const l=document.querySelector('[class*="search" i] i, [class*="search" i] svg, .search-icon, .icon-search, [aria-label*="search" i]');if(l)l.click();setTimeout(r,300);return}const s=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;s.call(a,e);a.dispatchEvent(new Event("input",{bubbles:true}));a.dispatchEvent(new Event("change",{bubbles:true}));a.focus();setTimeout(()=>{a.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:true}));a.dispatchEvent(new KeyboardEvent("keyup",{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:true}));const l=document.querySelector('button[type="submit"], .search-btn, [class*="search" i] button');if(l)l.click();const p=a.closest("form");if(p)p.dispatchEvent(new Event("submit",{bubbles:true,cancelable:true}))},200)},"trySearch");r()},pageType(){const t=location.pathname;if(t.startsWith("/detail/"))return"detail";if(t.startsWith("/play/"))return"play";if(t.startsWith("/search"))return"search";if(document.querySelector("a.v-item"))return"list";return"other"},listCardSelector:"a.v-item",statusOffset(t,e){const n=Qe(t,e,".v-item-top");return n?{top:n+6}:null},getSiteRating(t){if(!t||t===document)return null;return Vt(t,[".v-item-top-left"])},getListCards(){const t=[];document.querySelectorAll("a.v-item").forEach(e=>{let n="";e.querySelectorAll(".v-item-footer .v-item-title").forEach(c=>{if(n)return;if(c.style.display!=="none")n=c.textContent.trim()});if(!n)return;const r=Array.from(e.querySelectorAll(".v-item-cover img"));const i=Cf(r);t.push({element:e,name:n,cover:i,path:e.pathname})});return t},getDetailInfo(){const t=document.querySelector(".detail-pic img");const e=((t==null?void 0:t.getAttribute("alt"))||"").trim();if(!e)return null;return{name:e,cover:X(t),path:location.pathname}},getPlayInfo(){const t=document.querySelector(".detail-title a");if(!t)return null;const e=(t.textContent||"").trim();if(!e)return null;return{name:e,path:t.pathname}}}; function Mf(){const t=Array.from(document.querySelectorAll("h5")).find(e=>!/^豆瓣/.test(e.textContent.trim()));return((t==null?void 0:t.textContent)||"").trim()} o(Mf,"titleFromPage"); function If(){const t=Array.from(document.querySelectorAll("h5")).find(n=>/^豆瓣/.test(n.textContent.trim()));const e=Po(t&&t.textContent);return e?{score:e}:null} o(If,"ratingFromPage"); function Pf(){var e;const t=((e=document.querySelector("video-player"))==null?void 0:e.getAttribute("content-title"))||"";return t.replace(/第\s*\d+\s*集\s*$/,"").trim()} o(Pf,"titleFromPlayer"); function Of(t,e){var c;const n=t.querySelector("h3, h2, h1");const r=((n==null?void 0:n.textContent)||"").trim();if(r)return r;const i=(e.getAttribute("aria-label")||"").trim().replace(/^播放\s*/,"");if(i)return i;return(((c=t.querySelector("img"))==null?void 0:c.getAttribute("alt"))||"").trim()} o(Of,"cardName"); function Rf(t){const e=t.getAttribute("href")||"";if(!e)return"";if(/^https?:/i.test(e)){try{return new URL(e).pathname}catch(n){return""}}return e.startsWith("/")?e:"/"+e} o(Rf,"playPath"); function Df(t){if(t){const n=Array.from(document.querySelectorAll("img")).find(i=>(i.getAttribute("alt")||"").trim()===t);const r=X(n);if(r)return r}const e=X(document.querySelector("img.jN, img.jO"));if(e)return e;for(const n of document.querySelectorAll("img")){if(n.closest("article"))continue;const r=X(n);if(r)return r}return""} o(Df,"pickPlayCover"); function Nf(t){const e=Array.from(t.querySelectorAll("div, span")).find(c=>!c.children.length&&/^豆瓣/.test((c.textContent||"").trim()));const n=e&&e.parentElement;if(!n)return 0;const r=n.getBoundingClientRect();const i=t.getBoundingClientRect();return Math.max(0,Math.round(r.bottom-i.top))} o(Nf,"badgeRowBottom"); var Oc={id:"gaze",name:"\u6CE8\u89C6\u5F71\u89C6",domains:["gaze.red","gazes.store","gazes.top","gaze.show","gazes.host"],matches:["*://*.gaze.red/*","*://*.gazes.store/*","*://*.gazes.top/*","*://*.gaze.show/*","*://*.gazes.host/*"],include:["/^https?:\\/\\/([^/]*\\.)?gazes?\\d*\\./"],searchPath:o(t=>"/filter?search="+encodeURIComponent(t),"searchPath"),pageType(){if(location.pathname.startsWith("/play/")||document.querySelector("video-player"))return"play";if(document.querySelector('a[href*="play/"]'))return"list";return"other"},listCardSelector:"article",statusOffset(t){const e=Nf(t);return e?{top:e+6,left:0}:null},getSiteRating(t){if(!t||t===document)return If();return Vt(t,[])},getListCards(){const t=[];document.querySelectorAll("article").forEach(e=>{const n=e.querySelector('a[href*="play/"]');if(!n)return;const r=Of(e,n);if(!r)return;t.push({element:e,name:r,cover:X(e.querySelector("img")),path:Rf(n)})});return t},getPlayInfo(){const t=Mf()||Pf();if(!t)return null;return{name:t,cover:Df(t),path:location.pathname}}}; var qo=15; var Rc=200; var Dc=3e3; var Nc=120; var qc=400; var Fc=120; var Bc="vc_debug_log"; var jc=["javbus.com","www.javbus.com","javlibrary.com","www.javlibrary.com"]; var $c="video_collector_drama_data"; var zc="video_collector_drama_position"; var Fo="video_collector_drama_fab_pos"; var En="video_collector_drama_xjump_pos"; var _n="video_collector_drama_img_cache"; var kn="vc_drama_play_tabs_alive"; var Hc="video_collector_drama_domain_alive"; var Uc="video_collector_drama_last_domain"; var Tn="video_collector_drama_playback"; var Bo="video_collector_drama_playback_bak"; var tn="video_collector_drama_meta"; var dr="video_collector_drama_meta_hits"; var jo="video_collector_drama_meta_block"; var Vc="https://frodo.douban.com/api/v2/search/movie?q="; var Gc="0ac44ae016490db2204ce0a042db2916"; var Yc="MicroMessenger/"; var Kc="https://servicewechat.com/wx2f9b06c1de1ccfca"; var Wc="https://movie.douban.com/j/subject_abstract?subject_id="; var Xc=/异常请求|检测到有异常请求|登录豆瓣|验证码|安全验证|人机验证|滑动验证/i; var Jc=10; var Zc=.05; var Qc=3e4; var ta=5; var ea=30; var fr="video_collector_drama_player_probe"; var $o="https://raw.giteeusercontent.com/xiaobin90/jVideoCollector/raw/main/sites-domains.json"; var pr="video_collector_drama_domain_list"; var An="video_collector_drama_web_search_excluded"; var Ln=[{id:"pianku",name:"\u7247\u5E93",domains:["4k01.pianku.online","4k.pianku.online","4k02.pianku.online","4k03.pianku.online"],searchPath:o(t=>"/vodsearch/-------------.html?wd="+encodeURIComponent(t),"searchPath")}]; var ge="video_collector_drama_engine_enabled"; var vr="video_collector_drama_site_names"; var zo="video_collector_drama_video_hosts"; function lt(t){return(t||"").replace(/^www\./,"")} o(lt,"normalizeHost"); var qf=800; var Ff=6*60*60*1e3; function na({lastDomainKey:t,aliveCacheKey:e,probeDeadline:n=qf,ttl:r=Ff,isProbeable:i=o(()=>true,"isProbeable")}){let c=null;function a(){if(c===null){try{c=JSON.parse(GM_getValue(t,"{}"))}catch(h){c={}}}return c}o(a,"loadMap");function s(h,A){if(!h||!A)return;const R=a();if(R[h]===A)return;R[h]=A;GM_setValue(t,JSON.stringify(R))}o(s,"recordWorkingDomain");function l(h){return a()[h]||""}o(l,"getLastWorking");function p(h){if(!h||!h.domains||!h.domains.length)return"";const A=l(h.id);if(A&&h.domains.some(R=>lt(R)===lt(A)))return A;return h.domains[0]}o(p,"pickDomain");let f=null;const E=new Map;function y(){if(f)return f;try{f=GM_getValue(e,{})||{}}catch(h){f={}}return f}o(y,"loadAliveCache");function k(){try{GM_setValue(e,f)}catch(h){}}o(k,"saveAliveCache");try{if(typeof GM_addValueChangeListener==="function"){GM_addValueChangeListener(e,(h,A,R)=>{f=R||{}})}}catch(h){}function x(h){const A=y()[h];if(!A||Date.now()-A.ts>=r)return void 0;return!!A.alive}o(x,"cachedAlive");function _(h){const A=x(h);if(A!==void 0)return Promise.resolve(A);if(E.has(h))return E.get(h);const R=new Promise(P=>{const L=y();let d=false;const S=o(b=>{if(d)return;d=true;L[h]={alive:b,ts:Date.now()};k();P(b)},"finish");try{GM_xmlhttpRequest({method:"HEAD",url:"https://"+h+"/",timeout:3e3,onload:o(()=>S(true),"onload"),onerror:o(()=>S(false),"onerror"),ontimeout:o(()=>S(false),"ontimeout")})}catch(b){S(false)}}).then(P=>{E.delete(h);return P});E.set(h,R);return R}o(_,"probeDomain");function g(h){const A=l(h.id);if(A&&h.domains.some(R=>lt(R)===lt(A))){return[A,...h.domains.filter(R=>lt(R)!==lt(A))]}return h.domains}o(g,"candidateDomains");function D(h){if(!h||!h.domains||!h.domains.length)return Promise.resolve("");const A=g(h);const R=A.find(d=>x(d)===true);if(R)return Promise.resolve(R);const P=A.filter(d=>i(h,d)&&x(d)===void 0);const L=A.find(d=>!i(h,d));if(!P.length)return Promise.resolve(L||A[0]);return new Promise(d=>{let S=null;let b=false;let C=P.length;const F=o((H,ct)=>{if(b)return;b=true;clearTimeout(S);d(H);if(!ct)return;try{if(l(h.id)!==H)s(h.id,H)}catch(N){}},"settle");S=setTimeout(()=>F(p(h)||A[0],false),n);P.forEach(H=>{_(H).then(ct=>{if(ct){F(H,true)}else if(--C===0){F(L||A[0],false)}})})})}o(D,"findAliveDomain");return{recordWorkingDomain:s,getLastWorking:l,pickDomain:p,findAliveDomain:D}} o(na,"createDomainResolver"); var Ho=new Map; function Bf(t,e){const n=Ho.get(t.id);return!n||n.has(lt(e))} o(Bf,"isProbeable"); var jf=na({lastDomainKey:Uc,aliveCacheKey:Hc,isProbeable:Bf}); var{recordWorkingDomain:ra,getLastWorking:Og,pickDomain:ke,findAliveDomain:en} =jf; var $f=200; var Cn=null; function oa(){if(Cn)return Cn;try{const t=JSON.parse(GM_getValue(zo,"[]"));Cn=Array.isArray(t)?t:[]}catch(t){Cn=[]}return Cn} o(oa,"readVideoHosts"); function ia(t){const e=lt(t);return!!e&&oa().includes(e)} o(ia,"isKnownVideoHost"); function ca(t){const e=lt(t);if(!e)return;const n=oa();if(n.includes(e))return;if(n.length>=$f)return;n.push(e);try{GM_setValue(zo,JSON.stringify(n))}catch(r){}} o(ca,"rememberVideoHost"); var zf=24*60*60*1e3; function Hf(){try{const t=JSON.parse(GM_getValue(pr,"{}"));return t&&t.sites||{}}catch(t){return{}}} o(Hf,"loadRemoteDomains"); var Uf=30; function Vf(t){return typeof t==="string"&&t.length>0&&t.length<=253&&t.includes(".")&&/^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$/i.test(t)} o(Vf,"isDomainLike"); function Uo(t){if(!Ho.has(t.id))Ho.set(t.id,new Set(t.domains.map(lt)));const e=Hf()[t.id];if(!Array.isArray(e)||!e.length)return;const n=new Set(t.domains.map(i=>lt(i)));const r=e.filter(i=>Vf(i)&&!n.has(lt(i))).slice(0,Uf);if(r.length)t.domains.push(...r)} o(Uo,"mergeRemoteDomains"); function aa(){if(!$o)return Promise.resolve();try{const t=JSON.parse(GM_getValue(pr,"{}"));if(t&&t.ts&&Date.now()-t.ts{try{GM_xmlhttpRequest({method:"GET",url:$o,timeout:1e4,onload:o(e=>{try{const n=JSON.parse(e.responseText);if(n&&typeof n.sites==="object"){GM_setValue(pr,JSON.stringify({ts:Date.now(),sites:n.sites}))}}catch(n){}t()},"onload"),onerror:o(()=>t(),"onerror"),ontimeout:o(()=>t(),"ontimeout")})}catch(e){t()}})} o(aa,"refreshDomainList"); var sa=/hls\.js|dplayer|ckplayer|artplayer|xgplayer|video\.js|videojs|player\.js|playerconfig/i; var la=/id=["']player["']|class=["'][^"']*player[^"']*["']|player-loading|player-wrapper|player-container|player-episodes/i; var ua=/\/vodplay\/|\/vod\/play\/|play\.php|\/play\/|\/w\/[\w]+-[\d]+-[\d]+/i; var da=/\/voddetail\/|\/detail\/|\/vod\/detail\/|\/movie\/|\/series\/|\/vod\/\d+\.html|\/video\/[\w-]+\.html|\/\w*detail\//i; var fa=/\/vodsearch\/|\/search\/|\?s=|\/index\.php\/vod\/search/i; var pa=/\/voddetail\/|\/detail\/|\/vod\/|\/video\/[\w-]+\.html|\b(?:play|detail|vod|show|video|movie|view)[\w-]*\.php\?[^"'#<>\s]*\b(?:id|vid)=\d+|\/movie\/[\w-]+|\/tv\/[\w-]+|\/watch\/\d+|\/neirong\/\d+|\/20\d{6}\/?(?:[?#]|$)/i; var va='[class*="poster"], [class*="Poster"]'; var ma=6; var Vo=6; var ha=6; var ga=2; var ba=100; var ya=.25; var xa=/影视|电影|电视剧|剧集|动漫|综艺|在线观看|追剧|美剧|韩剧|日剧|港剧|番剧/g; var Gf=/^[A-Za-z0-9_]{10,}$/; function mr(t){return String(t||"").replace(/^https?:\/\/[^/]+/i,"").replace(/[?#].*$/,"").split("/").map(e=>Gf.test(e)?"#":e.replace(/\d+/g,"#")).join("/").slice(0,60)} o(mr,"shapeKeyOf"); function hr(t){return String(t||"").indexOf("#")>=0||/\.(?:html?|php|aspx?)(?:\/|$)/i.test(String(t||""))} o(hr,"isContentShape"); function gr(t,e){const n=o(c=>String(c||"").toLowerCase().replace(/^www\./,"").split(".").slice(-2).join("."),"tail");let r="";let i="";try{r=new URL(String(t||""),e).hostname}catch(c){return false}try{i=new URL(String(e||""),e).hostname}catch(c){i=""}if(!i)return true;return!!r&&n(r)===n(i)} o(gr,"isSameSite"); var br=/\/(?:tag|tags|category|categories|page|pages|search|login|logout|register|user|users|member|account|author|news|article|blog|archive|archives|sitemap|about|help|faq|privacy|contact|rss|feed|comment|guestbook)(?:\/|$)|^\/?(?:#|javascript|mailto|\?)/i; var yr=[".vod-item",".stui-vodlist__box",".myui-vodlist__box",".module-item",".public-list-box",".movie-card",".video-item",".fed-list-item",".content-card",".home-feed-card",".br-card"]; var wa=["h1",".vod-info .title",".vod-title",".video-title",".video-name"]; var Sa=[".title",".name"]; var Ea=[".detail-pic img",".vod-pic img",".vod-img img",".poster img",".thumb img",".cover img"]; var _a=[".vod-poster__wrap img",".stui-player__detail img",".myui-content__thumb img",".module-info-poster img",".movie-poster img",".detail-pic img",".dyimg img",".detail-poster-card img",".play-poster img",".poster img","#detail-poster"]; var ka=/^vc-/; var Go=/(?:^|[\s_-])(?:recommend|related|similar|guess|like|hot|rank|tj|more|swiper|carousel|slider|public-r)(?:[\s_-]|$)/i; var Ta=/相关推荐|相关影片|猜你喜欢|热门推荐|为你推荐|相似影片|更多推荐|推荐影片|本周热门|热门榜单|同类推荐|精选推荐/; var Aa=[[/nid\/(\d+)/i,"url:nid"],[/\/vodplay\/[\d]+-[\d]+-(\d+)/i,"url:vodplay"],[/\/ep(\d+)/i,"url:ep"],[/\/episode[_\-/](\d+)/i,"url:episode"],[/[/_-]e(\d{1,4})(?:[/_-]|$)/i,"url:e"]]; var La=[[/第\s*(\d+)\s*[集话回]/,"\u7B2CN\u96C6"],[/E[Pp]?\.?\s*(\d+)/i,"EP"],[/S\d+E(\d+)/i,"S01E02"],[/【(\d+)】/,"\u3010N\u3011"],[/\[(\d+)\]/,"[N]"],[/((\d+))/,"\uFF08N\uFF09"],[/\((\d+)\)/,"(N)"],[/#\s*(\d+)/,"#N"],[/_(\d+)_/,"_N_"],[/-(\d+)-/,"-N-"],[/(\d+)\s*[集话]/,"N\u96C6"]]; var Ca={"dongpian17.com":[".movie-episode-desktop-grid .movie-button-primary",".movie-episode-quick-tab.movie-button-primary"],"kanju17.com|kanju3.com":[".movie-episode-desktop-grid .movie-button-primary",".movie-episode-quick-tab.movie-button-primary"]}; var xr=[{id:"maccms-voddetail",name:"MacCMS(voddetail)",detail:/\/voddetail\/\d+/i,play:/\/vodplay\/[\d]+-[\d]+-[\d]+/i,struct:/\bvod-item\b|\bvod-pic\b|\/vodtype\/|\/vodsearch\//i,cardSelector:".vod-item",searchPath:o(t=>"/vodsearch/-------------.html?wd="+encodeURIComponent(t),"searchPath"),detailFromPlay:o(t=>{const e=String(t||"").match(/^\/vodplay\/(\d+)/i);return e?`/voddetail/${e[1]}.html`:""},"detailFromPlay")},{id:"maccms-indexphp",name:"MacCMS(index.php)",detail:/\/index\.php\/vod\/detail\//i,play:/\/index\.php\/vod\/play\//i,struct:/\/index\.php\/vod\//i,cardSelector:".public-list-box, .module-item",searchPath:null,detailFromPlay:o(t=>{const e=String(t||"").match(/\/vod\/play\/id\/(\d+)/i);return e?`/index.php/vod/detail/id/${e[1]}.html`:""},"detailFromPlay")}]; var Yo="\u6B63\u7247"; var Ko="spa"; var Wo=[[/防火墙正在检查|正在检查您的访问|安全检查中|访问验证|Just a moment|Checking your browser|cf-browser-verification/i,"waf"],[/^加载中\.*$|^Loading\.*$|正在加载中/i,Ko],[/Access Denied|403 Forbidden|网站维护|站点维护中|暂停访问|域名暂时停止/i,"denied"]]; var Ma=[/\byoutube\.com$/,/\bbilibili\.com$/,/\bb23\.tv$/,/\bdouyin\.com$/,/\bixigua\.com$/,/\biqiyi\.com$/,/\bv\.qq\.com$/,/\byouku\.com$/,/\bmgtv\.com$/,/\bsohu\.com$/,/\bnetflix\.com$/,/\bdisneyplus\.com$/,/\bprimevideo\.com$/,/\bhbomax\.com$/,/\bhulu\.com$/,/\btwitter\.com$/,/\bx\.com$/,/\bfacebook\.com$/,/\binstagram\.com$/,/\bweibo\.com$/,/\bzhihu\.com$/,/\bbaidu\.com$/,/\btaobao\.com$/,/\bjd\.com$/,/\btmall\.com$/,/\bgoogle\.com$/,/\bbing\.com$/,/\bgithub\.com$/,/\bgreasyfork\.org$/,/\bdouban\.com$/,/\byinghezhinan\.com$/,/\bcodepen\.io$/,/\blink3\.cc$/]; var Ia=jc.map(t=>new RegExp(`\\b${t.replace(/^www\./,"").replace(/\./g,"\\.")}$`)); function Pa(t,e){const n=String(e||"");for(const i of xr){if(i.detail&&i.detail.test(n)||i.play&&i.play.test(n))return i}for(const i of xr){try{if(i.cardSelector&&t.querySelector(i.cardSelector))return i}catch(c){}}let r="";for(const i of xr){if(!i.struct)continue;if(!r){try{r=t.body?t.body.innerHTML.slice(0,4e4):""}catch(c){r=""}}if(r&&i.struct.test(r))return i}return null} o(Pa,"detectFamily"); function je(t,e){const n=String(e||"");if(fa.test(n))return"search";if(ua.test(n))return"play";if(da.test(n))return"detail";let r=false;try{r=la.test(t.body?t.body.innerHTML.slice(0,4e4):"")}catch(i){}if(!r){try{r=[...t.querySelectorAll("script[src]")].some(i=>sa.test(i.src||""))}catch(i){}}if(r&&/play/i.test(n))return"play";return"other"} o(je,"detectPageType"); function Mn(t,e,n){try{const r=String(e||t.location&&t.location.href||"");const i=n&&n.minLinks||6;const c=o(_=>gr(_,r),"inSite");let a=0;for(const _ of t.querySelectorAll("a[href]")){const g=_.getAttribute("href")||"";if(pa.test(g)&&c(g)){a++;if(a>=i)return true}}if(yr.some(_=>{try{return t.querySelectorAll(_).length>=6}catch(g){return false}}))return true;let s=0;for(const _ of t.querySelectorAll(va)){if(_.querySelector("img")){s++;if(s>=ma)return true}}const l=new Map;let p=0;let f=0;let E=0;for(const _ of t.querySelectorAll("a[href]")){const g=_.getAttribute("href")||"";if(!g||br.test(g))continue;if(!c(g))continue;const D=mr(g);if(!D||D==="/"||D==="#"||D==="/#")continue;if(!hr(D))continue;const h=_.parentElement;const A=!!_.querySelector("img")||!!(h&&h.querySelector("img"));const R=l.get(D)||{n:0,img:0};const P={n:R.n+1,img:R.img+(A?1:0)};l.set(D,P);if(P.img>p)p=P.img;if(P.n>f){f=P.n;E=P.img}}if(pi!==Ko):Wo;const r=[];try{if(t.title)r.push(t.title);const i=t.querySelector("h1");if(i)r.push(i.textContent||"");if(t.body)r.push((t.body.textContent||"").slice(0,1500))}catch(i){}for(const i of r){const c=String(i||"").trim();if(!c)continue;for(const[a,s]of n){if(a.test(c))return s}}return""} o(wr,"detectBlocked"); var Yf=/\/vodsearch\/|\/search\/|search\.php|[?&](?:wd|q|kw|keyword)=/i; function Xo(t){return Yf.test(String(t||""))} o(Xo,"isSearchUrl"); var Kf=/\.(json|png|jpe?g|gif|svg|css|js|mjs|ico|woff2?|ttf|txt|xml|pdf|zip|rar|mp4|m3u8)$/i; function Wf(t){return String(t||"").toLowerCase().replace(/^www\./,"")} o(Wf,"normHost"); function Sr({ignoreEngineSwitch:t=false}={}){try{if(!/^https?:$/.test(location.protocol))return false;if(Kf.test(location.pathname))return false;const e=Wf(location.hostname);if(!e||!e.includes("."))return false;if(Ia.some(n=>n.test(e)))return false;if(Ma.some(n=>n.test(e)))return false;if(!t&&GM_getValue(ge,true)===false)return false;return true}catch(e){return false}} o(Sr,"quickPass"); function Oa(t){try{if(!t||!t.body)return false;const e=je(t,location.href);if(wr(t,{ignoreSpa:e!=="other"}))return false;if(e!=="other")return true;if(Mn(t,location.href))return true;if(Xo(location.href)&&ia(location.hostname)&&Mn(t,location.href,{minLinks:1}))return true;return false}catch(e){return false}} o(Oa,"deepPass"); function $e(t,e){let n=e;for(let r=0;r<12&&n&&n.parentElement;r++){if(n.parentElement.tagName==="BODY"&&ka.test(String(n.className||"")))return true;n=n.parentElement}return false} o($e,"isOwnUi"); function qa(t,e){let n=e;for(let r=0;r<8&&n&&n!==t.body;r++){if(Go.test(String(n.className||""))||Go.test(String(n.id||"")))return true;const i=n.previousElementSibling;if(i&&Ta.test(String(i.textContent||"").replace(/\s+/g,"").slice(0,30)))return true;n=n.parentElement}return false} o(qa,"inRecommendBlock"); function Er(t,e){if(!e)return false;if($e(t,e))return false;if(qa(t,e))return false;return true} o(Er,"usableImgNode"); var In=o(t=>/^(19|20)\d{2}$/.test(String(t)),"isYear"); var Jo=/^(简介|剧情|剧情介绍|返回|返回详情|返回列表|返回首页|返回上页|查看详情|详情页|首页|主页|评论|网友评论|相关推荐|猜你喜欢|热门推荐|最新|最新电影|播放列表|选集|下载|收藏|登录|注册|搜索|更多|详情|影片参数|在线播放|观看历史|推荐|资源|资源列表|播放记录|剧情简介|温馨提示|影片介绍|播放地址|线路|线路选择|片源|加载中|正在加载中|Loading)$/; var Xf=/(?:\s*(?:\d+\s*集全|全剧集|共\s*\d+\s*集|更新至\s*\d+\s*[集期话]|更新第\s*\d+\s*[集期话]|更新至|更新到|第\s*\d+\s*期|已完结|完结|全集|全季|正片|高清完整版|完整版|在线观看|播放列表|超清|蓝光|标清|原画|抢先版|清晰版|修复版|4K|8K|1080[Pp]?|720[Pp]?|H[Dd]|HDR|杜比视界))*$/; var Jf=/\s*[-_·|]?\s*(?:第\s*\d+\s*[集话回期]|E[Pp]?\s*\d{1,4}|S\d+\s*E\d+)\s*$/; var Zf=/^(?:正在播放|在线播放|播放中|播放|观看)\s*/; var Qf=/\s*\d*\s*[A-Za-z\u4e00-\u9fa5]{0,6}源线路\s*/g; var tp=/^(?:官方中字|中文字幕|双语字幕|高清中字|内嵌字幕|外挂字幕|无字幕|免费|在线观看|在线看|高清|超清|完整版|正片|详情|详情介绍|动作|冒险|科幻|恐怖|喜剧|爱情|剧情|悬疑|犯罪|战争|奇幻|动画|纪录片|综艺|电影|电视剧|动漫|美剧|韩剧|日剧|港剧|台剧|短片|预告)$/; function _r(t,e,n){try{const r=t.querySelector(`meta[${e}="${n}"]`);return r?String(r.getAttribute("content")||"").trim():""}catch(r){return""}} o(_r,"metaContent"); function ue(t,e){let n=String(t||"").replace(/\s+/g," ").trim();const r=o(y=>{const k=/^《([^》]{2,40})》/.exec(String(y).trim());return k?k[1]:null},"takeQuoted");const i=r(n);if(i)n=i;if(Jo.test(n.replace(/[《》]/g,"")))return"";n=n.replace(Zf,"").replace(Qf," ");const c=r(n);if(c)n=c;n=n.replace(/[《》]/g,"");const a=n.split(/[-_|·]/).map(y=>y.trim()).filter(Boolean);const s=a.filter(y=>{if(!y)return false;if(e&&y===e)return false;if(a.length>1&&/^\d{1,4}$/.test(y))return false;if(/^(最新|热门|全集|高清|蓝光|秒播|无广告|免费|在线观看|电影|电视剧|影片|动漫|综艺|纪录片|影视大全|详情介绍|高清完整版)$/.test(y))return false;return true});const l=new Set;const p=(s.length?s:a).filter(y=>{const k=y.replace(/\s/g,"");if(l.has(k))return false;l.add(k);return true});n=p.join(" ").trim();n=n.replace(/[((【\[]\s*(?:19|20)\d{2}\s*[))】\]]/g," ");const f=n.split(/\s+/).filter(Boolean).filter(y=>!/^(?:19|20)\d{2}$/.test(y));if(f.length)n=f.join(" ");n=n.replace(/在线观看|高清完整版|免费观看|全集免费|迅雷下载|详情介绍|在线播放|手机观看|剧情介绍|高清|完整版|免费在线/g,"");n=n.replace(/在线看|官方中字|中文字幕|双语字幕|高清中字|内嵌字幕|详情/g,"");n=n.replace(Jf,"").replace(Xf,"");n=n.replace(/\s*[-_|·]\s*\d{1,4}\s*$/g,"");n=n.replace(/^(?:电影|电视剧|影片|动漫|综艺|纪录片)\s*/,"").replace(/\s*(?:电影|电视剧|影片|动漫|综艺|纪录片)$/,"");const E=o(y=>{const k=String(y||"").split(/[/、,,|]/).map(x=>x.trim()).filter(Boolean);return k.length>0&&k.every(x=>tp.test(x))},"isTagNoise");n=n.replace(/^[【\[]\s*([^【\[\]】]{1,20})\s*[】\]]\s*/,(y,k)=>E(k)?"":y);n=n.replace(/\s*[【\[]\s*([^【\[\]】]{1,20})\s*[】\]]\s*$/,(y,k)=>E(k)?"":y);n=n.replace(/[((]\s*[))]/g,"").replace(/[【\[]\s*[】\]]/g,"");n=n.replace(/^[\s\-_|·、,,::.。]+|[\s\-_|·、,,::.。&\s]+$/g,"");return n.trim()} o(ue,"cleanTitle"); function Pn(t){if(!t)return true;if(Jo.test(t))return true;const e=String(t).split(/[\s::]/)[0];return!!e&&Jo.test(e)} o(Pn,"isUiHeading"); function Fa(t){const e=String(t||"");const n=e.match(/\/vodplay\/(\d+)/i)||e.match(/\/vod\/play\/id\/(\d+)/i)||e.match(/\/play\/(\d+)/i)||e.match(/[?&](?:id|vid)=(\d+)/i);return n?n[1]:""} o(Fa,"showIdFromUrl"); function ep(t){const e=o(a=>String(a||"").replace(/\s+/g," ").trim(),"clean");const n=o(a=>a.length>=2&&a.length<=60&&!Pn(a),"usable");let r="";for(const a of["h1","h2","h3",'[class*="title" i]']){const s=t.querySelector(a);const l=e(s&&s.textContent);if(n(l)){r=l;break}}const i=e(t.textContent);const c=e(t.getAttribute("title"));if(n(r))return{name:r,src:"inner"};if(n(i))return{name:i,src:"text"};if(n(c))return{name:c,src:"title-attr"};return{name:i||c,src:"fallback"}} o(ep,"selfLinkName"); var np=/更多信息|详细信息|详情|简介|介绍|上映|主演|导演|评分|更新至|全集|完结|播放列表/; function rp(t,e,n){let r=0;if(e==="inner")r+=3;else if(e==="text"||e==="title-attr")r+=1;if(n&&t.replace(/\s/g,"")===n.replace(/\s/g,""))r+=10;if(/^\d/.test(t))r-=5;if(/[::,,。;;!!??]/.test(t))r-=3;if(t.length>30)r-=3;if(np.test(t))r-=3;return r} o(rp,"scoreSelfLink"); function Zo(t,e){if(!e)return null;const n=new RegExp("(?:^|[^0-9])"+e+"(?:[^0-9]|$)");let r="";try{r=ue(String(t.title||"").split(/[-_|]/)[0],"")}catch(c){r=""}let i=null;try{for(const c of t.querySelectorAll("a[href]")){const a=c.getAttribute("href")||"";if(!/\/voddetail\/|\/detail\/|\/vod\/detail\//i.test(a))continue;if(!n.test(a))continue;const{name:s,src:l}=ep(c);if(!s||s.length<2||s.length>60)continue;const p=rp(ue(s,"")||s,l,r);if(!i||p>i.score)i={name:s,href:a,score:p}}}catch(c){}return i&&i.score>0?{name:i.name,href:i.href}:null} o(Zo,"findSelfDetailLink"); var Ra=/[\uAC00-\uD7AF\u1100-\u11FF\u3040-\u30FF\u0400-\u04FF]|[A-Za-z]/; function op(t,e){const n=String(t.title||"").replace(/\s+/g," ").trim();if(!n)return"";const r=ue(n.split(/[-_|]/)[0].trim(),e);return r&&!Pn(r)?r:""} o(op,"nameFromDocTitle"); function kr(t,e,n){const r=Fa(n);const i=Zo(t,r);if(i){const f=ue(i.name,e);if(f&&!Pn(f))return{name:f,src:"detail-link"}}const c=op(t,e);const a=o(f=>{for(const E of f){try{for(const y of t.querySelectorAll(E)){if($e(t,y))continue;const k=String(y.textContent||"").replace(/\s+/g," ").trim();if(k.length<2||k.length>60)continue;const x=ue(k,e);if(x&&!Pn(x))return{name:x,src:E}}}catch(y){}}return null},"bySelectors");const s=a(wa);if(s&&c&&s.name!==c&&Ra.test(s.name)&&!Ra.test(c)){return{name:c,src:"title(\u6536\u655B\u5916\u6587\u526F\u6807\u9898)"}}if(s)return s;if(c)return{name:c,src:"title"};const l=_r(t,"property","og:title");if(l){const f=ue(l,e);if(f&&!Pn(f))return{name:f,src:"og:title"}}const p=a(Sa);if(p)return p;return{name:"",src:""}} o(kr,"extractTitle"); function Ba(t){const e=Number(t.getAttribute("width"))||t.naturalWidth||0;const n=Number(t.getAttribute("height"))||t.naturalHeight||0;if(e&&n)return e<100||n<100;if(e)return e<100;if(n)return n<100;return false} o(Ba,"tooSmallImage"); var ip=150; var cp=/[?&,/_=-](?:w|width)[_=]?(\d{2,4})\b/i; var ap=/[?&,/_=-](?:h|height)[_=]?(\d{2,4})\b/i; function ja(t){const e=Number(t.getAttribute("width"))||t.naturalWidth||0;const n=Number(t.getAttribute("height"))||t.naturalHeight||0;if(e||n)return[e,n];const r=t.currentSrc||t.getAttribute("src")||t.getAttribute("data-src")||t.getAttribute("data-original")||"";const i=cp.exec(r);const c=ap.exec(r);return[i?Number(i[1]):0,c?Number(c[1]):0]} o(ja,"imgSizeOf"); function sp(t,e){const[n,r]=ja(t);return!!n&&nr){r=p;n=a}}return n||i} o($a,"pickRepairCover"); function za(t,e){const n=_r(t,"property","og:image");if(n&&!yt(n))return{cover:n,src:"og:image"};const r=_r(t,"name","twitter:image");if(r&&!yt(r))return{cover:r,src:"twitter:image"};if(e){try{for(const i of t.querySelectorAll("img")){if(!String(i.getAttribute("alt")||"").includes(e))continue;if(!Er(t,i))continue;const c=X(i);if(c)return{cover:c,src:"img[alt*=name]"}}}catch(i){}}for(const i of Ea){try{for(const c of t.querySelectorAll(i)){if(!Er(t,c))continue;const a=X(c);if(a)return{cover:a,src:i}}}catch(c){}}try{for(const i of t.querySelectorAll("img")){if(Ba(i))continue;if(!Er(t,i))continue;const c=X(i);if(c)return{cover:c,src:"img(any)"}}}catch(i){}try{const i=t.querySelector("video[poster]");const c=i?i.getAttribute("poster"):"";if(c&&!yt(c))return{cover:c,src:"video[poster]"}}catch(i){}return{cover:"",src:""}} o(za,"extractCover"); function Tr(t){for(const e of _a){try{for(const n of t.querySelectorAll(e)){if(!n||n.tagName!=="IMG")continue;if(Ba(n))continue;if(!Er(t,n))continue;const r=X(n);if(r&&!yt(r))return{cover:r,src:e}}}catch(n){}}return{cover:"",src:""}} o(Tr,"extractPlayCover"); function lp(t){const e=String(t||"");let n=e.match(/nid\/(\d+)/i);if(n&&!In(n[1]))return{ep:n[1],src:"url:nid"};n=e.match(/\/vodplay\/\d+-(\d+)-(\d+)/i);if(n&&!In(n[2]))return{ep:n[2],src:"url:vodplay"};for(const[r,i]of Aa){const c=r.exec(e);if(c&&c[1]&&!In(c[1]))return{ep:c[1],src:i}}return null} o(lp,"episodeFromUrl"); var up=/^(?:第\s*(\d{1,4})\s*[集话回期]|(\d{1,4}))$/; function Ar(t){const e=up.exec(String(t||"").replace(/\s+/g," ").trim());if(!e)return"";const n=e[1]||e[2];return n&&!In(n)?n:""} o(Ar,"epFromLabel"); function dp(t){let e=0;for(const n of t.children){if(Ar(n.textContent)&&++e>=2)return true}return false} o(dp,"episodeListAt"); function Qo(t){let e=t.parentElement;for(let n=0;n<3&&e;n++,e=e.parentElement){if(dp(e))return true}return false} o(Qo,"inEpisodeList"); function fp(t){try{for(const e of t.querySelectorAll("a, button, li")){if(Ar(e.textContent)&&Qo(e))return true}}catch(e){}return false} o(fp,"hasEpisodeList"); function pp(t){const e=String(t||"").match(/^[a-z][a-z0-9+.-]*:\/\/([^/?#]+)/i);return e?e[1].toLowerCase().replace(/^www\./,""):""} o(pp,"hostOf"); function vp(t,e){const n=pp(e);if(!n)return"";for(const[r,i]of Object.entries(Ca)){if(!r.split("|").some(c=>n===c||n.endsWith("."+c)))continue;for(const c of i){let a=null;try{a=t.querySelector(c)}catch(l){a=null}if(!a)continue;const s=Ar(a.textContent);if(s&&Qo(a))return s}}return""} o(vp,"episodeByHostSelector"); function Da(t,e,n){if(Number(n)>1)return false;const r=e?new RegExp("(?:^|[^0-9])"+e+"(?:[^0-9]|$)"):null;const i=new Set;let c=0;try{for(const a of t.querySelectorAll("a[href]")){const s=a.getAttribute("href")||"";if(r&&!r.test(s))continue;let l="";const p=s.match(/nid\/(\d+)/i);if(p)l=p[1];else{const E=s.match(/\/vodplay\/\d+-\d+-(\d+)/i);if(E)l=E[1]}if(!l)continue;i.add(l);const f=String(a.textContent||"").replace(/\s+/g," ").trim();if(/^0?\d{1,4}$/.test(f)||/第\s*\d+\s*[集话回期]/.test(f))c++}}catch(a){}if(i.size>=2||c>=2)return false;if(i.size)return true;return!fp(t)} o(Da,"looksLikeMovie"); function Ha(t,e,n){const r=Fa(e);const i=lp(e);if(i){const s=Da(t,r,i.ep);return s?{ep:"",label:Yo,movie:true,src:"movie"}:{ep:i.ep,label:`\u7B2C${i.ep}\u96C6`,movie:false,src:i.src}}const c=[kr(t,n,e).name,String(t.title||""),_r(t,"name","keywords")];for(const s of c){if(!s)continue;for(const[l,p]of La){const f=l.exec(String(s));if(f&&f[1]&&!In(f[1]))return{ep:f[1],label:`\u7B2C${f[1]}\u96C6`,movie:false,src:`text:${p}`}}}const a=vp(t,e);if(a)return{ep:a,label:`\u7B2C${a}\u96C6`,movie:false,src:"ep-active(\u7AD9\u70B9\u7EA7)"};try{const s=t.querySelectorAll('[class*="active"], [class*="current"], [class*="selected"], [aria-current="true"]');for(const l of s){const p=Ar(l.textContent);if(!p||!Qo(l))continue;return{ep:p,label:`\u7B2C${p}\u96C6`,movie:false,src:"active-ep"}}}catch(s){}if(Da(t,r,""))return{ep:"",label:Yo,movie:true,src:"movie(\u515C\u5E95)"};return{ep:"",label:"",movie:false,src:""}} o(Ha,"extractEpisode"); var mp=/favicon|(?:^|[/_.-])(?:site[-_]?)?(?:logo|ico|icon|default|loading|blank|placeholder|spacer|avatar|no-?(?:img|pic|poster|cover|image))\d*[.\-_/]|(?:^|[/_.-])(?:banner|ads?|adv)\//i; var hp=[".card-title",".title",".vod-info .title",'[class*="-title"]:not([class*="sub-"])','[class*="_title"]:not([class*="sub_"])',".name","h3","h2"]; function Lr(t,e){for(const c of hp){const a=t.querySelector(c);const s=a?String(a.textContent||"").replace(/\s+/g," ").trim():"";if(s&&s.length>=2&&s.length<=60)return s}const n=String(e.getAttribute("title")||"").trim();if(n)return n;const r=t.querySelector("img");const i=r?String(r.getAttribute("alt")||"").trim():"";if(i)return i;return String(e.textContent||"").replace(/\s+/g," ").trim().slice(0,60)} o(Lr,"cardName"); function Ua(t,e){try{const n=new URL(t,e);return n.pathname+n.search}catch(n){return t}} o(Ua,"pathFromHref"); function ti(t,e){return Ua(t.getAttribute("href")||"",e)} o(ti,"pathOf"); function gp(t,e,n){const r=[];let i;try{i=t.querySelectorAll(e)}catch(c){return r}for(const c of i){if($e(t,c))continue;const a=c.matches&&c.matches("a[href]")?c:c.querySelector("a[href]");if(!a)continue;const s=ue(Lr(c,a));if(!s)continue;r.push({element:c,name:s,cover:X(c.querySelector("img")),path:ti(a,n)});if(r.length>=200)break}return r} o(gp,"cardsFromSelector"); var bp='.title, [class*="-title"]:not([class*="sub-"]), [class*="_title"]:not([class*="sub_"])'; var Va=/\/voddetail\/|\/detail\/[\w-]|\/vod\/detail\/|\/movie\/[\w-]|\/vod\/\d+\.html|\/video\/[\w-]+\.html|\b(?:play|detail|vod|show|video|movie|view)[\w-]*\.php\?[^"'#<>\s]*\b(?:id|vid)=\d+/i; function Ga(t){let e=t;for(let n=0;n<5&&e&&e.tagName!=="BODY";n++){if(e.querySelector("img")){try{if(e.querySelector(bp))return e}catch(i){}const r=String(e.textContent||"").replace(/\s+/g," ").trim();if(r.length<=140)return e}e=e.parentElement}return null} o(Ga,"cardBoxOf"); function yp(t,e){const n=[];const r=new Set;let i;try{i=t.querySelectorAll("a[href]")}catch(c){return n}for(const c of i){if($e(t,c))continue;const a=c.getAttribute("href")||"";if(!Va.test(a))continue;const s=Ga(c);if(!s||r.has(s))continue;r.add(s);const l=ue(Lr(s,c));if(!l)continue;n.push({element:s,name:l,cover:X(s.querySelector("img")),path:ti(c,e)});if(n.length>=200)break}return n} o(yp,"cardsFromLinks"); function xp(t,e){const n=new Map;let r;try{r=t.querySelectorAll("a[href]")}catch(a){return[]}for(const a of r){if($e(t,a))continue;const s=a.getAttribute("href")||"";if(!s||br.test(s))continue;if(!gr(s,e))continue;const l=mr(s);if(!l||l==="/"||l==="#"||l==="/#")continue;if(!hr(l))continue;if(!n.has(l))n.set(l,[]);n.get(l).push(a)}const i=[];const c=new Set;for(const a of n.values()){if(a.length=200)return i}}return i} o(xp,"cardsFromShapeGroups"); var Na=["data-detail","data-href","data-url","data-link","data-play"]; function wp(t,e){const n=[];let r;try{r=t.querySelectorAll(Na.map(i=>"["+i+"]").join(","))}catch(i){return n}for(const i of r){if($e(t,i))continue;let c="";for(const l of Na){const p=String(i.getAttribute(l)||"").trim();if(p){c=p;break}}if(!c||!/^(?:\/|https?:)/i.test(c))continue;if(!Va.test(c))continue;const a=String(i.getAttribute("data-title")||"").replace(/\s+/g," ").trim();const s=ue(a||Lr(i,i));if(!s)continue;n.push({element:i,name:s,cover:X(i.querySelector("img")),path:Ua(c,e)});if(n.length>=200)break}return n} o(wp,"cardsFromDataAttrs"); function Ya(t,e,{contentPage:n=false}={}){const r=t.location?t.location.href:"";let i=e;if(!i){i=yr.find(f=>{try{return t.querySelector(f)}catch(E){return false}})}let c=i?gp(t,i,r):[];const a=!n;if(a){const f=yp(t,r);if(f.length){const E=o(y=>c.some(k=>k.element===y||k.element.contains(y)||y.contains(k.element)),"dup");for(const y of f)if(!E(y.element))c.push(y)}}if(a){const f=wp(t,r);if(f.length){const E=new Set(c.map(y=>y.element));for(const y of f)if(!E.has(y.element))c.push(y)}}if(a&&c.length<6){const f=xp(t,r);if(f.length>c.length){const E=new Set(c.map(y=>y.element));for(const y of f)if(!E.has(y.element))c.push(y)}}const s=new Set(c.map(f=>f.element));const l=o(f=>f===t.body||f===t.documentElement,"isRoot");const p=new Set;for(const f of c){let E=f.element.parentElement;while(E&&!l(E)){if(s.has(E)){p.add(f.element);break}E=E.parentElement}}if(p.size)c=c.filter(f=>!p.has(f.element));for(const f of c){if(f.cover&&mp.test(f.cover))f.cover=""}return c} o(Ya,"extractListCards"); var nn="fb:"; var ei=/^[a-z0-9-]+(\.[a-z0-9-]+)+$/i; var Cr=/(?:版|版本)$|推荐$|^(?:极简|纯净|简洁|无广告|免广告|免费|高清|超清|蓝光|秒播|在线观看|全集|最新|热播)$/i; function Sp(t,e,n){const r=o(f=>!!f&&f.length<=20&&!ei.test(f)&&!/^\d+$/.test(f),"ok");const i=String(t||"").split(/[-–—·・]/).map(f=>f.trim()).filter(Boolean);if(!i.length)return"";const c=i[i.length-1];const a=c.split(/_/).map(f=>f.trim()).filter(Boolean);if(i.length<2&&a.length<2)return"";if(e&&a.length>1){const f=a.find(E=>E===e&&r(E));if(f)return f}let s=a.length>1?a[0]:c;if(Cr.test(s)){for(let f=i.length-2;f>=0;f--){const E=i[f].trim();if(!E||Cr.test(E))continue;s=E;break}}if(n&&s===n)return"";if(r(s))return s;const l=i[0]||"";if(l.indexOf("_")>=0)return"";const p=l.trim();return r(p)?p:""} o(Sp,"siteNameFromTitle"); var Ep=['header a[class*="logo"]','header [class*="logo"]',".logo","#logo",'a[class*="logo"]',"header img[alt]"]; var _p=/^(tabler|bootstrap|tailwind|element|ant design|layui|vue|react|next\.?js|nuxt)$/i; function kp(t){for(const e of Ep){let n;try{n=t.querySelector(e)}catch(a){continue}if(!n)continue;const r=n.querySelector?n.querySelector("img[alt]"):null;const i=String(n.getAttribute&&n.getAttribute("alt")||r&&r.getAttribute("alt")||n.textContent||"").replace(/\s+/g," ").trim();if(!i)continue;const c=i.split(/[-–—|·]/)[0].trim();if(!c||c.length>20||ei.test(c)||_p.test(c))continue;return c}return""} o(kp,"logoNameOf"); function Tp(t,e){let n="";try{const c=t.querySelector('meta[property="og:site_name"]');n=c?String(c.getAttribute("content")||"").trim():""}catch(c){n=""}n=n.replace(/[((][^))]*[))]\s*$/,"").trim();if(n&&n.length<=20&&!ei.test(n))return n;const r=kp(t);const i=String(t.title||"").replace(/\s+/g," ").trim();if(i){let c="";try{const s=je(t,String(location.href||""));if(s==="detail"||s==="play"){const l=t.querySelector("h1");const p=l?String(l.textContent||"").replace(/\s+/g," ").trim():"";if(p&&p.length>=2&&p.length<=60)c=p}}catch(s){}const a=Sp(i,r,c);if(a)return a}if(r&&i&&(r===i||i.indexOf(r)===0||r.indexOf(i)===0)){return r.length<=i.length?r:i}return e} o(Tp,"siteNameOf"); function Ka(){let t="";try{t=String(location.hostname||"").replace(/^www\./,"")}catch(h){return null}if(!t)return null;const e=document;if(!e||!e.body)return null;const n=location.href;const r=o(()=>{try{return location.href}catch(h){return n}},"nowUrl");if(wr(e,{ignoreSpa:je(e,n)!=="other"}))return null;const i=o(()=>{const h=r();return(h.match(/\/vodplay\/(\d+)/i)||h.match(/\/vod\/play\/id\/(\d+)/i)||h.match(/\/play\/(\d+)/i)||h.match(/[?&](?:id|vid)=(\d+)/i)||[])[1]||""},"showIdOf");let c=null;let a=false;let s="";let l=null;let p=0;const f=o(()=>{try{return e.querySelectorAll("a[href]").length}catch(h){return 0}},"countAnchors");const E=o(()=>!!l.length&&l.every(h=>h.element&&h.element.isConnected)&&f()===p,"cardsStillValid");const y=Tp(e,t);const k=o(h=>!h||h===y,"badName");const x=o(()=>{try{return Zo(e,i())}catch(h){return null}},"selfLink");const _=o(()=>{const h=x();if(h&&h.href){try{return new URL(h.href,n).pathname}catch(R){}}const A=g.__family?g.__family():null;if(A&&typeof A.detailFromPlay==="function"){const R=A.detailFromPlay(location.pathname);if(R)return R}return location.pathname+location.search},"playPath");const g={id:nn+t,name:y,domains:[location.hostname],matches:[],include:[],__fallback:true,crossSiteTarget:false,pageType(){const h=r();let A=je(e,h);if(A==="other"&&Mn(e,h))A="list";return A==="list"&&/\/vodsearch\/|\/search\//i.test(h)?"search":A},getDetailInfo(){const h=kr(e,y,r());if(k(h.name))return null;return{name:h.name,cover:za(e,h.name).cover,path:location.pathname+location.search}},getPlayInfo(){const h=kr(e,y,r());if(k(h.name))return null;return{name:h.name,cover:Tr(e).cover,path:_()}},getListCards(){if(l&&E())return l;const h=this.__family();const A=je(e,r());l=Ya(e,h?h.cardSelector:null,{contentPage:A==="play"||A==="detail"});p=f();return l},getPlaybackInfo(){const h=Ha(e,r(),y);return h.label?{episode:h.label}:null},__family(){const h=r();if(!a||s!==h){c=Pa(e,h);a=true;s=h}return c}};const D=g.__family();if(D&&typeof D.searchPath==="function"){g.searchPath=D.searchPath;delete g.crossSiteTarget}return g} o(Ka,"createFallbackAdapter"); var oe=[Ec,_c,kc,Mc,Ic,Pc,Oc]; var Te=void 0; function Ap(t){const e=location.href;return(t.include||[]).some(n=>{const r=/^\/(.*)\/$/.exec(n);if(!r)return false;try{return new RegExp(r[1]).test(e)}catch(i){return false}})} o(Ap,"matchInclude"); var Lp=200; var rn=null; function On(){if(rn)return rn;try{const t=JSON.parse(GM_getValue(vr,"{}"));rn=t&&typeof t==="object"?t:{}}catch(t){rn={}}return rn} o(On,"readSiteNames"); function Cp(t,e){if(!t||!e||e===t.slice(nn.length))return;const n=On();if(n[t]===e)return;if(n[t]===void 0&&Object.keys(n).length>=Lp)return;n[t]=e;try{GM_setValue(vr,JSON.stringify(n))}catch(r){}} o(Cp,"rememberSiteName"); function Wa(){return{...On()}} o(Wa,"exportSiteNames"); function Xa(t){if(!t||typeof t!=="object")return;const e=On();let n=false;Object.keys(t).forEach(r=>{const i=t[r];if(typeof i!=="string"||!i||e[r]===i)return;e[r]=i;n=true});if(!n)return;try{GM_setValue(vr,JSON.stringify(e))}catch(r){}rn=e;oe.forEach(r=>{if(r&&r.__fallback&&e[r.id]&&r.name!==e[r.id])r.name=e[r.id]})} o(Xa,"importSiteNames"); function on(t){if(!t)return null;const e=oe.find(r=>r.id===t);if(e)return e;if(typeof t!=="string"||t.indexOf(nn)!==0)return null;const n=t.slice(nn.length);if(!n)return null;return{id:t,name:On()[t]||n,domains:[n],__fallback:true}} o(on,"findSiteById"); function Mp(){try{if(!Sr()||!Oa(document))return null;const t=Ka();if(!t)return null;const e=On()[t.id];const n=t.id.slice(nn.length);const r=!e||e===n||Cr.test(e);if(e&&!r)t.name=e;oe.push(t);Cp(t.id,t.name);if(!Xo(location.href))ca(n);return t}catch(t){return null}} o(Mp,"resolveFallback"); function Ja(){if(!Te)Te=void 0} o(Ja,"resetCurrentSite"); function mt(){if(Te!==void 0)return Te;const t=location.hostname;const e=oe.find(n=>n.domains.some(r=>lt(r)===lt(t))||Ap(n))||null;if(e){Te=e;ra(e.id,t);return Te}Te=Mp();return Te} o(mt,"getCurrentSite"); var Ct={currentTab:"want",currentPage:{want:1,watched:1,history:1},renderedTabs:new Set,searchKeyword:"",siteFilter:""}; var Ip=location.hostname==="127.0.0.1"||location.hostname==="localhost"; var Pp=typeof __VC_DEV_BUILD__!=="undefined"&&__VC_DEV_BUILD__===true; var Mr=null; function ni(){if(Mr!==null)return Mr;let t=null;try{t=GM_getValue(Bc,null)}catch(e){t=null}Mr=t===null?Ip||Pp:t===true;return Mr} o(ni,"isDebugLogEnabled"); function Rn(...t){if(ni())console.debug(...t)} o(Rn,"debug"); function $(...t){if(ni())console.log(...t)} o($,"log"); function Za(...t){if(ni())console.warn(...t)} o(Za,"warn"); function Ir(...t){console.error(...t)} o(Ir,"error"); var Op={jav:"JAV \u89C6\u9891",drama:"\u5F71\u89C6"}; var Qa=3*1024*1024; var Rp=.9; var Dp=30*1e3; var Np=["element"]; var qp=["addTime"]; function ns(t){return typeof t==="function"||t&&typeof t==="object"&&typeof t.nodeType==="number"} o(ns,"isRuntimeValue"); function oi(t){return Np.indexOf(t)>=0||qp.indexOf(t)>=0} o(oi,"isDroppedField"); function ri(t){if(!t||typeof t!=="object")return t;let e=false;const n={};Object.keys(t).forEach(r=>{const i=t[r];if(oi(r)){e=true;return}if(ns(i)){e=true;return}n[r]=i});return e?n:t} o(ri,"sanitizeItem"); function ts(t,e){const n=e.map(i=>t[i]===void 0?"":t[i]);const r={};Object.keys(t).forEach(i=>{if(e.indexOf(i)>=0||oi(i))return;if(ns(t[i]))return;r[i]=t[i]});if(Object.keys(r).length)n.push(r);return n} o(ts,"encodeItem"); function es(t,e){if(!Array.isArray(t))return ri(t);const n={};e.forEach((i,c)=>{const a=t[c];if(a!==""&&a!==void 0&&a!==null)n[i]=a});const r=t[e.length];if(r&&typeof r==="object"){Object.keys(r).forEach(i=>{if(!oi(i))n[i]=r[i]})}return n} o(es,"decodeItem"); function cn(t){try{return Xe(t)}catch(e){return 0}} o(cn,"jsonBytes"); function rs({storageKey:t,backupFileName:e,moduleId:n,itemIdField:r,itemFields:i,showAlert:c,confirmExport:a,chooseImportStrategy:s,playbackLoadFn:l,playbackSaveFn:p,ratingsLoadFn:f,ratingsSaveFn:E,prefsLoadFn:y,prefsSaveFn:k,siteNamesLoadFn:x,siteNamesSaveFn:_,budgetKeys:g,reclaimRatingsFn:D,onBudgetNotice:h}){const A=300;let R=null;let P=0;let L=0;let d=0;function S(w){return{want:[...w.want||[]],watched:[...w.watched||[]]}}o(S,"snapshot");function b(w){return{want:(w.want||[]).map(I=>ts(I,i)),watched:(w.watched||[]).map(I=>ts(I,i))}}o(b,"packLists");function C(w){return{want:(w&&w.want||[]).map(I=>es(I,i)),watched:(w&&w.watched||[]).map(I=>es(I,i))}}o(C,"unpackLists");function F(){const w=Date.now();if(R&&w-R.atU+w[z],0);P=I;L=w.\u6536\u85CF||0;d=Date.now();return{parts:w,total:I,budget:Qa}}o(H,"usage");const ct=["\u8BC4\u5206\u7F13\u5B58","\u56FE\u7247\u7F13\u5B58"];function N(){return Object.keys(H().parts).filter(w=>ct.indexOf(w)<0)}o(N,"keptNames");function j(){const w=H();if(w.total<=w.budget)return w;if(D){const I=D(Math.floor(w.budget*Rp))||{};if(I.removed>0){const U=H();$("[\u5B58\u50A8] \u6570\u636E "+Ut(w.total)+" \u8D85\u8FC7\u9884\u7B97 "+Ut(w.budget)+"\uFF0C\u5DF2\u56DE\u6536 "+I.removed+" \u6761\u8BC4\u5206\u7F13\u5B58\uFF08\u6309\u91CD\u5EFA\u6210\u672C\u4ECE\u4F4E\u5230\u9AD8\uFF1A\u67E5\u4E0D\u5230 \u2192 \u7AD9\u70B9\u76F4\u8BFB \u2192 \u63A5\u53E3\uFF09\uFF0C\u73B0\u5728 "+Ut(U.total)+"\uFF1B"+N().join("\u4E0E")+"\u672A\u52A8");if(h)h("\u5B58\u50A8\u63A5\u8FD1\u4E0A\u9650\uFF0C\u5DF2\u56DE\u6536 "+I.removed+" \u6761\u8BC4\u5206\u7F13\u5B58\uFF08"+N().join("\u4E0E")+"\u672A\u52A8\uFF09");if(U.total<=w.budget)return U}}$("[\u5B58\u50A8] \u6570\u636E "+Ut(w.total)+" \u8D85\u8FC7\u9884\u7B97 "+Ut(w.budget)+"\uFF1A"+(D?"\u8BC4\u5206\u7F13\u5B58\u5DF2\u5C3D\u91CF\u56DE\u6536\uFF0C":"")+N().join("\u4E0E")+"\u4E0D\u4F1A\u81EA\u52A8\u5220\u9664\uFF0C\u8BF7\u5BFC\u51FA\u5907\u4EFD\u540E\u6E05\u7406");if(h)h("\u5B58\u50A8\u5DF2\u8D85\u4E0A\u9650\uFF0C\u8BF7\u5BFC\u51FA\u5907\u4EFD\u540E\u6E05\u7406\u90E8\u5206\u5185\u5BB9\uFF08"+N().join("\u4E0E")+"\u4E0D\u4F1A\u88AB\u81EA\u52A8\u5220\u9664\uFF09");return H()}o(j,"enforceBudget");function J(w){const I=H();if(I.total<=I.budget)return I;$("[\u5B58\u50A8] "+w+"\u540E\u6570\u636E "+Ut(I.total)+" \u8D85\u8FC7\u9884\u7B97 "+Ut(I.budget)+"\uFF1A\u8D85\u51FA\u90E8\u5206\u4E0D\u4F1A\u81EA\u52A8\u5220\u9664\uFF08"+N().join("\u4E0E")+"\u59CB\u7EC8\u4FDD\u7559\uFF09\uFF0C\u53EF\u5BFC\u51FA\u5907\u4EFD\u540E\u6E05\u7406");if(h)h(w+"\u540E\u6570\u636E "+Ut(I.total)+" \u8D85\u8FC7\u9884\u7B97 "+Ut(I.budget)+"\uFF0C"+N().join("\u4E0E")+"\u4E0D\u4F1A\u88AB\u81EA\u52A8\u5220\u9664");return I}o(J,"reportBudget");function gt(w,I){const U={want:(w.want||[]).map(ri),watched:(w.watched||[]).map(ri)};let z="";try{z=JSON.stringify(b(U))}catch(it){R=null;c("\u4FDD\u5B58\u5931\u8D25\uFF1A\u6570\u636E\u4E2D\u5B58\u5728\u65E0\u6CD5\u5E8F\u5217\u5316\u7684\u5185\u5BB9");return false}try{GM_setValue(t,z);R={data:U,at:Date.now()}}catch(it){R=null;c("\u4FDD\u5B58\u5931\u8D25\uFF1A\u5B58\u50A8\u7A7A\u95F4\u4E0D\u8DB3\uFF0C\u8BF7\u5148\u5BFC\u51FA\u5907\u4EFD\u5E76\u6E05\u7406\u90E8\u5206\u6536\u85CF");return false}if(!(I&&I.skipBudget))_t(cn(z));return true}o(gt,"saveData");function _t(w){const I=P-L+w;if(I{const Q=it[at];if(!Q||typeof Q!=="object"||!Q.score)return;if(U!=="local"||!z[at])z[at]=Q});return z}o(bt,"mergeRatings");function Rt(w){if(Array.isArray(w.playback))return w.playback;return Array.isArray(w.history)?w.history:null}o(Rt,"readPlaybackOf");function st(w){return w.ratings&&typeof w.ratings==="object"?w.ratings:null}o(st,"readRatingsOf");function se(w){return w.prefs&&typeof w.prefs==="object"?w.prefs:null}o(se,"readPrefsOf");function Wt(w){return w.siteNames&&typeof w.siteNames==="object"?w.siteNames:null}o(Wt,"readSiteNamesOf");function Dt(w,I,U){if(U==="replace")return{...I||{}};const z={...w||{}};Object.keys(I||{}).forEach(it=>{if(U==="local"&&Object.prototype.hasOwnProperty.call(z,it))return;z[it]=I[it]});return z}o(Dt,"mergePrefs");async function Xt(){const w=F();const I={module:n,schema:3,want:w.want,watched:w.watched};if(l)I.playback=l();if(f)I.ratings=f();if(y)I.prefs=y();if(x)I.siteNames=x();const U=I.want.length+I.watched.length;const z=I.playback?I.playback.length:0;const it=I.ratings?Object.keys(I.ratings).length:0;if(!U&&!z){c("\u6682\u65E0\u53EF\u5BFC\u51FA\u7684\u6536\u85CF\u6570\u636E");return}const at=[`\u5171 ${U} \u6761\u6536\u85CF`,z?`${z} \u6761\u89C2\u770B\u8BB0\u5F55`:"",it?`${it} \u6761\u8BC4\u5206\u7F13\u5B58`:""].filter(Boolean).join("\u3001");if(a&&!await a(`\u786E\u5B9A\u5BFC\u51FA\u6536\u85CF\u5907\u4EFD\u5417\uFF1F${at}\uFF0C\u5C06\u4E0B\u8F7D\u4E3A JSON \u6587\u4EF6`))return;const Q=new Blob([JSON.stringify(I,null,2)],{type:"application/json"});const ft=URL.createObjectURL(Q);const rt=document.createElement("a");rt.href=ft;rt.download=`${e}_${new Date().toLocaleDateString().replace(/\//g,"-")}.json`;rt.click();URL.revokeObjectURL(ft)}o(Xt,"exportData");function kt(w){return!!w&&typeof w==="object"&&w[r]!==void 0&&w[r]!==null&&w[r]!==""}o(kt,"isValidItem");function le(w){if(!w||!Array.isArray(w.want)||!Array.isArray(w.watched)){return"\u6587\u4EF6\u683C\u5F0F\u4E0D\u6B63\u786E"}if(w.module&&w.module!==n){return`\u8BE5\u5907\u4EFD\u5C5E\u4E8E\u300C${Op[w.module]||w.module}\u300D\u6A21\u5757\uFF0C\u4E0D\u80FD\u5BFC\u5165\u5230\u5F53\u524D\u6A21\u5757`}const I=w.want[0]||w.watched[0];if(I&&!(r in I)){return"\u5907\u4EFD\u6570\u636E\u4E0E\u5F53\u524D\u6A21\u5757\u4E0D\u5339\u914D\uFF0C\u8BF7\u68C0\u67E5\u6587\u4EF6"}return""}o(le,"validateImported");function q(w,I,U){const z=[...w];const it=new Map(z.map((at,Q)=>[at[r],Q]));for(const at of I){if(!kt(at))continue;const Q=at[r];if(it.has(Q)){if(U==="import")z[it.get(Q)]=at}else{z.push(at);it.set(Q,z.length-1)}}return z}o(q,"mergeList");function wt(w,I,U){const z={added:0,duplicates:0,errors:0};if(U==="replace"){const at=o(Q=>Q.filter(ft=>kt(ft)?(z.added++,true):(z.errors++,false)),"clean");return{data:{want:at(I.want),watched:at(I.watched)},stats:z}}const it=o((at,Q)=>{const ft=[];for(const T of Q){if(kt(T))ft.push(T);else z.errors++}const rt=q(at,ft,U);const It=rt.length-at.length;z.added+=It;z.duplicates+=ft.length-It;return rt},"mergeOne");return{data:{want:it(w.want,I.want),watched:it(w.watched,I.watched)},stats:z}}o(wt,"buildMergedData");function Tt(w,I){const U=[I==="replace"?`\u5BFC\u5165 ${w.added} \u6761\u6536\u85CF`:`\u65B0\u589E ${w.added} \u6761\uFF0C\u91CD\u590D ${w.duplicates} \u6761`];if(w.errors)U.push(`\u8DF3\u8FC7\u9519\u8BEF ${w.errors} \u6761`);if(w.playback!=null)U.push(`${w.playback} \u6761\u89C2\u770B\u8BB0\u5F55`);if(w.ratings!=null)U.push(`${w.ratings} \u6761\u8BC4\u5206\u7F13\u5B58`);if(w.prefs!=null)U.push(`${w.prefs} \u9879\u8BBE\u7F6E`);if(w.siteNames!=null)U.push(`${w.siteNames} \u4E2A\u7AD9\u540D`);return`\u5BFC\u5165\u5B8C\u6210\uFF1A${U.join("\uFF0C")}`}o(Tt,"formatResult");function Jt(w){const I=document.createElement("input");I.type="file";I.accept="application/json";I.onchange=U=>{const z=U.target.files[0];if(!z)return;const it=new FileReader;it.onload=async at=>{try{const Q=JSON.parse(at.target.result);const ft=le(Q);if(ft){c(ft);return}const rt=await s();if(!rt)return;const It=F();const{data:T,stats:G}=wt(It,Q,rt);gt(T,{skipBudget:true});const V=Rt(Q);if(l&&p&&V){const pt=rt==="replace"?V.filter(kt):q(l(),V,rt);p(pt);G.playback=pt.length}const Z=st(Q);if(f&&E&&Z){const pt=bt(f(),Z,rt);E(pt);G.ratings=Object.keys(pt).length}const ot=se(Q);if(y&&k&&ot){const pt=Dt(y(),ot,rt);k(pt);G.prefs=Object.keys(pt).length}const St=Wt(Q);if(x&&_&&St){const pt={...St,...x()||{}};_(pt);G.siteNames=Object.keys(pt).length}J("\u5BFC\u5165");if(w)w();c(Tt(G,rt))}catch(Q){c("\u6587\u4EF6\u89E3\u6790\u5931\u8D25")}};it.readAsText(z)};I.click()}o(Jt,"importData");return{loadData:F,saveData:gt,exportData:Xt,importData:Jt,usageInfo:H,enforceBudget:j}} o(rs,"createStorageHelper"); var cs=new Set(["video","audio"]); var Fp=1e3; var Pr=null; var os=0; function ci(t){const e=[];if(!t||typeof t.querySelectorAll!=="function")return e;t.querySelectorAll("*").forEach(n=>{if(n.tagName.indexOf("-")<0)return;const r=n.shadowRoot;if(!r)return;cs.forEach(i=>r.querySelectorAll(i).forEach(c=>e.push(c)))});return e} o(ci,"queryShadowMediaIn"); function Bp(t,e){const n=o(c=>e==="video"?c.filter(a=>a.tagName==="VIDEO"):e==="audio"?c.filter(a=>a.tagName==="AUDIO"):c,"pick");const r=Pr?Pr.filter(c=>c.isConnected):[];if(r.length)return n(r);if(Date.now()e.push(a));c.querySelectorAll("iframe").forEach(a=>{try{const s=a.contentDocument;if(s&&!i.has(s)){i.add(s);r.push(s)}}catch(s){}})}if(!e.length&&cs.has(t))return Bp(n,t);return e} o(ie,"queryAllInFrames"); function Or(){const t=ie("video")[0]||null;if(!t)return{video:null,frame:null};let e=null;try{e=t.ownerDocument.defaultView.frameElement||null}catch(n){e=null}return{video:t,frame:e}} o(Or,"findPlayerVideo"); function as(t){if(!t||typeof t.focus!=="function")return false;if(t.tabIndex<0&&!t.hasAttribute("tabindex"))t.tabIndex=-1;try{t.focus({preventScroll:true})}catch(e){return false}return t.ownerDocument.activeElement===t} o(as,"focusEl"); function jp(t){const e=t.getBoundingClientRect();return e.width>=200&&e.height>=120} o(jp,"isVisibleFrame"); function $p(t){try{return!t.contentDocument}catch(e){return true}} o($p,"isCrossOriginFrame"); function ii(t){let e=null;let n=0;t.forEach(r=>{const i=r.getBoundingClientRect();const c=i.width*i.height;if(c>n){n=c;e=r}});return e} o(ii,"largestOf"); function an(t){const e=Array.from(document.querySelectorAll("iframe")).filter(jp);if(!e.length)return null;if(t){const i=e.filter(c=>{try{return c.matches(t)}catch(a){return false}});if(i.length)return ii(i)}const n=e.filter(i=>/player|play\.php|\/vod\//i.test(i.getAttribute("src")||""));if(n.length)return ii(n);const r=e.filter($p);return ii(r.length?r:e)} o(an,"pickPlayerFrame"); function is(t){if(!t)return false;const e=as(t);try{t.contentWindow.focus()}catch(n){}return e||document.activeElement===t} o(is,"focusFrame"); function Dn(t,{force:e=false}={}){const n=document.activeElement;if(n&&n!==document.body&&n!==document.documentElement){if(!e||n.tagName!=="IFRAME")return false}const{video:r,frame:i}=Or();if(i)return is(i);if(r)return as(r);return is(an(t))} o(Dn,"focusPlayer"); var ai=false; function ss(){ai=true} o(ss,"markVolumeTouched"); function ls(){ai=false} o(ls,"resetVolumeTouched"); function Rr(){return ai} o(Rr,"isVolumeTouched"); function ze(t,e,{unmute:n=false}={}){const r=Math.max(0,Math.min(1,Math.round(Number(e)*100)/100));t.volume=r;if(n&&t.muted)t.muted=false;return r} o(ze,"setVideoVolume"); var zp=500; var Hp=24; var Nn=null; function us(t){Nn=typeof t==="function"?t:null} o(us,"setRemoteVolume"); function ds(t){if(Rr())return 0;const e=ie("video");let n=0;e.forEach(r=>{try{ze(r,t,{unmute:false});n++}catch(i){}});if(Nn){try{if(Nn(t)!==false)n++}catch(r){}}return n} o(ds,"applyVolumeNow"); function fs({getVolume:t}){let e=null;let n=0;let r=false;let i=false;const c=new Set;const a=o(()=>s(i),"onPlay");function s(E){const y=t();if(!(y>=0))return 0;const k=ie("video");let x=0;k.forEach(_=>{if(!c.has(_)){c.add(_);try{_.addEventListener("play",a)}catch(g){}}try{ze(_,y,{unmute:E});x++}catch(g){}});if(Nn){try{if(Nn(y)!==false)x++}catch(_){}}return x}o(s,"apply");function l(){if(i)return;i=true;if(!Rr())s(true);p()}o(l,"onGesture");function p(){window.removeEventListener("pointerdown",l,true);window.removeEventListener("keydown",l,true)}o(p,"removeGestureListeners");function f(){if(!e)return;clearInterval(e);e=null}o(f,"stopPolling");return{start(){if(r)return;r=true;n=0;window.addEventListener("pointerdown",l,true);window.addEventListener("keydown",l,true);s(false);f();e=setInterval(()=>{n++;if(Rr()){f();return}s(i);if(n>=Hp)f()},zp)},stop(){if(!r)return;r=false;f();p();c.forEach(E=>{try{E.removeEventListener("play",a)}catch(y){}});c.clear()}}} o(fs,"createVolumeSync"); var te={favPeekOpacity:{key:"video_collector_ui_fav_peek_opacity",def:55,min:10,max:100,step:5},favSize:{key:"video_collector_ui_fav_size",def:"small"},favMark:{key:"video_collector_ui_fav_mark",def:true},ratingRemote:{key:"video_collector_ui_rating_remote",def:true},xjumpOpacity:{key:"video_collector_ui_xjump_opacity",def:100,min:0,max:100,step:5},xjumpSize:{key:"video_collector_ui_xjump_size",def:"large"},volume:{key:"video_collector_ui_volume",def:100,min:0,max:100,step:5}}; var ps="vc-ui-style"; function $t(t){const e=te[t];const n=GM_getValue(e.key,e.def);if(typeof e.def==="boolean")return n===true;if(e.min!=null){const r=Number(n);return Number.isFinite(r)?Math.min(e.max,Math.max(e.min,r)):e.def}return n==="small"?"small":"large"} o($t,"getUiSetting"); function Ae(){const t=Number($t("favPeekOpacity"))/100;const e=Number($t("xjumpOpacity"))/100;let n=document.getElementById(ps);if(!n){n=document.createElement("style");n.id=ps;(document.head||document.documentElement).appendChild(n)}n.textContent=`:root{--vc-fav-peek-opacity:${t};--vc-xjump-opacity:${e};}`;document.documentElement.classList.toggle("vc-fav-sm",$t("favSize")==="small");document.documentElement.classList.toggle("vc-fav-nomark",$t("favMark")===false);document.documentElement.classList.toggle("vc-xjump-sm",$t("xjumpSize")==="small")} o(Ae,"applyUiStyles"); function vs(t){GM_setValue(te.favPeekOpacity.key,Number(t));Ae()} o(vs,"setFavPeekOpacity"); function ms(t){GM_setValue(te.favSize.key,t);Ae()} o(ms,"setFavSize"); function hs(t){GM_setValue(te.favMark.key,t===true);Ae()} o(hs,"setFavMark"); function si(){return $t("ratingRemote")!==false} o(si,"getRatingRemote"); function gs(t){GM_setValue(te.ratingRemote.key,t===true)} o(gs,"setRatingRemote"); function bs(t){GM_setValue(te.xjumpOpacity.key,Number(t));Ae()} o(bs,"setXjumpOpacity"); function ys(t){GM_setValue(te.xjumpSize.key,t);Ae()} o(ys,"setXjumpSize"); function Dr(t){const e=Math.round(Number(t));GM_setValue(te.volume.key,e);ls();ds(e/100)} o(Dr,"setVolume"); function xs(){const t={};Object.keys(te).forEach(e=>{t[te[e].key]=$t(e)});return t} o(xs,"exportUiSettings"); function ws(t){if(!t||typeof t!=="object")return;let e=false;Object.keys(te).forEach(n=>{const r=te[n].key;if(!Object.prototype.hasOwnProperty.call(t,r))return;GM_setValue(r,t[r]);e=true});if(e)Ae()} o(ws,"importUiSettings"); var Ss=`.ad-box, .bcpic2 { display: none !important; } iframe[src*="jads.co"], iframe[src*="adshow.php"] { display: none !important; } .topbanner1, #topbanner11 { display: none !important; } .sidebanner1, #sidebanner11 { display: none !important; } #middlebanner11, #middletextbanner { display: none !important; } #float-ad { display: none !important; } #fuck-u { display: none !important; } .artplayer-plugin-ads { display: none !important; } .t-img-box, #iaujwnefhw { display: none !important; } .mi_btcon.ad, .module-adslist, .ads_w, .footerad, .right-ad, .close-ads, .gg-icon { display: none !important; } a[data-gaze-ad-banner], a[href*="ad.wyspg.com"] { display: none !important; } [class*="video-ad-pause__Container"], .play-ad, .ad-row, .ec-ad, .ec-ad-double, .small-icon-container, a[href*="mitnpkwxvfr.com"], a[href*="taiee.xyz"] { display: none !important; } .site-promo-card, a[href*="mitnpkwxvfr.com"] { display: none !important; }`; var Le="video_collector_adblock"; var Vp="adBlockEnabled"; var Es=false; function Gp(){if(Es)return;Es=true;try{if(GM_getValue(Le,null)!==null)return;const t=GM_getValue(Vp,null);if(t!==null)GM_setValue(Le,!!t)}catch(t){}} o(Gp,"migrateLegacyKey"); function Nr(){Gp();return GM_getValue(Le,true)} o(Nr,"isAdBlockEnabled"); function qr(){const t="vc-adblock-style";if(!Nr()){const r=document.getElementById(t);if(r)r.remove();return}if(document.getElementById(t))return;const e=document.createElement("style");e.id=t;e.textContent=Ss;const n=o(()=>{const r=document.head||document.documentElement;if(r){r.appendChild(e);return true}return false},"tryInject");if(!n()){const r=new MutationObserver(()=>{if(n())r.disconnect()});try{r.observe(document,{childList:true,subtree:true})}catch(i){requestAnimationFrame(n)}setTimeout(()=>r.disconnect(),3e3)}} o(qr,"applyAdBlock"); function _s(t){GM_setValue(Le,!!t);qr()} o(_s,"setAdBlockEnabled"); function ks(){return{[Le]:Nr()}} o(ks,"exportAdblock"); function Ts(t){if(!t||typeof t!=="object")return;if(!Object.prototype.hasOwnProperty.call(t,Le))return;GM_setValue(Le,!!t[Le]);qr()} o(Ts,"importAdblock"); var Yp=15e3; function As(t,e){return new Promise(n=>{const r=o(i=>{Za("[\u5F71\u89C6\u6536\u85CF] \u5C01\u9762\u6293\u53D6\u5931\u8D25\uFF1A",i,t);n(null)},"fail");try{GM_xmlhttpRequest({method:"GET",url:t,headers:e?{Referer:e}:{},responseType:"arraybuffer",timeout:Yp,onload:o(i=>{const c=i.response;if(!c||i.status&&i.status>=400){r(i.status);return}try{n(new Blob([c]))}catch(a){r("Blob \u6784\u9020\u5931\u8D25")}},"onload"),onerror:o(()=>r("\u7F51\u7EDC\u9519\u8BEF"),"onerror"),ontimeout:o(()=>r("\u8D85\u65F6"),"ontimeout")})}catch(i){n(null)}})} o(As,"fetchImageBlob"); function Fr(t){return(t||"").replace(/^http:\/\//i,"https://")} o(Fr,"toHttps"); function Gt(t,e){const n=t||"";if(!n||/^[a-z][a-z0-9+.-]*:/i.test(n))return n;try{return new URL(n,e||location.href).href}catch(r){return n}} o(Gt,"toAbsoluteUrl"); var Ls=`
`; var Cs=`
选择导入方式
`; function Ms(){const t=document.createElement("div");t.className="vc-confirm-mask";t.innerHTML=Ls;document.body.appendChild(t);requestAnimationFrame(()=>t.classList.add("vc-show"));function e(){t.classList.remove("vc-show");setTimeout(()=>t.remove(),150)}o(e,"close");return{mask:t,close:e}} o(Ms,"createModal"); function Ce(t,{danger:e=false}={}){return new Promise(n=>{const{mask:r,close:i}=Ms();r.querySelector(".vc-confirm-text").textContent=t;if(e)r.querySelector(".vc-confirm-ok").classList.add("vc-danger");function c(a){i();n(a)}o(c,"finish");r.querySelector(".vc-confirm-cancel").onclick=()=>c(false);r.querySelector(".vc-confirm-ok").onclick=()=>c(true);r.onclick=a=>{if(a.target===r)c(false)}})} o(Ce,"showConfirm"); function Is(t){return new Promise(e=>{const{mask:n,close:r}=Ms();n.querySelector(".vc-confirm-text").textContent=t;n.querySelector(".vc-confirm-cancel").style.display="none";n.querySelector(".vc-confirm-ok").onclick=()=>{r();e()};n.onclick=i=>{if(i.target===n){r();e()}}})} o(Is,"showAlert"); function Ps(){return new Promise(t=>{const e=document.createElement("div");e.className="vc-confirm-mask";e.innerHTML=Cs;document.body.appendChild(e);requestAnimationFrame(()=>e.classList.add("vc-show"));function n(r){e.classList.remove("vc-show");setTimeout(()=>e.remove(),150);t(r)}o(n,"close");e.querySelectorAll(".vc-import-option").forEach(r=>{r.onclick=()=>n(r.dataset.vcStrategy)});e.querySelector(".vc-confirm-cancel").onclick=()=>n(null);e.onclick=r=>{if(r.target===e)n(null)}})} o(Ps,"showImportStrategyDialog"); var Os=2e3; var Rs=2e3; var Ds=4e3; var Ns=8e3; var qs=60; var Fs=8; var Bs=1e4; var js=1e4; var Xp=''; function Jp(t){let e=0;for(const n of String(t||"")){const r=n.codePointAt(0);const i=r>=11904&&r<=40959||r>=63744&&r<=64255||r>=65280&&r<=65376||r>=12288&&r<=12351;e+=i?1:.5}return Math.ceil(e)} o(Jp,"readableLength"); function Zp(t,{tone:e="info",duration:n=0,clickable:r=false}={}){const i=Number(n);if(Number.isFinite(i)&&i>0)return i;const c=e==="error"?Ns:e==="warn"?Ds:e==="ok"?Rs:Os;const a=Math.max(0,Jp(t)-Fs)*qs;const s=Math.min(Bs,c+a);return r?Math.max(s,js):s} o(Zp,"toastDuration"); function nt(t,{tone:e="info",duration:n=0,icon:r="",variant:i="",emphasis:c="",onClick:a=null,linkText:s=""}={}){let l=document.querySelector(".vc-toast");if(!l){l=document.createElement("div");l.className="vc-toast";l.innerHTML=` ${Xp} `;l.querySelector(".vc-toast-close").addEventListener("click",()=>{l.classList.remove("vc-show")});l.addEventListener("click",k=>{if(k.target.closest(".vc-toast-close"))return;if(typeof l._onClick!=="function")return;const x=l._onClick;l._onClick=null;l.classList.remove("vc-toast-clickable");l.classList.remove("vc-show");x()});document.body.appendChild(l)}l._onClick=typeof a==="function"?a:null;l.classList.toggle("vc-toast-clickable",!!l._onClick);l.classList.remove("vc-show");void l.offsetWidth;l.classList.toggle("vc-toast-primary",i==="primary");l.querySelector(".vc-toast-icon").style.display=r==="play"?"":"none";const p=l.querySelector(".vc-toast-text");const f=[];const E=o((k,x)=>{const _=k?t.indexOf(k):-1;if(_>=0)f.push({at:_,len:k.length,cls:x})},"mark");E(c,"vc-toast-emph");E(s,"vc-toast-link");f.sort((k,x)=>k.at-x.at);p.textContent="";if(!f.length){p.textContent=t}else{let k=0;f.forEach(x=>{if(x.atk)p.append(document.createTextNode(t.slice(k,x.at)));const _=document.createElement("span");_.className=x.cls;_.textContent=t.slice(x.at,x.at+x.len);p.append(_);k=x.at+x.len});if(kl.classList.remove("vc-show"),y)} o(nt,"showToast"); var Me=24*60*60*1e3; var $s=[30*Me,60*Me]; var jr=Infinity; var Xs=90*Me; var Qp=3; var pi=2*Me; var tv=3*Me; var ev=1*Me; var nv=45*1e3; var li=5*60*1e3; var zs=3; var Hs=[20*60*1e3,2*60*60*1e3,6*60*60*1e3,24*60*60*1e3]; var rv=24*60*60*1e3; var ov=3; var jn=24; var vi=10*60*1e3; var $r=30; var iv=1; var cv=8e3; var av=4e3; var Js=1e4; var sn=3; var Us=24; var ee=null; var dt=[]; var $n=new Map; var ui=new Set; var Mt=new Set; var Fn=0; var Bn=null; var Br=0; var ln=0; var Vs=false; var di=null; function Zs(t){di=t} o(Zs,"setBudgetGuard"); function Ie(){let t=null;try{t=JSON.parse(GM_getValue(jo,""))||null}catch(e){t=null}if(!t||typeof t.until!=="number"){return{until:0,kind:"soft",level:0,reason:"",at:0}}if(t.level&&Date.now()-(t.at||0)>rv){t={until:0,kind:t.kind,level:0,reason:t.reason,at:t.at}}return t} o(Ie,"loadBlock"); function mi(t){try{GM_setValue(jo,JSON.stringify(t))}catch(e){}} o(mi,"commitBlock"); function fi(t,e,n,r){const i=Date.now();mi({until:i+n,kind:t,level:e,reason:r,at:i});if(t==="soft")sl()} o(fi,"applyBlock"); function Qs(t){const e=Ie();return e.kind===t?e.level:0} o(Qs,"baseLevel"); function tl(t){return typeof t==="string"&&t.length>0&&Xc.test(t)} o(tl,"isBlockPage"); function Yt(){if(ee)return ee;try{ee=JSON.parse(GM_getValue(tn,"{}"))||{}}catch(t){ee={}}if(!Vs){Vs=true;let t=0,e=0;const n=Date.now();Object.keys(ee).forEach(r=>{const i=ee[r];if(!i||!i.miss)return;if(i.v!==sn){delete ee[r];t++;return}if(n-(i.ts||0)>=pi){delete ee[r];e++}});if(t){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u6E05\u7406 "+t+' \u6761\u65E7\u6570\u636E\u6E90\u7559\u4E0B\u7684"\u672A\u547D\u4E2D"\u7F13\u5B58\uFF0C\u4F1A\u91CD\u65B0\u67E5\u4E00\u6B21')}if(e){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u6E05\u7406 "+e+' \u6761\u5DF2\u8FC7\u51B7\u5374\u671F\u7684"\u672A\u547D\u4E2D"\u7F13\u5B58')}if(t||e)be(ee)}return ee} o(Yt,"load"); function be(t){ee=t;try{GM_setValue(tn,JSON.stringify(t))}catch(e){}if(di)di()} o(be,"commit"); var Gs=500; function sv(t){try{return Xe(JSON.stringify(t))}catch(e){return 0}} o(sv,"storeBytes"); function el(t){const e=Yt();let n=sv(e);if(n<=t)return{removed:0,bytes:n};const r=Date.now();const i=[],c=[],a=[];Object.keys(e).forEach(p=>{const f=e[p];if(!f)return;if(f.miss){if(r-(f.ts||0)>=pi)i.push(p);return}if(f.src==="dom")c.push(p);else a.push(p)});const s=o((p,f)=>(e[p].ts||0)-(e[f].ts||0),"byOldest");i.sort(s);c.sort(s);a.sort(s);let l=0;for(const p of[i,c,a]){for(const f of p){if(n<=t||l>=Gs)break;try{n-=Xe(f)+Xe(JSON.stringify(e[f]))+3}catch(E){n-=60}delete e[f];l++}if(n<=t||l>=Gs)break}if(l)be(e);return{removed:l,bytes:n}} o(el,"reclaimRatings"); function nl(t,e){const n=Number(t),r=Number(e);return n>0&&n===r} o(nl,"sameScore"); function zn(t){if(!t)return 0;if(t.norate)return tv;if(!t.score)return 0;if(t.src==="dom")return(t.n||0)>=Qp?jr:Xs;const e=(t.n||1)-1;return e<$s.length?$s[e]:jr} o(zn,"ttlOf"); function hi(t){if(!t)return null;const e=Yt()[Y(t)];if(!e||e.miss)return null;const n=Ur(e.url,e.did);if(!n||n===e.url)return e;return{...e,url:n}} o(hi,"getRating"); function rl(t){const e=hi(t);if(!e)return false;return Date.now()-(e.ts||0)>=zn(e)} o(rl,"isStale"); function ol(){return Yt()} o(ol,"loadRatingMap"); function il(t){be(t||{})} o(il,"saveRatingMap"); function gi(t){return"https://search.douban.com/movie/subject_search?search_text="+encodeURIComponent(t||"")} o(gi,"searchUrlOf"); function Hr(t){return t?"https://movie.douban.com/subject/"+t+"/":""} o(Hr,"subjectUrlOf"); var lv=/^https?:\/\/movie\.douban\.com\/(?:subject|movie|tv)\/(\d+)\/?$/; var uv=/\/(?:subject|movie|tv)\/(\d{4,})/; function Ur(t,e){const n=String(t||"").trim();if(/^https:\/\/movie\.douban\.com\/subject\/\d+\/?$/.test(n))return n;const r=n.match(lv)||n.match(/^(\d{4,})$/)||n.match(uv);return Hr(r&&r[1]||e)} o(Ur,"sanitizeDoubanUrl"); function cl(){ee={};const t=Ie();if(t.until>Date.now()&&t.kind==="hard"){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u672C\u673A\u6B63\u88AB\u8C46\u74E3\u62E6\u4E0B\uFF08"+(t.reason||"HTTP 403")+"\uFF09\uFF0C\u8FD8\u6709 "+Math.ceil((t.until-Date.now())/6e4)+" \u5206\u949F\u81EA\u52A8\u6062\u590D \u2014\u2014 \u6E05\u9664\u7F13\u5B58\u4E0D\u4F1A\u63D0\u524D\u653E\u884C")}else{mi({until:0,kind:"soft",level:0,reason:"",at:t.at})}clearTimeout(Bn);Bn=null;Mt.clear();ln=0;try{GM_setValue(dr,"[]")}catch(e){}try{GM_setValue(tn,"{}")}catch(e){}} o(cl,"clearRatingCache"); function dv(t){const e=Yt();e[Y(t)]={miss:true,ts:Date.now(),v:sn};be(e);zt(t,null)} o(dv,"markMiss"); function fv(t,e){const n=Yt();const r=Y(t);const i=n[r];const c=e&&e.id?String(e.id):"";const a={score:"",title:e&&e.title||t,url:Ur(e&&e.url,c)||Hr(c)||gi(t),ts:Date.now(),miss:false,norate:true,v:sn,src:"api"};if(c)a.did=c;else if(i&&i.did)a.did=i.did;n[r]=a;be(n);zt(t,n[r])} o(fv,"markNoRate"); function al(t,e){return bi([{name:t,rating:e}])} o(al,"putSiteRating"); function bi(t){const e=(t||[]).filter(s=>s&&s.name&&s.rating);if(!e.length)return 0;const n=Yt();let r=0;let i=0;let c=0;const a=[];e.forEach(s=>{const l=pv(n,s.name,s.rating);if(l==="score"){r++;a.push(s.name)}else if(l==="flag"){i++}else if(l==="id"){c++}});if(!r&&!i&&!c)return 0;be(n);if(r){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u7AD9\u70B9\u81EA\u5E26 "+r+" \u6761\uFF1A"+a.slice(0,6).map(s=>s+" \u2192 "+n[Y(s)].score).join("\uFF0C")+(a.length>6?" \u7B49":""))}if(c){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A"+c+" \u6761\u7AD9\u70B9\u9875\u9762\u6CA1\u5370\u5206\uFF0C\u4F46\u7ED9\u4E86\u8C46\u74E3\u6761\u76EE \u2014\u2014 \u6253\u5F00\u9762\u677F\u65F6\u6309\u6761\u76EE\u7CBE\u786E\u67E5\u4E00\u6B21\uFF08\u4E0D\u9760\u7247\u540D\u731C\uFF09")}a.forEach(s=>zt(s,n[Y(s)]));return r} o(bi,"putSiteRatings"); function pv(t,e,n){const r=String(n&&n.score||"");const i=Oo(n&&n.url);const c=Y(e);const a=t[c];if(!(Number(r)>0)){if(!i)return"";if(a&&!a.miss&&(a.score||a.did===i))return"";t[c]={score:"",did:i,ts:Date.now(),miss:false,v:sn,src:"dom"};return"id"}if(a&&!a.miss){if(nl(a.score,r))return"";if(a.src==="api"){if(zn(a)===jr)return"";const l=Date.now();if(a.conflict&&l-a.conflictzs){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u8FDE\u7EED "+zs+" \u8F6E\u88AB\u6321\uFF0C\u672C\u8F6E\u653E\u5F03\u5269\u4E0B\u7684 "+dt.length+" \u90E8\uFF0C"+Math.round(li/1e3)+" \u79D2\u540E\u91CD\u65B0\u8D77\u7B97");while(dt.length)zt(dt.shift(),null);fi("soft",0,li,t);return}const r=Math.min(nv*Math.pow(2,n-1),li);fi("soft",n,r,t);$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A"+t+"\uFF08"+e+"\uFF09\u2014\u2014 \u7B2C "+n+" \u8F6E\u88AB\u6321\uFF0C"+Math.round(r/1e3)+" \u79D2\u540E\u7EE7\u7EED\u67E5\u961F\u5217\u91CC\u5269\u4E0B\u7684 "+dt.length+' \u90E8\u3002\u8FD9\u662F\u8C46\u74E3\u63A5\u53E3\u4E34\u65F6\u4E0D\u53EF\u7528\uFF0C\u4E0D\u662F"\u8FD9\u90E8\u7247\u67E5\u4E0D\u5230"')} o(de,"markBlocked"); function zr(t,e){const n=Qs("hard")+1;const r=Hs[Math.min(n-1,Hs.length-1)];fi("hard",n,r,t);const i=Math.round(r/6e4);$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A"+t+"\uFF08"+e+"\uFF09\u2014\u2014 \u8C46\u74E3\u63A5\u53E3\u5DF2\u62E6\u4E0B\u672C\u673A\u7684\u67E5\u8BE2\uFF0C\u7B2C "+n+" \u6B21\uFF0C\u6682\u505C "+(i>=60?Math.round(i/60)+" \u5C0F\u65F6":i+" \u5206\u949F")+'\u540E\u81EA\u52A8\u91CD\u8BD5\uFF08\u5237\u65B0\u9875\u9762\u4E5F\u4E0D\u4F1A\u63D0\u524D\u653E\u884C\uFF0C\u5426\u5219\u8D8A\u6253\u5C01\u5F97\u8D8A\u4E45\uFF09\u3002\u8FD9\u4E0D\u662F"\u8FD9\u90E8\u7247\u67E5\u4E0D\u5230"\uFF0C\u4E5F\u4E0D\u4F1A\u5199\u8FDB\u7F13\u5B58');zt(e,null);while(dt.length)zt(dt.shift(),null)} o(zr,"markHardBlocked"); function sl(){clearTimeout(Bn);Bn=setTimeout(()=>{Bn=null;Vr()},Math.max(1e3,Ie().until-Date.now()+150))} o(sl,"ensureResume"); function ll(){Br=0;const t=Ie();if(t.level||t.until)mi({until:0,kind:"soft",level:0,reason:"",at:t.at})} o(ll,"resetBackoff"); var Ys={\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9}; function vv(t){if(/^\d+$/.test(t))return Number(t);if(t==="\u5341")return 10;const e=t.match(/^十([一二三四五六七八九])$/);if(e)return 10+Ys[e[1]];return Ys[t]||0} o(vv,"cnToInt"); function qn(t){const e=String(t||"");const n=e.match(/s(\d{1,2})(?![a-z0-9])/)||e.match(/第\s*([0-9]{1,2}|[一二三四五六七八九十]{1,3})\s*(?:季|部|期|篇)/);return n?String(vv(n[1])):""} o(qn,"seasonOf"); function Ks(t){return String(t||"").replace(/(^|[^a-z])s\d{1,2}(?![a-z0-9])/g,"$1").replace(/第\s*[0-9一二三四五六七八九十]{1,3}\s*(?:季|部|期|篇)/g,"").replace(/\s+/g," ").trim()} o(Ks,"stripSeasonTag"); function mv(t,e,n){const r=Y(n||e);if(!r)return null;const i=t.filter(y=>Y(y.title||"")===r);const c=i.find(y=>y.rate);if(c)return c;const a=o(y=>y.rate?0:50,"ratePenalty");const s=Ks(r);if(s){const y=t.filter(k=>{const x=Y(k.title||"");if(Ks(x)!==s)return false;const _=qn(x);const g=qn(r);return!(_&&g&&_!==g)});if(y.length){y.sort((k,x)=>a(k)-a(x)||Y(k.title||"").length-Y(x.title||"").length);return y[0]}}const l=qn(Y(e))||qn(r);const p=Math.max(3,Math.round(r.length*.6));const f=100;let E=null;t.forEach(y=>{const k=Y(y.title||"");if(!k)return;if(k.indexOf(r)===-1&&r.indexOf(k)===-1)return;const x=qn(k);if(l&&x&&l!==x)return;const _=Math.abs(k.length-r.length);if(_>p)return;const g=_+a(y)+(Boolean(l)!==Boolean(x)?f:0);if(!E||g{const r=n&&n.target;if(!r||!r.id)return;if(n.target_type!=="movie"&&n.target_type!=="tv")return;e.push({title:r.title||"",rate:r.rating&&r.rating.value?String(r.rating.value):"",id:String(r.id),url:Hr(r.id)})});return e} o(hv,"mapSearchItems"); function gv(t){const e=Y(t);const n=Yt()[e];if(!n||n.miss||n.src!=="dom")return false;const r=Yt();r[e]={...n,ts:Date.now(),n:(n.n||0)+1};be(r);$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u300C"+t+"\u300D\u63A5\u53E3\u6CA1\u5BF9\u4E0A\uFF0C\u4FDD\u7559\u7AD9\u70B9\u9875\u9762\u7684 "+n.score+" \u5206\uFF08\u5DF2\u6838\u5BF9 "+r[e].n+" \u6B21\uFF09");zt(t,r[e]);return true} o(gv,"keepSiteScore"); function ul(t){const e=[];ar(t).forEach(n=>{let r=n.length>Us?n.slice(0,Us).trim():n;if(r.length>=2&&e.indexOf(r)===-1)e.push(r)});return e} o(ul,"buildQueries"); function bv(t,e){const n=ul(t).find(r=>r.length{Fn--;setTimeout(Vr,ml())});return"sent"} o(bv,"retryShorter"); function yv(t,e,n,r){if(e===403||e===429){zr("HTTP "+e,t);return null}if(e!==200){de("HTTP "+e,t);return null}let i=null;try{i=JSON.parse(n)}catch(l){i=null}const c=i&&Array.isArray(i.items)?i.items:null;if(!c){if(tl(n)){zr("\u8C46\u74E3\u8FD4\u56DE\u9A8C\u8BC1\u9875",t);return null}de(i&&(i.msg||"code "+i.code)||"\u54CD\u5E94\u683C\u5F0F\u5F02\u5E38",t);return null}const a=hv(c);if(a.length){ll()}else{Br++;if(Br>=ov){de("\u8FDE\u7EED "+Br+" \u6B21\u7A7A\u7ED3\u679C\uFF08\u8C46\u74E3\u591A\u534A\u5728\u8F6F\u9650\u6D41\u6216\u62D2\u7EDD\u672C\u673A\uFF09",t);return null}}const s=mv(a,t,r);if(s&&s.rate){dl(t,s,"");return null}if(!a.length){const l=bv(t,r);if(l==="sent")return null;if(l==="gated"){zt(t,null);return null}}if(gv(t))return null;if(s){$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u300C"+t+"\u300D\u547D\u4E2D\u6761\u76EE "+s.id+"\uFF08"+(s.title||"")+"\uFF09\u4F46\u8C46\u74E3\u6682\u65E0\u8BC4\u5206\uFF08\u5C1A\u672A\u5F00\u5206\uFF09");fv(t,s);return null}$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u672A\u547D\u4E2D\u300C"+t+"\u300D\uFF0C\u8FD4\u56DE "+a.length+" \u6761\u5019\u9009\uFF1A"+a.slice(0,6).map(l=>l.title).join(" / "));dv(t);return null} o(yv,"applyResult"); function dl(t,e,n,r){const i=Yt();const c=Y(t);const a=i[c];const s=a&&!a.miss&&a.src==="api"&&nl(a.score,e.rate);const l={score:String(e.rate),title:e.title||t,url:Ur(e.url,e.id)||gi(t),ts:Date.now(),miss:false,v:sn,src:"api",n:s?(a.n||1)+1:1};if(n)l.did=String(n);else if(a&&a.did)l.did=a.did;i[c]=l;be(i);$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A"+t+" \u2192 "+e.rate+"\uFF08"+e.title+(r?"\uFF0C\u6309\u8C46\u74E3\u6761\u76EE "+r+" \u53D6\u5230":"")+"\uFF0C\u7B2C "+i[c].n+" \u6B21\u786E\u8BA4"+(s?"\uFF0C\u6709\u6548\u671F\u5347\u5230 "+(zn(i[c])===jr?"\u4E0D\u8FC7\u671F":Math.round(zn(i[c])/Me)+" \u5929"):"")+"\uFF09");zt(t,i[c])} o(dl,"commitHit"); function xv(t,e){const n=Yt();const r=Y(t);const i=n[r];if(!i||i.miss)return;if(i.did&&String(i.did)!==String(e))return;if(i.score)delete i.did;else delete n[r];be(n)} o(xv,"dropDid"); function zt(t,e){const n=$n.get(Y(t));if(!n)return;$n.delete(Y(t));n.forEach(r=>{try{r(e)}catch(i){}})} o(zt,"fire"); function fl(t,e){const n=e?"":wv(t);return n?Sv(t,n):_v(t,e)} o(fl,"run"); function wv(t){const e=Yt()[Y(t)];return e&&!e.miss&&e.did?String(e.did):""} o(wv,"didOf"); function Sv(t,e){return new Promise(n=>{let r=false;const i=o(()=>{if(r)return;r=true;n()},"done");try{ln++;pl();GM_xmlhttpRequest({method:"GET",url:Wc+encodeURIComponent(e),timeout:Js,onload:o(c=>{const a=Ev(t,c.status,c.responseText,e);if(a)a.then(i);else i()},"onload"),onerror:o(c=>{de("\u8BF7\u6C42\u5931\u8D25 "+(c&&c.error||""),t);i()},"onerror"),ontimeout:o(()=>{de("\u8BF7\u6C42\u8D85\u65F6",t);i()},"ontimeout")})}catch(c){de("\u65E0\u6CD5\u53D1\u8D77\u8BF7\u6C42\uFF08"+(c&&c.message)+"\uFF09",t);i()}})} o(Sv,"runById"); function Ev(t,e,n,r){if(e===403||e===429){zr("HTTP "+e,t);return}if(e!==200){de("HTTP "+e,t);return}if(tl(n)){zr("\u8C46\u74E3\u8FD4\u56DE\u9A8C\u8BC1\u9875",t);return}ll();let i=null;try{i=JSON.parse(n)}catch(s){i=null}const c=i&&i.r===0&&i.subject?i.subject:null;const a=c?String(c.rate||"").trim():"";if(!(Number(a)>0)){xv(t,r);$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u300C"+t+"\u300D\u7684\u8C46\u74E3\u6761\u76EE "+r+" \u53D6\u4E0D\u5230\u8BC4\u5206\uFF08"+(c?"\u8BE5\u6761\u76EE\u6682\u65E0\u8BC4\u5206":"\u6761\u76EE\u4E0D\u5B58\u5728\u6216\u5DF2\u5408\u5E76")+"\uFF09\uFF0C\u6539\u7528\u7247\u540D\u641C\u7D22");if(dt.indexOf(t)===-1)dt.push(t);return}dl(t,{rate:a,title:c.title||t,url:Ur(c.url,r)||Hr(r),id:r},r,r)} o(Ev,"applyIdResult"); function _v(t,e){return new Promise(n=>{let r=false;const i=o(()=>{if(r)return;r=true;n()},"done");const c=e||ul(t)[0]||t;try{ln++;pl();GM_xmlhttpRequest({method:"GET",headers:{"User-Agent":Yc,Referer:Kc},url:Vc+encodeURIComponent(c)+"&apikey="+encodeURIComponent(Gc),timeout:Js,onload:o(a=>{yv(t,a.status,a.responseText,c);i()},"onload"),onerror:o(a=>{de("\u8BF7\u6C42\u5931\u8D25 "+(a&&a.error||""),t);i()},"onerror"),ontimeout:o(()=>{de("\u8BF7\u6C42\u8D85\u65F6",t);i()},"ontimeout")})}catch(a){de("\u65E0\u6CD5\u53D1\u8D77\u8BF7\u6C42\uFF08"+(a&&a.message)+"\uFF09",t);i()}})} o(_v,"runSearch"); function yi(){let t=[];try{t=JSON.parse(GM_getValue(dr,"[]"))||[]}catch(n){t=[]}const e=Date.now();return t.filter(n=>typeof n==="number"&&e-n=jn){if(!Mt.has("session-max")){Mt.add("session-max");$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u672C\u6B21\u4F1A\u8BDD\u5DF2\u53D1\u51FA "+jn+" \u6B21\u8BF7\u6C42\uFF0C\u5269\u4E0B\u7684\u5237\u65B0\u9875\u9762\u540E\u63A5\u7740\u67E5\uFF08\u4E00\u6B21\u6253\u592A\u591A\u4F1A\u62DB\u6765\u8C46\u74E3\u7684\u9650\u6D41\u4E0E\u5C01\u7981\uFF09")}return false}if(yi().length>=$r){if(!Mt.has("window-max")){Mt.add("window-max");$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u6700\u8FD1 "+Math.round(vi/6e4)+" \u5206\u949F\u5DF2\u7D2F\u8BA1\u53D1\u51FA "+$r+" \u6B21\u8BF7\u6C42\uFF08\u8DE8\u5237\u65B0\u4E00\u8D77\u7B97\uFF1B\u6309\u540D\u5B57\u67E5\u4E00\u90E8\u6700\u591A\u4E24\u53D1\uFF09\uFF0C\u5148\u6B47\u4E00\u4F1A\u513F \u2014\u2014 \u7A97\u53E3\u6ED1\u8FC7\u53BB\u540E\u5F00\u9762\u677F\u4F1A\u81EA\u52A8\u63A5\u7740\u67E5")}return false}return true} o(xi,"budgetLeft"); function vl(){const t=Date.now();const e=Ie();let n=0;if(e.until>t)n=e.kind==="hard"?-1:Math.ceil((e.until-t)/1e3);const r=Yt()||{};let i=0;Object.keys(r).forEach(c=>{const a=r[c];if(a&&!a.miss&&Number(a.score)>0)i++});return{sessionLeft:Math.max(0,jn-ln),sessionMax:jn,windowLeft:Math.max(0,$r-yi().length),windowMax:$r,windowMinutes:Math.round(vi/6e4),pausedSec:n,cached:Object.keys(r).length,scored:i}} o(vl,"budgetStatus"); function kv(){return Date.now()>=Ie().until&&xi()} o(kv,"canSendMore"); function ml(){return cv+Math.random()*av} o(ml,"gapDelay"); function Vr(){if(Date.now(){Fn--;ui.delete(Y(t));const e=ml();$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u95F4\u9694 "+(e/1e3).toFixed(1)+"s \u540E\u7EE7\u7EED\uFF08\u961F\u5217\u8FD8\u5269 "+dt.length+" \u90E8\uFF0C\u672C\u4F1A\u8BDD\u5DF2\u53D1 "+ln+"/"+jn+"\uFF09");setTimeout(Vr,e)})}} o(Vr,"pump"); var Ws=0; function hl(){if(!dt.length)return;const t=dt.length;dt.forEach(n=>$n.delete(Y(n)));dt.length=0;const e=Date.now();if(e-Ws>1e4){Ws=e;$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u91CD\u7ED8\uFF0C\u4E22\u5F03\u8FD8\u6CA1\u53D1\u51FA\u7684 "+t+" \u4E2A\u4EFB\u52A1\uFF08\u4E0B\u6B21\u6E32\u67D3\u4F1A\u91CD\u65B0\u6392\uFF09")}} o(hl,"dropPending"); function gl(t,e,{force:n=false}={}){if(!t)return;const r=Y(t);if(e){const a=$n.get(r)||[];a.push(e);$n.set(r,a)}if(!xi()){zt(t,null);return}const i=Ie();if(i.until>Date.now()){if(i.kind==="hard"){if(!Mt.has("403")){Mt.add("403");$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u672C\u673A\u6B63\u88AB\u8C46\u74E3\u62E6\u4E0B\uFF08"+(i.reason||"HTTP 403")+"\uFF09\uFF0C\u8FD8\u6709 "+Math.ceil((i.until-Date.now())/6e4)+" \u5206\u949F\u81EA\u52A8\u6062\u590D\uFF1B\u5237\u65B0\u9875\u9762\u4E5F\u4E0D\u4F1A\u63D0\u524D\u653E\u884C\uFF0C\u5426\u5219\u8D8A\u6253\u5C01\u5F97\u8D8A\u4E45")}zt(t,null);return}if(dt.indexOf(t)===-1)dt.push(t);if(!Mt.has("blocked")){Mt.add("blocked");$("[\u5F71\u89C6\u6536\u85CF] \u8C46\u74E3\u8BC4\u5206\uFF1A\u6B63\u5904\u5728\u88AB\u6321\u540E\u7684\u6682\u505C\u671F\uFF0C\u5269\u4E0B\u7684\u7247\u540D\u4F1A\u9694\u4E00\u4F1A\u513F\u81EA\u52A8\u63A5\u7740\u67E5")}sl();return}const c=Yt()[r];if(!n){if(c&&c.miss&&Date.now()-(c.ts||0)-1||ui.has(r))return;dt.push(t);Vr()} o(gl,"requestRating"); var Tv=["name","cover","path","siteId","createTime","updateTime"]; var yl=[ge]; var xl=[An]; function Av(t,e){try{const n=GM_getValue(t,null);if(n==null)return e;const r=JSON.parse(n);return Array.isArray(r)?r:e}catch(n){return e}} o(Av,"readJsonKey"); function Lv(){const t={...xs(),...ks()};yl.forEach(e=>{t[e]=GM_getValue(e,true)!==false});xl.forEach(e=>{t[e]=Av(e,[])});return t} o(Lv,"loadPrefs"); function Cv(t){if(!t||typeof t!=="object")return;ws(t);Ts(t);yl.forEach(e=>{if(Object.prototype.hasOwnProperty.call(t,e))GM_setValue(e,t[e]!==false)});xl.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(t,e))return;const n=Array.isArray(t[e])?t[e]:[];GM_setValue(e,JSON.stringify(n))})} o(Cv,"savePrefs"); var wi=rs({storageKey:$c,backupFileName:"\u5168\u7F51\u5F71\u89C6\u6536\u85CF\u5907\u4EFD",moduleId:"drama",itemIdField:"name",itemFields:Tv,showAlert:Is,confirmExport:Ce,chooseImportStrategy:Ps,playbackLoadFn:Ov,playbackSaveFn:Rv,ratingsLoadFn:ol,ratingsSaveFn:il,prefsLoadFn:Lv,prefsSaveFn:Cv,siteNamesLoadFn:Wa,siteNamesSaveFn:Xa,budgetKeys:{playback:Tn,ratings:tn,images:_n,imageTabs:kn},reclaimRatingsFn:el,onBudgetNotice:o(t=>{nt(t,{tone:"error"});Ct.renderedTabs.clear()},"onBudgetNotice")}); Zs(()=>wi.enforceBudget()); var{loadData:Et,saveData:Kt,exportData:wl,importData:Sl} =wi; var El=wi.usageInfo; function Hn(t,e,n){try{GM_setValue(t,e);return true}catch(r){Ir("[\u5F71\u89C6\u6536\u85CF] "+n+"\u5199\u5165\u5931\u8D25",r);nt("\u5B58\u50A8\u5199\u5165\u5931\u8D25\uFF08"+n+"\uFF09\uFF0C\u8BF7\u5BFC\u51FA\u5907\u4EFD\u540E\u6E05\u7406\u90E8\u5206\u5185\u5BB9",{tone:"error"});return false}} o(Hn,"safeSetValue"); function Ft(t,e){return e.findIndex(n=>Be(n.name,t))} o(Ft,"findItem"); function Si(){try{return JSON.parse(GM_getValue(_n,"{}"))}catch(t){return{}}} o(Si,"loadImageCache"); function Pe(t,e){if(!t||yt(e))return;const n=Si();n[t]=Gt(e);Hn(_n,JSON.stringify(n),"\u56FE\u7247\u7F13\u5B58")} o(Pe,"setImageCache"); function Un(t){const e=Si();const n=e[t]?t:Object.keys(e).find(i=>Be(i,t));const r=n?e[n]:"";if(!r)return"";return typeof r==="string"?r:r.cover||""} o(Un,"readImageCache"); function Vn(t){const e=Et();for(const r of["want","watched"]){const i=Ft(t,e[r]);if(i>-1&&wn(e[r][i]))return e[r][i].cover}const n=ce(t);return wn(n)?n.cover:""} o(Vn,"getCoverFromExisting"); function Ei(){try{return JSON.parse(GM_getValue(kn,"{}"))}catch(t){return{}}} o(Ei,"loadPlayTabsAlive"); function _i(t){if(!t)return;const e=Ei();e[t]=Date.now();Hn(kn,JSON.stringify(e),"\u64AD\u653E\u72B6\u6001")} o(_i,"markPlayTabAlive"); function _l(t){if(!t)return;const e=Ei();e[t]=0;Hn(kn,JSON.stringify(e),"\u64AD\u653E\u72B6\u6001")} o(_l,"expirePlayTabAlive"); function kl(t=""){const e=Ei();const n=Si();let r=false;Object.keys(n).forEach(i=>{if(Be(i,t))return;if(e[i]===0){delete n[i];r=true}});if(r)Hn(_n,JSON.stringify(n),"\u56FE\u7247\u7F13\u5B58")} o(kl,"handlePageCache"); var Gr=["episode","time","cover","path","siteId","updateTime"]; function Mv(t){const e=Gr.map(r=>t[r]===void 0?"":t[r]);const n={};Object.keys(t).forEach(r=>{if(Gr.indexOf(r)>=0||r==="name")return;n[r]=t[r]});if(Object.keys(n).length)e.push(n);return e} o(Mv,"encodeRecord"); function Iv(t,e){if(!Array.isArray(e))return{name:t,...e};const n={name:t};Gr.forEach((i,c)=>{const a=e[c];if(a!==""&&a!==void 0&&a!==null)n[i]=a});const r=e[Gr.length];if(r&&typeof r==="object")Object.keys(r).forEach(i=>{n[i]=r[i]});return n} o(Iv,"decodeRecord"); var Tl=false; var bl=false; function Pv(){try{if(GM_getValue(Bo,""))return false;const t=String(GM_getValue(Tn,"")||"");if(!t)return false;GM_setValue(Bo,t);return true}catch(t){Ir("[\u5F71\u89C6\u6536\u85CF] \u89C2\u770B\u8BB0\u5F55\u539F\u6587\u5907\u4EFD\u5931\u8D25",t);return false}} o(Pv,"backupBrokenPlayback"); function Gn(t){if(Tl&&Pv()&&!bl){bl=true;nt("\u89C2\u770B\u8BB0\u5F55\u8BFB\u53D6\u5F02\u5E38\uFF1A\u539F\u6587\u5DF2\u5907\u4EFD\uFF0C\u65B0\u8FDB\u5EA6\u7167\u5E38\u8BB0\u5F55\uFF08\u5EFA\u8BAE\u5BFC\u51FA\u5907\u4EFD\u540E\u6392\u67E5\uFF09",{tone:"error"})}const e={};Object.keys(t).forEach(n=>{e[n]=Mv(t[n])});Hn(Tn,JSON.stringify(e),"\u64AD\u653E\u8BB0\u5F55");Ct.renderedTabs.clear()} o(Gn,"writeRecords"); function ye(){let t=null;try{t=JSON.parse(GM_getValue(Tn,"{}"))}catch(n){Tl=true;Ir("[\u5F71\u89C6\u6536\u85CF] \u89C2\u770B\u8BB0\u5F55\u89E3\u6790\u5931\u8D25\uFF08\u539F\u6587\u5DF2\u7559\u7ED9 writeRecords \u5907\u4EFD\uFF09",n);return{}}if(!t||typeof t!=="object")return{};const e={};Object.keys(t).forEach(n=>{e[n]=Iv(n,t[n])});return e} o(ye,"loadPlaybackRecords"); function Yr(t,e){if(!e||!t)return"";if(t[e])return e;return Object.keys(t).find(n=>Be(n,e))||""} o(Yr,"findRecordKey"); function ce(t){const e=ye();const n=Yr(e,t);return n?e[n]:null} o(ce,"getPlaybackRecord"); function Al(t,{episode:e="",time:n=0,cover:r="",path:i="",siteId:c=""}={}){if(!t)return;const a=ye();const s=Yr(a,t)||t;a[s]={name:s,episode:e,time:n,cover:r,path:i,siteId:c,updateTime:Date.now()};Gn(a)} o(Al,"savePlaybackRecord"); function Ll(t){Gn(t)} o(Ll,"savePlaybackRecords"); function ki(t,e={}){if(!t)return;const n=ye();const r=Yr(n,t);if(!r)return;n[r]={...n[r],...e};Gn(n)} o(ki,"patchPlaybackRecord"); function Ti(t){const e=ye();const n=Yr(e,t);if(!n)return;delete e[n];Gn(e)} o(Ti,"deletePlaybackRecord"); function Cl(){const t=ye();const e=Et();const n=new Map;const r=new Map;e.want.forEach(c=>{const a=Y(c.name);n.set(a,c.cover);r.set(a,"want")});e.watched.forEach(c=>{const a=Y(c.name);if(!n.has(a))n.set(a,c.cover);if(!r.has(a))r.set(a,"watched")});const i=new Map;Object.entries(t).forEach(([c,a])=>{const s=a.name||c;const l=Y(s);const p=i.get(l);if(p&&(p.updateTime||0)>=(a.updateTime||0))return;i.set(l,{name:s,...a,cover:a.cover||n.get(l)||"",category:r.get(l)||""})});return Array.from(i.values()).sort((c,a)=>(a.updateTime||0)-(c.updateTime||0))} o(Cl,"loadPlaybackList"); function Ov(){return Object.entries(ye()).map(([t,e])=>({name:t,...e}))} o(Ov,"loadPlaybackExportList"); function Rv(t=[]){const e={};t.forEach(n=>{if(!n||!n.name)return;const r={...n};delete r.category;r.episode=r.episode||"";r.time=r.time||0;r.cover=r.cover||"";r.path=r.path||"";r.siteId=r.siteId||"";r.updateTime=r.updateTime||Date.now();e[n.name]=r});Gn(e)} o(Rv,"savePlaybackList"); var Ai=[0,5*60*1e3,30*60*1e3,2*60*60*1e3,6*60*60*1e3]; var Ol=Ai.length; var Dv=7*24*60*60*1e3; var Oe=new Set; function Kr(t){const e={state:"",fail:0,ts:0,cover:"",siteId:"",coverFrom:"",coverSrc:""};if(!t)return e;const n=Et();for(const i of["want","watched"]){const c=Ft(t,n[i]);if(c>-1){const a=n[i][c];return{state:a.coverState||"",fail:a.coverFail||0,ts:a.coverTs||0,cover:a.cover||"",siteId:a.siteId||"",coverFrom:a.coverFrom||"",coverSrc:a.coverSrc||""}}}const r=ce(t);if(!r)return e;return{state:r.coverState||"",fail:r.coverFail||0,ts:r.coverTs||0,cover:r.cover||"",siteId:r.siteId||"",coverFrom:r.coverFrom||"",coverSrc:r.coverSrc||""}} o(Kr,"readHealth"); function Rl(t,e){if(!t)return false;const n=t.state||"";const r=t.cover||"";if(!n)return!r||yt(r);if(n===Pt.OK)return false;if(n===Pt.ABANDONED)return e-(t.ts||0)>=Dv;const i=Math.min(Math.max((t.fail||0)-1,0),Ai.length-1);return e-(t.ts||0)>=Ai[i]} o(Rl,"canRepair"); var Nv=/^fb:/; function Dl(t){if(!t)return false;if(!t.cover||yt(t.cover))return true;if(t.coverSrc===cr.PAGE)return false;return Nv.test(String(t.coverFrom||""))} o(Dl,"isGuessedCover"); function Ml(t,e){if(!t)return false;if(Dl(t))return true;return Rl({state:t.coverState||"",fail:t.coverFail||0,ts:t.coverTs||0,cover:t.cover||""},e)} o(Ml,"isRepairable"); var Kn=new Set; function Nl(){Kn=qv();return Kn} o(Nl,"refreshRepairNames"); function ql(t){if(t)Kn.add(t)} o(ql,"addRepairName"); function Fl(t){if(!t)return"";if(Kn.has(t))return t;for(const e of Kn){if(Be(e,t))return e}return""} o(Fl,"findRepairName"); function qv(){const t=new Set;const e=Date.now();const n=Et();["want","watched"].forEach(r=>{(n[r]||[]).forEach(i=>{if(i&&i.name&&Ml(i,e))t.add(i.name)})});Object.values(ye()).forEach(r=>{const i=r&&r.name;if(i&&Ml(r,e))t.add(i)});return t} o(qv,"listRepairNames"); var Li=null; var Yn=new Map; function Wr(t,e){Yn.set(t,{...Yn.get(t)||{},...e});if(Li)return;Li=setTimeout(Fv,300)} o(Wr,"enqueue"); function Fv(){Li=null;if(!Yn.size)return;const t=Et();let e=false;Yn.forEach((n,r)=>{["want","watched"].forEach(i=>{const c=Ft(r,t[i]);if(c>-1){t[i][c]={...t[i][c],...n};e=true}});ki(r,n)});Yn.clear();if(e)Kt(t)} o(Fv,"flushPending"); function Bl(t,e,n=""){const r={cover:t,coverState:Pt.OK,coverFail:0,coverTs:Date.now()};if(e)r.coverFrom=e;if(n)r.coverSrc=n;return r} o(Bl,"coverPatch"); var Bv=10*60*1e3; function jl(t,e=false){if(!t||e)return;const n="broken:"+t;if(Oe.has(n))return;Oe.add(n);const r=Kr(t);const i=Date.now();if((r.state===Pt.BROKEN||r.state===Pt.ABANDONED)&&i-(r.ts||0)Ol?Pt.ABANDONED:Pt.BROKEN,coverFail:c,coverTs:i})} o(jl,"markBroken"); function $l(){const t=o(c=>{if(!c)return false;const a=(c.coverFail||0)>Ol;if(c.coverState!==Pt.ABANDONED&&!a)return false;c.coverState=Pt.BROKEN;c.coverFail=1;c.coverTs=Date.now();return true},"fix");const e=Et();let n=false;["want","watched"].forEach(c=>{(e[c]||[]).forEach(a=>{if(t(a))n=true})});if(n)Kt(e);const r=ye();let i=false;Object.keys(r).forEach(c=>{if(t(r[c]))i=true});if(i)Ll(r)} o($l,"healOvercountedCovers"); function zl(t){if(!t)return;const e="missing:"+t;if(Oe.has(e))return;Oe.add(e);const n=Kr(t);if(n.state)return;Wr(t,{coverState:Pt.MISSING,coverFail:0,coverTs:Date.now()})} o(zl,"markMissing"); function Hl(t){if(!t)return;const e="ok:"+t;if(Oe.has(e))return;Oe.add(e);const n=Kr(t);if(n.state===Pt.OK)return;Wr(t,{coverState:Pt.OK,coverFail:0,coverTs:Date.now()})} o(Hl,"markOk"); function Il(t,e,n="",r=""){if(!t||!e||yt(e))return false;const i=Gt(e);const c="ok:"+t;Oe.add(c);Wr(t,Bl(i,n,r));Pe(t,i);return true} o(Il,"applyRepair"); function Ci(t,e,n=""){if(!t||!e||yt(e))return;const r=Gt(e);ki(t,Bl(r,n));Pe(t,r);Oe.add("ok:"+t)} o(Ci,"syncCover"); function Pl(t,e,n=""){Rn("[\u5F71\u89C6\u6536\u85CF] \u5C01\u9762\u672A\u66F4\u65B0\uFF1A"+e,t,n||"")} o(Pl,"debugSkip"); function un(t,e,n="",r=false){if(!t)return false;if(!e||yt(e)){Pl(t,"\u5F53\u524D\u9875\u9762\u7ED9\u7684\u5C01\u9762\u662F\u5360\u4F4D\u56FE");return false}const i=Kr(t);if(!Rl(i,Date.now())){if(!r||!Dl(i)){Pl(t,"\u8BE5\u5267\u4E0D\u5728\u5F85\u4FEE\u72B6\u6001",`state=${i.state||"unknown"} fail=${i.fail}`);return false}Rn("[\u5F71\u89C6\u6536\u85CF] \u901A\u7528\u7AD9\u70B9\u731C\u7684\u5C01\u9762\u5DF2\u6362\u6210\u9875\u9762\u81EA\u8EAB\u7684\u5C01\u9762\uFF1A",t);return Il(t,e,n,cr.PAGE)}return Il(t,e,n,cr.PAGE)} o(un,"tryRepair"); var jv=12; var Vl=3; var $v=6; function Xr(t){const e=String(t==null?"":t).replace(/\s+/g," ").trim();if(!e||e.length>jv)return"";if(!Ze(e)&&!xn(e))return"";return jt(e)} o(Xr,"epKey"); function zv(t){if(!t||t.disabled)return false;return!/(^|\s)vc-/.test(String(t.className||""))} o(zv,"usable"); function Mi(t){if(!t)return false;if(typeof t.getClientRects==="function"&&t.getClientRects().length)return true;try{const e=t.ownerDocument&&t.ownerDocument.defaultView;if(e&&e.getComputedStyle){let n=t;while(n&&n.nodeType===1){const r=e.getComputedStyle(n);if(r&&(r.display==="none"||r.visibility==="hidden"))return false;n=n.parentElement}}}catch(e){}return true} o(Mi,"visible"); function Hv(){const t=[];document.querySelectorAll("*").forEach(e=>{if(e.children.length)return;if(!zv(e))return;const n=Xr(e.textContent);if(n)t.push({el:e,key:n})});return t} o(Hv,"collectAll"); function Uv(t){const e=new Map;t.forEach(r=>{let i=r.el.parentElement,c=0;while(i&&c<$v){e.set(i,(e.get(i)||0)+1);i=i.parentElement;c++}});const n=new Map;t.forEach(r=>{let i=r.el.parentElement;while(i){if((e.get(i)||0)>=Vl){if(!n.has(i))n.set(i,[]);n.get(i).push(r);return}i=i.parentElement}});return[...n.values()]} o(Uv,"groupByList"); function Vv(t){const e=/^S(\d+)E(\d+)$/.exec(t);if(e)return{season:e[1],ep:Number(e[2])};const n=/^E(\d+)$/.exec(t);if(n)return{season:"0",ep:Number(n[1])};return null} o(Vv,"parseKey"); function Gv(t){const e=new Map;t.forEach(n=>{const r=Vv(n.key);if(!r||!(r.ep>0))return;if(!e.has(r.season))e.set(r.season,[]);e.get(r.season).push(r.ep)});for(const n of e.values()){const r=[...new Set(n)].sort((i,c)=>i-c);if(r.length>=Vl&&r[r.length-1]-r[0]+1===r.length)return true}return false} o(Gv,"looksLikeEpisodeList"); function Gl(t){return!!Xr(t)} o(Gl,"isEpisodeText"); var Ul=/drawer|modal|popup|sheet|overlay|dialog|panel/i; function Yv(){try{return(location.pathname||"").replace(/[-/]\d+(?=\.[a-z]+$|$)/i,"").replace(/\/+$/,"")}catch(t){return""}} o(Yv,"currentShowKey"); function Kv(t){return String(t||"").replace(/[-/]\d+(?=\.[a-z]+$|$)/i,"").replace(/\/+$/,"")} o(Kv,"pathKey"); function Wv(t){const e=t&&t.closest&&t.closest("a[href]");if(!e)return false;const n=e.getAttribute("href")||"";if(!n||n==="#"||n.startsWith("javascript:"))return false;const r=Yv();if(!r)return false;let i;try{i=new URL(n,location.href).pathname}catch(c){return false}return Kv(i)===r} o(Wv,"sameShowHref"); function Xv(t){let e=t;for(let n=0;n<10&&e&&e!==document.body;n++){if(Ul.test(String(e.className||""))||Ul.test(String(e.id||"")))return true;e=e.parentElement}return false} o(Xv,"inDrawer"); function Jv(t){const e=Math.ceil(t.length/2);let n=0;for(const r of t){if(Wv(r.el)||Xv(r.el))n++;if(n>=e)return true}return false} o(Jv,"groupClickable"); function Yl({target:t,current:e}={}){const n=Xr(t);if(!n)return null;const r=Xr(e);if(r&&r===n)return null;const i=Uv(Hv()).filter(p=>Gv(p));if(!i.length)return null;const c=i.filter(p=>Jv(p));const a=c.length?c.slice().sort((p,f)=>Number(Mi(f[0].el))-Number(Mi(p[0].el))):i.filter(p=>Mi(p[0].el));if(!a.length)return null;const s=r?a.filter(p=>p.some(f=>f.key===r)):[];const l=s.concat(a.filter(p=>s.indexOf(p)<0));for(const p of l){const f=p.find(E=>E.key===n&&(!r||E.key!==r));if(f)return{el:f.el,via:"list"}}return null} o(Yl,"findEpisodeControl"); function He(t){const e=document.querySelector(t);return e?e.textContent.trim():""} o(He,"text"); function Zv(t){const e=(t||"").match(/第\s*\d+\s*集/);return e?e[0].replace(/\s+/g,""):""} o(Zv,"episodeFromText"); var Qv="\u6B63\u7247"; var tm={czzy:o(()=>{const t=Array.from(document.querySelectorAll(".juji_list a"));if(t.length){const e=t.find(r=>r.classList.contains("pbplay"))||(t.length===1?t[0]:null);const n=((e==null?void 0:e.textContent)||"").trim();if(n)return To(n)}return Ze(He(".mikd .ptit span"))||Qv},"czzy"),duse:o(()=>He(".episode-list .episode-item-active span"),"duse"),dida:o(()=>Ze(He(".myui-content__list.playlist li.active a")),"dida"),ddys:o(()=>{const t=He(".ddys-playlist-item.ddys-playlist-playing .ddys-playlist-item-title");if(!t)return"";const e=He(".ddys-season-tab.is-active");return(e?`${e} `:"")+`\u7B2C${t.trim()}\u96C6`},"ddys"),hantv:o(()=>He(".player-list-body .listitem.active a"),"hantv"),libvio:o(()=>He(".stui-play__list li.active a"),"libvio"),gaze:o(()=>{var n;const t=document.querySelector(".fJ.bB.dE .playbtn.ji");const e=To(((t==null?void 0:t.textContent)||"").trim());if(e&&xn(e))return e;return Zv((n=document.querySelector("video-player"))==null?void 0:n.getAttribute("content-title"))},"gaze")}; var em={ddys:o(()=>new URLSearchParams(location.search).get("ep")||"","ddys"),dida:o(()=>Ii(location.pathname),"dida"),hantv:o(()=>Ii(location.pathname),"hantv"),libvio:o(()=>Ii(location.pathname),"libvio")}; function Ii(t){const e=t.match(/(\d+)(?:\.html?)?$/);return e?`\u7B2C${e[1]}\u96C6`:""} o(Ii,"lastEpisodeFromPath"); function Ue(t){if(typeof t.getPlaybackInfo==="function"){const r=t.getPlaybackInfo();if(r&&r.episode)return r.episode}const e=tm[t.id];if(e){const r=e();if(r)return r}const n=em[t.id];if(n){const r=n();if(r)return r}return""} o(Ue,"resolveEpisode"); function nm(){return ie("video")[0]||null} o(nm,"findPlayerEl"); var Jn=null; function Ql(t){Jn=typeof t==="function"?t:null} o(Ql,"setRemoteTimeSource"); var Oi=null; function tu(t){Oi=typeof t==="function"?t:null} o(tu,"setRemoteSeek"); var Ri=null; function eu(t){Ri=typeof t==="function"?t:null} o(eu,"setBeforeNavigate"); var Qr="vc_drama_resume_intent"; var rm=5*60*1e3; function om(t,e,n){try{sessionStorage.setItem(Qr,JSON.stringify({name:t,time:e,episode:n||"",ts:Date.now()}))}catch(r){}} o(om,"writeResumeIntent"); function im(){try{sessionStorage.removeItem(Qr)}catch(t){}} o(im,"clearResumeIntent"); function cm(t,e){let n="";try{n=sessionStorage.getItem(Qr)||""}catch(r){return 0}if(!n)return 0;try{sessionStorage.removeItem(Qr)}catch(r){}try{const r=JSON.parse(n);if(!r||r.name!==t){$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u63A5\u529B\uFF1A\u610F\u56FE\u4E0D\u662F\u8FD9\u90E8\u5267\uFF08"+(r&&r.name||"?")+" \u2260 "+t+"\uFF09\uFF0C\u4E22\u5F03");return 0}if(!(Date.now()-Number(r.ts)0?Number(r.time):0;if(i)$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u63A5\u529B\uFF1A\u63A5\u5230\u8DF3\u8F6C\u610F\u56FE \u2192 "+Se(i)+"\uFF08"+(r.episode||"\u65E0\u96C6\u6570")+"\uFF09");return i}catch(r){return 0}} o(cm,"consumeResumeIntent"); var am=8e3; var Wn=null; function dn(){const t=ie("video");if(!t.length)return null;const e=t.find(r=>{try{return!r.paused&&r.currentTime>0}catch(i){return false}});if(e)return e;let n=null;t.forEach(r=>{const i=(r.videoWidth||0)*(r.videoHeight||0);if(i>0&&(!n||i>n.area))n={v:r,area:i}});return n?n.v:t[0]} o(dn,"pickSeekTarget"); function Di(t){const e=Number(t);if(!(e>0))return"fail";const n=o(s=>{try{s.currentTime=e;return"done"}catch(l){return"fail"}},"apply");const r=dn();if(!r){return Oi&&Oi(e)!==false?"wait":"fail"}if(r.readyState>=1)return n(r);if(Wn)clearTimeout(Wn);let i=false;const c=o(s=>{if(i)return;i=true;clearTimeout(Wn);Wn=null;r.removeEventListener("loadedmetadata",a);r.removeEventListener("canplay",a);if(s==="done")nt(`\u5DF2\u8DF3\u5230 ${Se(e)}`,{tone:"ok",icon:"play"});else if(s==="wait")nt("\u64AD\u653E\u5668\u6B63\u5728\u52A0\u8F7D\uFF0C\u7A0D\u540E\u81EA\u52A8\u8DF3\u8F6C\u2026",{tone:"warn",icon:"play"});else nt("\u64AD\u653E\u5668\u4E00\u76F4\u6CA1\u52A0\u8F7D\u597D\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",{tone:"warn",icon:"play"})},"finish");const a=o(()=>c(n(r)),"onReady");r.addEventListener("loadedmetadata",a);r.addEventListener("canplay",a);Wn=setTimeout(()=>c("fail"),am);return"wait"} o(Di,"seekTo"); var sm=60*1e3; var lm=2e3; function um(t,e){return!!t&&Number(t.deadline)>Number(e)} o(um,"pendingAlive"); function dm(t,e){if(!t)return false;const n=jt(t.episode||"");if(!n)return true;const r=jt(e||"");if(!r)return true;return n===r} o(dm,"stillTargetEpisode"); function fm(t,e){const n=Number(t)||0;const r=Number(e)||0;if(n<=0)return false;return r=1)return true;return pm()} o(Wl,"canSettleNow"); function Pi(){const t=dn();if(!t){if(Ni){try{Ni()}catch(e){}}return false}if(t.readyState<1)return false;if(!t.paused)return true;try{const e=t.play();if(e&&typeof e.then==="function")e.catch(()=>Kl(t));return true}catch(e){return Kl(t)}} o(Pi,"tryStartPlayback"); function Xl(t){const e=dn();if(!e)return;const n=o(()=>{e.removeEventListener("play",n);setTimeout(()=>{try{if(fm(t,e.currentTime))e.currentTime=t}catch(r){}},350)},"onPlay");e.addEventListener("play",n)} o(Xl,"guardAfterPlay"); function ru(t,e,n){if(Wl()){$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u843D\u70B9\uFF1A\u5C31\u7EEA\uFF0C\u843D\u5230 "+Se(t)+"\uFF08\u8D77\u64AD\u7559\u7ED9\u7528\u6237\u70B9\uFF1A\u8DE8\u57DF\u6846\u67B6\u91CC\u811A\u672C\u7684 play() \u4F1A\u88AB\u6D4F\u89C8\u5668\u62D2\u7EDD\uFF0C\u8FD9\u662F\u9884\u671F\u5185\uFF09");Di(t);Pi();Xl(t);return"done"}Xn();Jr={time:t,episode:e,site:n,deadline:Date.now()+sm};$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u843D\u70B9\uFF1A\u89C6\u9891\u8FD8\u6CA1\u5C31\u7EEA\uFF08"+(e||"\u65E0\u96C6\u6570")+"\uFF09\uFF0C\u767B\u8BB0\u5F85\u5151\u73B0 "+Se(t)+"\uFF081 \u5206\u949F\u5185\u5C31\u7EEA\u5C31\u843D\uFF09");Zr=setInterval(()=>{if(!um(Jr,Date.now())){$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u843D\u70B9\uFF1A\u7B49\u4E86 1 \u5206\u949F\u89C6\u9891\u4ECD\u672A\u5C31\u7EEA\uFF0C\u653E\u5F03");Xn();return}Pi();const r=Jr;if(!r)return;if(!dm(r,Ue(r.site))){$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u843D\u70B9\uFF1A\u5F53\u524D\u96C6\u5DF2\u4E0D\u662F\u76EE\u6807\u96C6\uFF0C\u653E\u5F03");Xn();return}if(!Wl())return;Xn();$("[\u5F71\u89C6\u6536\u85CF] \u7EED\u64AD\u843D\u70B9\uFF1A\u5C31\u7EEA\uFF0C\u843D\u5230 "+Se(r.time)+"\uFF08\u8D77\u64AD\u7559\u7ED9\u7528\u6237\u70B9\uFF1A\u8DE8\u57DF\u6846\u67B6\u91CC\u811A\u672C\u7684 play() \u4F1A\u88AB\u6D4F\u89C8\u5668\u62D2\u7EDD\uFF0C\u8FD9\u662F\u9884\u671F\u5185\uFF09");Di(r.time);Pi();Xl(r.time)},lm);return"pending"} o(ru,"requestSettle"); var vm=250; var mm=1e4; function hm(t,e,n,r,i){const c=dn();const a=c?String(c.currentSrc||""):"";if(Ri)Ri();om(n,e,r);try{t.click()}catch(p){return Promise.resolve("fail")}const s=jt(r);const l=o(()=>{if(!s)return false;const p=jt(Ue(i)||"");return!!p&&p===s},"switchedByEpisode");return new Promise(p=>{const f=Date.now();const E=o(()=>{const y=dn();const k=y?String(y.currentSrc||""):"";const x=l()||!!(y&&(y!==c||k&&k!==a));if(x){p(ru(e,r,i));return}if(Date.now()-f>=mm){p("timeout");return}setTimeout(E,vm)},"tick");E()})} o(hm,"clickEpisode"); function gm(t){try{const e=String(t||"");if(!e)return false;return e.includes("?")?location.pathname+location.search===e:location.pathname===e}catch(e){return false}} o(gm,"isSamePath"); function bm(t,e){if(!t)return false;const n=jt(Ue(e));const r=jt(t.episode||"");if(n&&r)return n===r;return gm(t.path)} o(bm,"isSameSpot"); function ym(t,e){if(!t)return true;const n=jt(t.episode||"");const r=jt(e||"");if(n&&r&&n!==r)return true;return!(t.time>0)} o(ym,"shouldResetToZero"); function xm(){const t=nm();if(t)return{time:t.currentTime,ended:!!t.ended};if(Jn){const e=Jn();if(e)return e}return null} o(xm,"readPlayerTime"); function wm(t){try{if(t&&t.__fallback&&typeof t.getPlayInfo==="function"){const e=t.getPlayInfo();if(e&&e.path)return e.path}}catch(e){}return location.pathname} o(wm,"playbackPath"); function Jl(){try{const t=Tr(document).cover;return t?Gt(t):""}catch(t){return""}} o(Jl,"coverFromPage"); var qi="vc_drama_watching_context"; function Fi(){try{sessionStorage.removeItem(qi)}catch(t){}} o(Fi,"markWatchingLeft"); function Sm(t){try{const e=sessionStorage.getItem(qi)===t;sessionStorage.setItem(qi,t);return e}catch(e){return false}} o(Sm,"isSameWatchingContext"); function Zl(t){if(!t)return"";for(const e of document.querySelectorAll("img")){if((e.getAttribute("alt")||"").trim()!==t)continue;const n=e.getAttribute("data-src")||e.getAttribute("data-original")||e.src||"";if(!yt(n))return Gt(n)}return""} o(Zl,"coverFromAlt"); function ou(t,e){if(!e)return()=>{};_i(e);const n=o(()=>{_l(e);Fi()},"onPageHide");const r=o(()=>{if(!document.hidden)_i(e)},"onVisibilityChange");document.addEventListener("pagehide",n);document.addEventListener("visibilitychange",r);let i=Ue(t);const c=ce(e);const a=wn(c)?c.cover:"";const s=a||Vn(e)||Un(e)||Jl()||Zl(e);const l=Jl()||Zl(e);if(l&&l!==a)un(e,l,t.id);const p=cm(e,Ue(t));const f=Sm(e);if(!p&&!f&&c){const x=c.episode||"";const _=xn(x)?x:"";if(c.time>ea){const g=Se(c.time);const D=x?`\u4E0A\u6B21\u64AD\u653E\u5230 ${x} \xB7 ${g}`:`\u4E0A\u6B21\u64AD\u653E\u5230 ${g}`;nt(D,{tone:"warn",icon:"play",variant:"primary",linkText:x?`${x} \xB7 ${g}`:g,onClick:o(()=>{if(bm(c,t)){Di(c.time);return}const h=Yl({target:x,current:Ue(t)});if(!h){if(!x){nt("\u8FD9\u6761\u89C2\u770B\u8BB0\u5F55\u91CC\u6CA1\u6709\u96C6\u6570\u4FE1\u606F\uFF0C\u8BF7\u624B\u52A8\u5207\u6362",{tone:"warn",icon:"play",variant:"primary"})}else if(!Gl(x)){nt(`\u4E0A\u6B21\u662F\u5728\u300C${x}\u300D\u4E0A\u770B\u7684\uFF0C\u8BF7\u624B\u52A8\u5207\u6362`,{tone:"warn",icon:"play",variant:"primary"})}else{nt(`\u6CA1\u627E\u5230 ${x} \u7684\u5165\u53E3\uFF1B\u82E5\u9009\u96C6\u9762\u677F\u6536\u7740\uFF0C\u8BF7\u5148\u5C55\u5F00\u5B83`,{tone:"warn",icon:"play",variant:"primary"})}return}nt(`\u6B63\u5728\u5207\u6362 ${x}\u2026`,{tone:"info",icon:"play",variant:"primary"});hm(h.el,c.time,e,x,t).then(A=>{im();if(A==="pending"){nt(`\u5DF2\u5207\u6362\u5230 ${x}\uFF0C\u70B9\u64AD\u653E\u540E\u4F1A\u4ECE\u4E0A\u6B21\u4F4D\u7F6E\u7EE7\u7EED`,{tone:"warn",icon:"play",variant:"primary"})}else if(A==="timeout"){nt("\u70B9\u4E86\u6CA1\u5207\u8FC7\u53BB\uFF1B\u82E5\u9009\u96C6\u9762\u677F\u6536\u7740\uFF0C\u8BF7\u5148\u5C55\u5F00\u5B83\u518D\u5207",{tone:"warn",icon:"play",variant:"primary"})}})},"onClick")})}else if(x){nt(`\u4E0A\u6B21\u89C2\u770B\u5230 ${x}`,{tone:"warn",icon:"play",variant:"primary",emphasis:_})}}if(p)ru(p,c&&c.episode||"",t);const E=o((x,_)=>{const g=ce(e);Al(e,{episode:_||i,time:x,cover:g&&g.cover||s,path:wm(t),siteId:t.id})},"saveNow");let y=false;const k=setInterval(()=>{const x=Ue(t)||i;if(x&&x!==i){i=x;y=false}const _=xm();if(_&&_.ended)return;if(_&&_.time>ta){y=true;E(_.time,i)}else if(!_&&!y&&i){if(document.hidden)return;y=true;if(!ym(ce(e),i))return;E(0,i)}},Qc);return()=>{clearInterval(k);Xn();document.removeEventListener("pagehide",n);document.removeEventListener("visibilitychange",r)}} o(ou,"initPlayback"); function iu(t){if(!t)return"";const e=Se(t.time);return[jt(t.episode),e].filter(Boolean).join(" \xB7 ")} o(iu,"formatPlayback"); var Em={"same-origin":"\u540C\u6E90 video\uFF08\u7236\u6587\u6863\u76F4\u8FDE\uFF09","cross-origin":"iframe \u64AD\u653E\u5668\uFF08\u8D70\u6865\u63A5\uFF09",none:"\u6CA1\u627E\u5230 video"}; var au=""; var cu=0; var _m=3; function su(){try{const t=JSON.parse(GM_getValue(fr,"{}"));return t&&typeof t==="object"?t:{}}catch(t){return{}}} o(su,"readMap"); function km(t){if(!t)return"";try{return new URL(t.getAttribute("src")||"",location.href).origin}catch(e){return""}} o(km,"originOf"); function Tm(t){if(ie("video").length)return"same-origin";const e=an(t&&t.playerFrameSelector);if(e)return"cross-origin";return"none"} o(Tm,"detectKind"); function Am(t,e,n){au=e;const r=su();r[t.id]={host:location.hostname,kind:e,origin:n,ts:Date.now()};try{GM_setValue(fr,JSON.stringify(r))}catch(i){}$("[\u5F71\u89C6\u6536\u85CF] \u64AD\u653E\u9875\u63A2\u9488\uFF1A"+t.id+"\uFF08"+location.hostname+"\uFF09= "+(Em[e]||e)+(n?"\uFF0C\u64AD\u653E\u5668\u6E90 "+n:""))} o(Am,"settle"); function lu(t,e){if(!t)return;const n=Number(e)||0;const r=su();const i=r[t]||{};if(i.depth===n)return;r[t]=Object.assign({host:location.hostname,kind:"cross-origin"},i,{depth:n,ts:Date.now()});try{GM_setValue(fr,JSON.stringify(r))}catch(c){}$("[\u5F71\u89C6\u6536\u85CF] \u64AD\u653E\u9875\u63A2\u9488\uFF1A"+t+" \u7684\u64AD\u653E\u5668"+(n?"\u5D4C\u5728\u7B2C "+(n+1)+" \u5C42\uFF08\u4E2D\u7EE7\u8F6C\u53D1\uFF09":"\u5C31\u5728\u7B2C\u4E00\u5C42"))} o(lu,"notePlayerDepth"); function Bi(t){if(!t||!t.id||au)return;cu++;const e=Tm(t);if(e!=="none"||cu>=_m){const n=e==="cross-origin"?an(t.playerFrameSelector):null;Am(t,e,km(n))}} o(Bi,"probePlayer"); var uu="__vc_bridge__"; var xt={BOOT:"boot",READY:"ready",STATE:"state",HELLO:"hello",CMD:"cmd"}; var ne={VOLUME:"volume",SEEK:"seek",PLAY:"play",PAUSE:"pause",STATE:"state"}; function fe(t,e){return Object.assign({[uu]:1,t},e||{})} o(fe,"pack"); function to(t){if(!t||typeof t!=="object"||t[uu]!==1)return null;return t} o(to,"unpack"); function ji(){return"vc"+Date.now().toString(36)+Math.random().toString(36).slice(2,8)} o(ji,"makeNonce"); var Lm=60; var Cm=2e3; var Mm=15; var du=new Set; function Zn(t,e){if(du.has(t))return;du.add(t);$(e)} o(Zn,"logOnce"); function Im(t){try{const e=String(t.getAttribute("src")||"");return new URL(e,location.href).origin||e}catch(e){return String(t.getAttribute("src")||"")}} o(Im,"originOf"); var Pm=8; function fu(){let t=null;let e="";let n=null;let r=false;let i=null;let c=null;let a="";const s=[];function l(_,g){try{t.contentWindow.postMessage(fe(_,Object.assign({nonce:e},g||{})),"*");return true}catch(D){return false}}o(l,"post");function p(_,g,{queue:D=false}={}){if(!t||!e){if(D){const h=s[s.length-1];if(h&&h.t===_&&h.data&&g&&h.data.op===g.op){s[s.length-1]={t:_,data:g}}else if(s.length{if(n){k();return}_++;if(_>Mm){k();Zn("no-reply","[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1A\u591A\u6B21\u8BA4\u9886\u90FD\u6CA1\u6709\u56DE\u5E94 \u2014\u2014 \u5B50\u9875\u9762\u91CC\u6CA1\u6709\u811A\u672C\u5728\u8DD1\u3002\u5148\u5237\u65B0\u9875\u9762\u8BA9 iframe \u91CD\u65B0\u52A0\u8F7D\uFF1B\u4ECD\u65E0\u6548\u518D\u68C0\u67E5\u6CB9\u7334\u662F\u5426\u5141\u8BB8\u811A\u672C\u5728\u6846\u67B6\u4E2D\u8FD0\u884C");return}E()},Cm)}o(y,"startHelloRetry");function k(){if(!c)return;clearInterval(c);c=null}o(k,"stopHelloRetry");function x(){if(r)return;r=true;window.addEventListener("message",_=>{const g=to(_.data);if(!g||!t)return;if(_.source!==t.contentWindow)return;if(g.t===xt.BOOT){Zn("boot","[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1A\u5B50\u9875\u9762\u811A\u672C\u5DF2\u542F\u52A8\uFF08"+(g.host||"")+"\uFF09\uFF0C\u7B49\u5B83\u627E video");E();return}if(g.t===xt.READY){if(g.dur&&g.dur!!n,"ready"),time:o(()=>n?n.time:0,"time"),duration:o(()=>n?n.dur:0,"duration"),paused:o(()=>n?n.paused:true,"paused"),volume:o(()=>n?n.vol:1,"volume"),onState(_){i=_},applyVolume(_){return p(xt.CMD,{op:ne.VOLUME,v:_},{queue:true})},seek(_){return p(xt.CMD,{op:ne.SEEK,to:_},{queue:true})},play(){return p(xt.CMD,{op:ne.PLAY})},pause(){return p(xt.CMD,{op:ne.PAUSE})},requestState(){return p(xt.CMD,{op:ne.STATE})}}} o(fu,"createPlayerBridge"); function $i(){return[...oe,...Ln].filter(t=>t.crossSiteTarget!==false&&typeof t.searchPath==="function")} o($i,"jumpableSites"); var eo=null; function pu(){if(eo)return eo;let t=null;try{t=JSON.parse(GM_getValue(An,"[]"))}catch(e){t=null}eo=Array.isArray(t)?t:[];return eo} o(pu,"excludedList"); function Om(t){return pu().indexOf(t)<0} o(Om,"isEnabled"); function vu(t,e){const n=pu();const r=n.indexOf(t);if(e&&r>=0)n.splice(r,1);else if(!e&&r<0)n.push(t);else return;GM_setValue(An,JSON.stringify(n))} o(vu,"setEnabled"); function mu(t){const e=(t||"").trim();return $i().map(n=>{const r=ke(n);return{id:n.id,name:n.name,domain:r,url:e?"https://"+r+n.searchPath(e):"",enabled:Om(n.id)}})} o(mu,"listTargets"); function hu(t){const e=$i().find(n=>n.id===t);return e?Promise.resolve(en(e)).catch(()=>""):Promise.resolve("")} o(hu,"warmDomain"); function gu(t,e){const n=$i().find(c=>c.id===t);const r=(e||"").trim();if(!n||!r)return Promise.resolve("");const i="https://"+ke(n)+n.searchPath(r);return Promise.resolve(en(n)).then(c=>c?"https://"+c+n.searchPath(r):i).catch(()=>i)} o(gu,"resolveUrl"); function pe(){const t=mt();if(!t)return"";const e=t.pageType();if(e==="detail"&&t.getDetailInfo)return(t.getDetailInfo()||{}).name||"";if(e==="play"&&t.getPlayInfo)return(t.getPlayInfo()||{}).name||"";return""} o(pe,"getCurrentName"); function oo(){const t=mt();if(!t||t.pageType()!=="detail"||!t.getDetailInfo)return;const e=t.getDetailInfo();if(!e||!e.name)return;if(e.cover){Pe(e.name,e.cover);un(e.name,e.cover,t.id,true);return}zl(e.name)} o(oo,"cacheCurrentDetailImage"); function io(t,e){const n=Et();return Ft(t,n[e])>-1} o(io,"isFavorited"); function yu(t,e){const n=Et();const r=e==="want"?"watched":"want";const i=Ft(t.name,n[e]);const c=Ft(t.name,n[r]);if(c>-1)n[r].splice(c,1);if(i>-1){n[e].splice(i,1)}else{t.updateTime=Date.now();n[e].unshift(t);if(t.cover)Ci(t.name,t.cover,t.siteId)}Kt(n);Ct.renderedTabs.clear()} o(yu,"toggleFavorite"); function no(t){const e=mt();if(!e)return;const n=e.pageType();let r=null;if(n==="detail")r=e.getDetailInfo?e.getDetailInfo():null;else if(n==="play")r=e.getPlayInfo?e.getPlayInfo():null;if(!r||!r.name)return;const i=r.name;const c=Et();const a=Ft(i,c[t]);if(a>-1){c[t].splice(a,1);Kt(c)}else{let s="";const l=Gt(r.cover);if(n==="detail"){s=l||Vn(i)||Un(i);Pe(i,s)}else if(n==="play"){s=Vn(i)||Un(i)||l}const p=t==="want"?"watched":"want";const f=Ft(i,c[p]);if(f>-1)c[p].splice(f,1);c[t].unshift({name:i,cover:s,path:r.path||location.pathname,siteId:e.id,createTime:Date.now(),updateTime:Date.now()});Kt(c);Ci(i,s,e.id);xu(i,e)}Ct.renderedTabs.clear();Bt()} o(no,"toggleDrama"); var bu=[1500,5e3]; function xu(t,e,n=0){if(!e||typeof e.getSiteRating!=="function")return;const r=e.getSiteRating(document);if(r){al(t,r);return}if(n>=bu.length)return;setTimeout(()=>xu(t,e,n+1),bu[n])} o(xu,"adoptSiteRating"); function wu(){no("want")} o(wu,"toggleWant"); function Su(){no("watched")} o(Su,"toggleWatched"); var Re={name:"",type:""}; function Eu(){const t=pe();if(!t)return;const e=Qn(t);if(e){Re={name:t,type:e};no(e);return}const n=Re.name===t&&Re.type?Re.type:"want";no(n);Re={name:"",type:""}} o(Eu,"togglePrimary"); function _u(){const t=pe();if(!t||Qn(t))return"";return Re.name===t&&Re.type?Re.type:"want"} o(_u,"primaryIntent"); function ku(t,e){if(e==="history"){Ti(t);Ct.renderedTabs.clear();Bt();return}const n=Et();const r=Ft(t,n[e]);if(r>-1){n[e].splice(r,1);Kt(n);Ct.renderedTabs.clear();Bt()}} o(ku,"deleteItem"); function Qn(t){if(!t)return null;const e=Et();if(Ft(t,e.want)>-1)return"want";if(Ft(t,e.watched)>-1)return"watched";return null} o(Qn,"statusOfName"); function ro(t,e,n){return n?n.findIndex(e,t):Ft(t,e)} o(ro,"indexOf"); function Tu(t,e,n){if(!t)return null;if(ro(t,e.want,n)>-1)return"want";if(ro(t,e.watched,n)>-1)return"watched";return null} o(Tu,"statusOf"); function re(t,e,n,r){if(!n)return null;const i=ro(t,e[n],r);return i>-1?e[n].splice(i,1)[0]:null} o(re,"removeFrom"); function Au(t){const e=ce(t);if(!e)return null;return{name:t,cover:e.cover||"",path:e.path||"",siteId:e.siteId||"",createTime:Date.now(),updateTime:Date.now()}} o(Au,"buildFromPlayback"); function Rm(t,e,n){if(!n)return null;const r=Ft(t,e[n]);if(r===-1)return null;return{index:r,prevId:r>0?e[n][r-1].name||"":"",item:{...e[n][r]}}} o(Rm,"capture"); function Dm(t,e){if(e.prevId){const n=t.findIndex(r=>r.name===e.prevId);if(n>-1)return n+1}return Math.max(0,Math.min(e.index,t.length))} o(Dm,"restoreIndex"); function Lu(t,e){const n=Et();const r=Tu(t,n);if(r===e)return{ok:false,from:r};const i=Rm(t,n,r);if(!e){re(t,n,"want");re(t,n,"watched");Kt(n);Ct.renderedTabs.clear();Bt();return{ok:true,from:r,snapshot:i}}const c=re(t,n,r)||Au(t);if(!c)return{ok:false,from:r};re(t,n,"want");re(t,n,"watched");c.updateTime=Date.now();n[e].unshift(c);Kt(n);Ct.renderedTabs.clear();Bt();return{ok:true,from:r,snapshot:i}} o(Lu,"setStatus"); function Cu(t,e,n){if(!e||!n)return false;const r=Et();re(t,r,"want");re(t,r,"watched");r[e].splice(Dm(r[e],n),0,{...n.item});Kt(r);Ct.renderedTabs.clear();Bt();return true} o(Cu,"restoreStatus"); function Mu(t,e){const n=Et();const r=Ao();let i=0;for(const c of t){const a=Tu(c,n,r);if(a===e)continue;if(!e){re(c,n,"want",r);re(c,n,"watched",r);i++;continue}const s=re(c,n,a,r)||Au(c);if(!s)continue;re(c,n,"want",r);re(c,n,"watched",r);s.updateTime=Date.now();n[e].unshift(s);i++}if(i>0){Kt(n);Ct.renderedTabs.clear();Bt()}return i} o(Mu,"batchSetStatus"); function zi(){const t=mt();if(!t)return false;const e=t.pageType();return e==="detail"||e==="play"} o(zi,"isDetailOrPlay"); function Iu(t,e){if(e==="history"){t.forEach(i=>Ti(i));Ct.renderedTabs.clear();Bt();return}const n=Et();const r=Ao();for(const i of t){const c=ro(i,n[e],r);if(c>-1)n[e].splice(c,1)}Kt(n);Ct.renderedTabs.clear();Bt()} o(Iu,"batchDeleteItems"); var Nm=/^(input|textarea|select)$/i; var qm=/^(button|a|summary)$/i; var Hi=[" ","Spacebar"]; var Fm="media-controls, media-container, video-player, video-skin"; var Pu=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"," ","Spacebar"]; var Bm=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"]; function Ou({getVideo:t,step:e=5,volumeStep:n=.05,onAction:r,onNoVideo:i,remote:c}){let a=false;const s=o(()=>!!(c&&typeof c.ready==="function"&&c.ready()),"remoteReady");function l(d){if(d==="ArrowRight"){c.seek(e);return`\u5FEB\u8FDB ${e} \u79D2`}if(d==="ArrowLeft"){c.seek(-e);return`\u5FEB\u9000 ${e} \u79D2`}if(d==="ArrowUp")return`\u97F3\u91CF ${Math.round(c.volume(n)*100)}%`;if(d==="ArrowDown")return`\u97F3\u91CF ${Math.round(c.volume(-n)*100)}%`;if(d===" "||d==="Spacebar"){c.toggle();return"\u64AD\u653E / \u6682\u505C"}return null}o(l,"remoteAction");function p(d){if(!d||!d.tagName)return false;return Nm.test(d.tagName)||d.isContentEditable===true}o(p,"isEditable");function f(d){if(!d||!d.tagName)return false;return qm.test(d.tagName)}o(f,"isActivatable");function E(d){if(!d||!d.tagName)return false;if(typeof d.closest==="function"&&d.closest('[class*="vc-"], [id^="vc-"]'))return false;if(d.tagName.toLowerCase()==="input")return String(d.type||"").toLowerCase()==="range";return typeof d.getAttribute==="function"&&d.getAttribute("role")==="slider"}o(E,"isSlider");function y(d){if(!d||typeof d.closest!=="function")return false;return!!d.closest(Fm)}o(y,"isPlayerControl");function k(d){const S=typeof d.composedPath==="function"?d.composedPath():null;return(S&&S.length?S[0]:d.target)||null}o(k,"realTarget");function x(d){if(d.tabIndex<0&&!d.hasAttribute("tabindex"))d.tabIndex=-1;try{d.focus({preventScroll:true})}catch(S){}}o(x,"focusVideo");function _(d){if(d.paused){Promise.resolve(d.play()).catch(()=>{});return"\u64AD\u653E"}d.pause();return"\u6682\u505C"}o(_,"togglePaused");function g(d,S){const b=d.muted;const C=ze(d,S,{unmute:true});ss();const F=`\u97F3\u91CF ${Math.round(C*100)}%`;return b?`\u5DF2\u53D6\u6D88\u9759\u97F3 \xB7 ${F}`:F}o(g,"setVolume");function D(d,S){switch(d){case"ArrowRight":return()=>{S.currentTime+=e;return`\u5FEB\u8FDB ${e} \u79D2`};case"ArrowLeft":return()=>{S.currentTime=Math.max(0,S.currentTime-e);return`\u5FEB\u9000 ${e} \u79D2`};case"ArrowUp":return()=>g(S,S.volume+n);case"ArrowDown":return()=>g(S,S.volume-n);case" ":case"Spacebar":return()=>_(S);default:return null}}o(D,"actionFor");function h(d){if(d.defaultPrevented)return;if(d.ctrlKey||d.altKey||d.metaKey)return;const S=k(d)||d.target;if(p(S))return;if(Hi.includes(d.key)&&f(S)&&!y(S))return;if(!Pu.includes(d.key))return;const b=t();if(!b||!b.isConnected){if(s()){const H=l(d.key);d.preventDefault();if(H&&r)r(H);return}d.preventDefault();if(i)i();return}const C=D(d.key,b);if(!C)return;const F=C();d.preventDefault();if(F&&r)r(F)}o(h,"onKeyDown");function A(d){if(!d)return false;if(E(d))return true;if(p(d))return false;return y(d)}o(A,"shouldTakeOverSpace");function R(d,S){if(!d)return false;if(E(d))return true;return!!(S&&S.controls&&d===S)}o(R,"shouldTakeOverEarly");function P(d){if(d.ctrlKey||d.altKey||d.metaKey)return;if(!Pu.includes(d.key))return;const S=k(d)||document.activeElement;const b=t();if(Hi.includes(d.key)){if(!A(S)&&!R(S,b))return;d.preventDefault();d.stopPropagation();if(!b||!b.isConnected)return;x(b);_(b);return}if(!Bm.includes(d.key)||!R(S,b))return;d.preventDefault();d.stopPropagation();if(!b||!b.isConnected){if(i)i();return}const C=D(d.key,b);if(!C)return;const F=C();if(F&&r)r(F)}o(P,"onKeyDownCapture");function L(d){if(!Hi.includes(d.key)||d.ctrlKey||d.altKey||d.metaKey)return;const S=k(d)||document.activeElement;if(!A(S))return;d.preventDefault();d.stopPropagation()}o(L,"onKeyUpCapture");return{enable(){if(a)return;a=true;window.addEventListener("keydown",P,true);window.addEventListener("keyup",L,true);window.addEventListener("keydown",h)},disable(){if(!a)return;a=false;window.removeEventListener("keydown",P,true);window.removeEventListener("keyup",L,true);window.removeEventListener("keydown",h)}}} o(Ou,"createPlayerKeyboard"); var jm=.6; function Nu(){const t=$m();if(t!==null)return t>jm;return Vm()} o(Nu,"isLightPage"); function $m(){const t=zm();if(t!==null)return t;for(const e of[document.body,document.documentElement]){if(!e)continue;const n=qu(e);if(n!==null)return n}return Hm()} o($m,"pageBrightness"); function zm(){let t=null;try{t=document.elementFromPoint(window.innerWidth/2,window.innerHeight/2)}catch{}const e=window.innerWidth*window.innerHeight*.5;for(let n=t;n;n=n.parentElement){const r=qu(n);if(r===null)continue;const i=n.getBoundingClientRect();if(i.width*i.height>=e)return r}return null} o(zm,"backgroundAtPanelSpot"); function qu(t){const e=co(getComputedStyle(t).backgroundColor);if(e!==null)return e;const n=Ru(getComputedStyle(t).backgroundImage);if(n!==null)return n;for(const r of["::before","::after"]){const i=getComputedStyle(t,r);if(!i||i.content==="none"||i.display==="none")continue;const c=co(i.backgroundColor);if(c!==null)return c;const a=Ru(i.backgroundImage);if(a!==null)return a}return null} o(qu,"nodeBrightness"); function Ru(t){const e=String(t||"");if(!e||e==="none")return null;const n=/#[0-9a-f]{3,8}\b|rgba?\([^)]*\)|(?:lab|lch|oklab|oklch|hsla?|color)\([^)]*\)/i.exec(e);return n?co(n[0]):null} o(Ru,"gradientBrightness"); function Hm(){const t=document.body||document.documentElement;if(!t)return null;const e=co(getComputedStyle(t).color);if(e===null)return null;if(e>.75)return .2;if(e<.35)return .9;return null} o(Hm,"textBrightnessHint"); function co(t){const e=String(t||"").trim().toLowerCase();if(!e||e==="transparent"||e==="currentcolor"||e==="none")return null;const n=/^([a-z-]+)\(([^)]*)\)$/.exec(e);if(!n)return Um(e);const r=n[1];const i=n[2].split("/");if(i[1]!==void 0&&Du(i[1])<.5)return null;if(i[0].indexOf("var(")>=0)return null;const c=i[0].match(/-?[\d.]+%?/g)||[];const a=o(l=>{const p=c[l];if(p===void 0)return null;return p.indexOf("%")>=0?parseFloat(p)/100:parseFloat(p)},"num");const s=o(l=>c.length>=l&&c.slice(0,l).every(p=>p!==""),"has");switch(r){case"rgb":case"rgba":{if(!s(3))return null;if(c.length>=4&&Du(c[3])<.5)return null;const l=c.slice(0,3).map(p=>p.indexOf("%")>=0?parseFloat(p)*2.55:parseFloat(p));return Ui(l)}case"hsl":case"hsla":return s(3)?a(2):null;case"lab":case"lch":{if(!s(1))return null;return c[0].indexOf("%")>=0?a(0):a(0)/100}case"oklab":case"oklch":{const l=a(0);return l===null?null:l>1?l/100:l}case"color":{if(c.length<3)return null;return Ui([a(0)*255,a(1)*255,a(2)*255])}default:return null}} o(co,"brightnessOf"); function Um(t){const e=/^#([0-9a-f]{3}|[0-9a-f]{6})$/.exec(t);if(!e)return null;let n=e[1];if(n.length===3)n=n.split("").map(r=>r+r).join("");return Ui([parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)])} o(Um,"hexBrightness"); function Du(t){const e=String(t).trim();return e.indexOf("%")>=0?parseFloat(e)/100:parseFloat(e)} o(Du,"alphaOf"); function Ui([t,e,n]){return(.299*t+.587*e+.114*n)/255} o(Ui,"luminance"); function Vm(){if(!window.matchMedia)return false;return!window.matchMedia("(prefers-color-scheme: dark)").matches} o(Vm,"prefersLight"); var ht={openDuration:600,closeDuration:500,openEase:"outCubic",closeEase:"inCubic",panelRadius:16,buttonRadius:14,slices:200,cornerSlices:32,genieSpread:1.6,verticalThresholdRatio:.18,fallbackPad:260,zIndex:100002,closeHandoffRatio:.55,canvasPad:8,maxDpr:2,fill:"rgba(30, 32, 44, 0.72)",highlight:"rgba(255, 255, 255, 0.14)",highlightHeight:2,stroke:"rgba(255, 255, 255, 0.16)"}; var Fu={outCubic:o(t=>1-Math.pow(1-t,3),"outCubic"),inCubic:o(t=>t*t*t,"inCubic"),linear:o(t=>t,"linear")}; function Gm(){return!!(window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)} o(Gm,"prefersReducedMotion"); function Vi({panelRect:t,buttonRect:e,reverse:n,canvasZ:r,fill:i,highlight:c,stroke:a,onHandoff:s,onDone:l}){const p=n?ht.openDuration:ht.closeDuration;const f=Fu[n?ht.openEase:ht.closeEase]||Fu.linear;const E=i||ht.fill;const y=c||ht.highlight;const k=a||ht.stroke;const x=t&&e&&t.width>0&&t.height>0&&e.width>0&&e.height>0;if(!x||Gm()||p<=0){if(l)l();return}const _=ht.canvasPad;const g=Math.floor(Math.min(t.left,e.left)-_);const D=Math.floor(Math.min(t.top,e.top)-_);const h=Math.ceil(Math.max(t.right,e.right)+_-g);const A=Math.ceil(Math.max(t.bottom,e.bottom)+_-D);const R=Math.min(ht.maxDpr,Math.max(1,window.devicePixelRatio||1));const P=document.createElement("canvas");P.width=Math.round(h*R);P.height=Math.round(A*R);P.style.cssText=`position:fixed;left:${g}px;top:${D}px;width:${h}px;height:${A}px;pointer-events:none;z-index:${r||ht.zIndex};`;document.body.appendChild(P);const L=P.getContext("2d");L.setTransform(R,0,0,R,-g*R,-D*R);L.lineJoin="round";const d=t.left;const S=t.top;const b=t.width;const C=t.height;const F=d+b/2;const H=S+C/2;const ct=e.left;const N=e.top;const j=e.width;const J=e.height;const gt=ct+j/2;const _t=N+J/2;const bt=gt-F;const Rt=_t-H;const st=Math.abs(Rt)>C*ht.verticalThresholdRatio;const se=st?Rt>=0:bt>=0;const Wt=ht.slices;const Dt=ht.cornerSlices;const Xt=Wt-2*Dt;const kt=Wt+1;const le=new Float32Array(kt);const q=new Float32Array(kt);const wt=new Float32Array(kt);let Tt=null;function Jt(ft){const rt=C+(J-C)*ft;const It=b+(j-b)*ft;const T=ht.panelRadius+(ht.buttonRadius-ht.panelRadius)*ft;const G=st?rt:It;const V=G>0?Math.min(.45,T/G):0;let Z=Infinity,ot=-Infinity,St=Infinity,pt=-Infinity;for(let K=0;K=Wt-Dt)vt=1-(Wt-K)/Dt*V;else vt=V+(K-Dt)/Xt*(1-2*V);const vn=se?vt:1-vt;let Zt=ft*(1+vn*ht.genieSpread);if(Zt>1)Zt=1;const mn=b+(j-b)*Zt;const xe=C+(J-C)*Zt;let Nt=0;let ve,me,Ht;if(st){const we=S+vt*C;const hn=N+vt*J;const gn=we+(hn-we)*Zt;const Fe=F+(gt-F)*Zt;if(vt1-V){const qt=(vt-(1-V))*rt;Nt=T-Math.sqrt(Math.max(0,T*T-qt*qt))}const Lt=mn/2-.5;if(Nt>Lt)Nt=Lt>0?Lt:0;ve=Fe-mn/2+Nt;me=Fe+mn/2-Nt;Ht=gn;if(veot)ot=me;if(Htpt)pt=Ht}else{const we=d+vt*b;const hn=ct+vt*j;const gn=we+(hn-we)*Zt;const Fe=H+(_t-H)*Zt;if(vt1-V){const qt=(vt-(1-V))*It;Nt=T-Math.sqrt(Math.max(0,T*T-qt*qt))}const Lt=xe/2-.5;if(Nt>Lt)Nt=Lt>0?Lt:0;ve=Fe-xe/2+Nt;me=Fe+xe/2-Nt;Ht=gn;if(Htot)ot=Ht;if(vept)pt=me}le[K]=ve;q[K]=me;wt[K]=Ht}if(Tt){L.clearRect(Tt.x0-2,Tt.y0-2,Tt.x1-Tt.x0+4,Tt.y1-Tt.y0+4)}else{L.clearRect(g,D,h,A)}Tt={x0:Z,x1:ot,y0:St,y1:pt};L.beginPath();if(st){L.moveTo(q[0],wt[0]);for(let K=1;K=0;K--)L.lineTo(le[K],wt[K])}else{L.moveTo(wt[0],le[0]);for(let K=1;K=0;K--)L.lineTo(wt[K],q[K])}L.closePath();L.fillStyle=E;L.fill();if(y&&ht.highlightHeight>0){const K=L.createLinearGradient(0,St,0,St+ht.highlightHeight);K.addColorStop(0,y);K.addColorStop(1,"rgba(255, 255, 255, 0)");L.save();L.globalCompositeOperation="source-atop";L.fillStyle=K;L.fillRect(Z,St,ot-Z,ht.highlightHeight);L.restore()}if(k){L.lineWidth=1;L.strokeStyle=k;L.stroke()}}o(Jt,"drawFrame");let w=false;let I=0;let U=0;function z(){if(w)return;w=true;cancelAnimationFrame(I);clearTimeout(U);P.remove();if(l)l()}o(z,"finish");Jt(n?1:0);const it=performance.now();let at=false;function Q(ft){if(w)return;const rt=Math.min(1,(ft-it)/p);const It=f(rt);if(!n&&!at&&rt>=ht.closeHandoffRatio){at=true;if(s)s()}Jt(n?1-It:It);if(rt<1)I=requestAnimationFrame(Q);else z()}o(Q,"frame");I=requestAnimationFrame(Q);U=setTimeout(z,p+ht.fallbackPad)} o(Vi,"runGenie"); var ao=[{set:"want",icon:"\u2B50",label:"\u60F3\u770B"},{set:"watched",icon:"\u2713",label:"\u5DF2\u770B"}]; var Ve=ao.reduce((t,e)=>{t[e.set]=e.label;return t},{}); function Bu(t){return ao.map(e=>{const n=t?"vc-status-btn "+t:"vc-status-btn";return``}).join("")} o(Bu,"statusButtonsHtml"); function ju(t){const e=getComputedStyle(t);return{fill:e.backgroundColor,highlight:e.getPropertyValue("--vc-top-highlight").trim(),stroke:e.borderTopColor}} o(ju,"panelShapeColors"); var Ym=1e3; function $u(t){const{state:e,pageSize:n,loadFn:r,filterFn:i,getId:c,getTitle:a,getTitleHintFn:s,getUrl:l,resolveUrlFn:p,getSiteName:f,getTime:E,getAvcode:y,getStatus:k,setStatusFn:x,restoreStatusFn:_,deleteFn:g,batchSetStatusFn:D,batchDeleteFn:h,exportFn:A,importFn:R,updateButtonStateFn:P,openSettingsFn:L,openWebSearchFn:d,getExtraInfo:S,resolveSiteIdFn:b,resolveCoverFn:C,resolveCoverFallbackFn:F,onCoverFailed:H,onCoverLoaded:ct,resolveCoverClassFn:N,getCoverFitFn:j,resolvePreviewFn:J,hasHistory:gt,emptyText:_t,templates:bt,getOriginRectFn:Rt,setFloatPanelFn:st,getMetaFn:se,metaStaleFn:Wt,requestMetaFn:Dt,metaEnabledFn:Xt,resetRatingQueueFn:kt}=t;const le={want:"\u60F3\u770B",watched:"\u5DF2\u770B",history:"\u89C2\u770B\u8BB0\u5F55"};let q=null;let wt=false;let Tt=false;let Jt=null;let w=false;const I=new Set;const U=new Map;function z(){const u=document.createElement("div");u.className="vc-mask";u.onclick=M=>{if(M.target===u)yo()};const v=document.createElement("div");v.className="vc-panel";v.innerHTML=bt.panelTemplate;if(!gt){const M=v.querySelector('.vc-tab[data-vc-type="history"]');const O=v.querySelector('.vc-list-wrap[data-vc-type="history"]');if(M)M.style.display="none";if(O)O.style.display="none"}u.appendChild(v);document.body.appendChild(u);q=u;_e(u,document.body);xo();it(v);let m=null;window.addEventListener("resize",()=>{clearTimeout(m);m=setTimeout(()=>ac(q),200)})}o(z,"createPanel");function it(u){u.querySelector(".vc-close").onclick=yo;at(u);Q(u);ft(u);T(u);G(u)}o(it,"bindPanelEvents");function at(u){u.querySelectorAll(".vc-tab").forEach(v=>{v.onclick=()=>{if(wt)We();u.querySelectorAll(".vc-tab").forEach(m=>m.classList.remove("vc-active"));v.classList.add("vc-active");Lt();e.currentTab=v.dataset.vcType;Z(v.dataset.vcType)}})}o(at,"bindTabEvents");function Q(u){const v=u.querySelector(".vc-search");const m=o(()=>{e.searchKeyword=v.value.trim();e.currentPage[e.currentTab]=1;e.renderedTabs.clear();Lt();ot()},"runSearch");let M=null;v.oninput=()=>{clearTimeout(M);M=setTimeout(m,Rc)};const O=u.querySelector(".vc-search-clear");if(O){O.onclick=()=>{if(!v.value)return;v.value="";m();v.focus()}}}o(Q,"bindSearchEvents");function ft(u){const v=u.querySelector("#vc-refresh");v.onclick=()=>{e.renderedTabs.clear();Lt();ot();It(v);nt("\u5217\u8868\u5DF2\u5237\u65B0",{tone:"ok"})};const m=u.querySelector(".vc-header-menu-wrap");u.querySelector("#vc-more").onclick=()=>{rt(!u.querySelector("#vc-header-menu").classList.contains("vc-show"))};const M=o(B=>()=>{rt(false);B()},"runFromMenu");u.querySelector("#vc-export").onclick=M(A);u.querySelector("#vc-import").onclick=M(()=>{R(()=>{e.renderedTabs.clear();Lt();ot();if(P)P()})});u.querySelector("#vc-settings").onclick=()=>{if(L)L()};const O=u.querySelector("#vc-web-search");if(d)O.onclick=M(()=>d());else O.style.display="none";document.addEventListener("click",B=>{if(!m.contains(B.target))rt(false)})}o(ft,"bindHeaderActions");function rt(u){const v=q&&q.querySelector("#vc-header-menu");if(!v)return;if(v.classList.contains("vc-show")===u)return;v.classList.toggle("vc-show",u);q.querySelector("#vc-more").setAttribute("aria-expanded",u?"true":"false")}o(rt,"setHeaderMenu");function It(u){u.classList.remove("vc-spin");void u.offsetWidth;u.classList.add("vc-spin");u.addEventListener("animationend",()=>u.classList.remove("vc-spin"),{once:true})}o(It,"playRefreshSpin");function T(u){u.querySelector("#vc-first").onclick=()=>xe(1);u.querySelector("#vc-prev").onclick=()=>xe(e.currentPage[e.currentTab]-1);u.querySelector("#vc-next").onclick=()=>xe(e.currentPage[e.currentTab]+1);u.querySelector("#vc-last").onclick=()=>xe(Zt(e.currentTab));const v=u.querySelector("#vc-site-select");v.addEventListener("change",()=>{e.siteFilter=v.value;e.currentPage[e.currentTab]=1;e.renderedTabs.clear();Lt();ot()})}o(T,"bindPagerEvents");function G(u){u.querySelector("#vc-batch-toggle").onclick=()=>{if(wt)We();else Yd()};u.querySelector("#vc-batch-selectall").onchange=v=>{const m=u.querySelector(`#vc-grid-${e.currentTab}`);const M=m?m.querySelectorAll(".vc-card"):[];M.forEach(O=>{const B=O.dataset.vcId;const W=O.querySelector(".vc-card-check");if(v.target.checked){I.add(B);O.classList.add("vc-selected");if(W)W.checked=true}else{I.delete(B);O.classList.remove("vc-selected");if(W)W.checked=false}});go()};u.querySelector("#vc-batch-move-want").onclick=()=>V("want");u.querySelector("#vc-batch-move-watched").onclick=()=>V("watched");u.querySelector("#vc-batch-delete").onclick=async()=>{if(I.size===0)return;const v=e.currentTab;const m=v==="history"?"\u89C2\u770B\u8BB0\u5F55":"\u6536\u85CF";const M=await Ce(`\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u7684 ${I.size} \u6761${m}\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002`,{danger:true});if(!M)return;h(Array.from(I),v);We()};u.querySelector("#vc-batch-cancel").onclick=()=>We()}o(G,"bindBatchEvents");async function V(u){if(I.size===0)return;const v=u?`\u79FB\u5230${Ve[u]}`:"\u53D6\u6D88\u6536\u85CF";const m=await Ce(`\u786E\u5B9A\u5C06\u9009\u4E2D\u7684 ${I.size} \u6761${v}\u5417\uFF1F`);if(!m)return;const M=D?D(Array.from(I),u):0;Lt();We();nt(`\u5DF2${v} ${M} \u6761`,{tone:"ok"})}o(V,"runBatchStatus");function Z(u){q.querySelectorAll(".vc-list-wrap").forEach(v=>{v.classList.toggle("vc-active",v.dataset.vcType===u)});if(!e.renderedTabs.has(u)){cc(u);e.renderedTabs.add(u)}bo()}o(Z,"switchTab");function ot(){mn();cc(e.currentTab);e.renderedTabs.add(e.currentTab);bo();if(wt)go();if(w){w=false;pt()}}o(ot,"renderActiveList");function St(u){const v=b?b(u):u.siteId||"";return v||""}o(St,"siteIdOf");function pt(){const u=q.querySelector(".vc-panel");if(!u)return;u.classList.add("vc-content-enter");void u.offsetWidth;u.classList.remove("vc-content-enter")}o(pt,"playContentEnter");function K(u){const v=new Map;u.forEach(m=>{const M=St(m);if(!M||v.has(M))return;v.set(M,f(m)||M)});return Array.from(v,([m,M])=>({id:m,name:M}))}o(K,"collectSiteFilters");function vt(u){const v=q.querySelector("#vc-site-select");if(!v)return;const m=[{id:"",name:"\u5168\u90E8"},...u];v.innerHTML=m.map(M=>``).join("");if(!u.some(M=>M.id===e.siteFilter))e.siteFilter="";v.value=e.siteFilter}o(vt,"renderSiteSelect");function vn(u){let v=i(u,e.searchKeyword);if(e.siteFilter)v=v.filter(m=>St(m)===e.siteFilter);return v}o(vn,"applyFilters");function Zt(u){const v=r();const m=vn(v[u]||[]);return Math.ceil(m.length/n)||1}o(Zt,"getTotalPages");function mn(){const u=Zt(e.currentTab);const v=e.currentPage[e.currentTab]||1;const m=Math.max(1,Math.min(v,u));if(m!==v)e.currentPage[e.currentTab]=m}o(mn,"clampCurrentPage");function xe(u){const v=Zt(e.currentTab);const m=Math.max(1,Math.min(u,v));if(m===e.currentPage[e.currentTab])return;e.currentPage[e.currentTab]=m;e.renderedTabs.clear();Lt();ot()}o(xe,"jumpToPage");function Nt(u){return u==="want"||u==="watched"?u:null}o(Nt,"normalizeStatus");function ve(u){const v=u.querySelector(".vc-card-status");return v?Nt(v.dataset.vcStatus):null}o(ve,"getCardStatus");function me(u,v){const m=u.querySelector(".vc-card-status");if(m)m.dataset.vcStatus=v||"none"}o(me,"applyCardStatus");function Ht(u,v,m){const M=ve(u);const O=M===m?null:m;const B=x?x(v,O):null;if(!B||!B.ok)return;e.renderedTabs.clear();if(P)P();if(e.currentTab==="history"){me(u,O);nt(O?`\u5DF2\u52A0\u5165${Ve[O]}`:"\u5DF2\u53D6\u6D88\u6536\u85CF",{tone:"ok"});return}U.set(v,{from:B.from,to:O,snapshot:B.snapshot});we(u,O)}o(Ht,"changeCardStatus");function we(u,v){u.classList.add("vc-pending");const m=u.querySelector(".vc-card-actions");if(m)m.remove();if(u.querySelector(".vc-card-pending"))return;const M=document.createElement("div");M.className="vc-card-pending";const O=document.createElement("span");O.className="vc-card-pending-text";O.textContent=v?`\u5DF2\u79FB\u5230${Ve[v]}`:"\u5DF2\u53D6\u6D88\u6536\u85CF";const B=document.createElement("button");B.className="vc-card-undo";B.type="button";B.textContent="\u64A4\u9500";B.addEventListener("click",W=>{W.stopPropagation();gn(u.dataset.vcId)});M.appendChild(O);M.appendChild(B);u.appendChild(M)}o(we,"applyPendingCard");function hn(u){if(U.size===0)return;u.querySelectorAll(".vc-card").forEach(v=>{const m=U.get(v.dataset.vcId);if(m)we(v,m.to)})}o(hn,"restorePendingCards");function gn(u){const v=U.get(u);if(!v)return;if(_)_(u,v.from,v.snapshot);U.delete(u);e.renderedTabs.clear();if(P)P();ot()}o(gn,"undoPendingChange");function Fe(u,v,m){g(v,m);e.renderedTabs.clear();if(P)P();const M=u.parentElement;u.remove();bo();if(M&&!M.querySelector(".vc-card")){const O=document.createElement("div");O.className="vc-empty";O.textContent=_t;M.appendChild(O)}}o(Fe,"removeCard");function Lt(){U.clear()}o(Lt,"invalidatePending");const qt=new Set;function oc(u,v){return[u,v?"vc-cover-ready":""].filter(Boolean).join(" ")}o(oc,"joinCoverClass");function ic(u,v){return typeof N==="function"?N(u,!!v)||"":""}o(ic,"coverClassOf");function cc(u){const v=r();const m=v[u]||[];vt(K(m));const M=vn(m);const O=e.currentPage[u];const B=(O-1)*n;const W=M.slice(B,B+n);const et=q.querySelector(`#vc-grid-${u}`);if(M.length===0){et.innerHTML="";const tt=document.createElement("div");tt.className="vc-empty";tt.textContent=_t;et.appendChild(tt);return}et.innerHTML=W.map(tt=>{const he=C?C(tt):tt.cover||"";const Qt=yn(he);const Zd=Qt?or(bt.coverImageTemplate,{cover:ut(Qt),title:ut(a(tt)),coverClass:ut(oc(ic(tt),qt.has(he)))}):bt.defaultCoverTemplate;const fc=y?y(tt):tt.avcode||"";const Qd=fc?``:"";const tf=Nt(k?k(tt):null);const pc=a(tt);return or(bt.cardTemplate,{id:ut(c(tt)),title:ut(pc),titleHint:ut(jd(tt,pc)),url:ut(l(tt)),siteName:ut(f(tt)),dateStr:ut(mc(E(tt))),dateFull:ut(hc(E(tt))),lastPlayed:ut(S?S(tt):""),status:ut(tf||"none"),statusButtons:Bu("vc-card-status-btn"),rateHtml:nr(Md(tt))||Id(tt),coverHtml:Zd,copyBtnHtml:Qd})}).join("");Dd(et,v,u);hn(et);Pd(et,W)}o(cc,"renderList");function Md(u){if(!se||!Xt||!Xt())return null;return se(u)||null}o(Md,"metaOf");function nr(u){if(!u||u.miss)return"";if(!u.score&&u.norate){const M=yn(u.url);const O="\u8C46\u74E3\u5DF2\u6536\u5F55\u8FD9\u4E00\u90E8\uFF0C\u6682\u65E0\u8BC4\u5206\uFF08\u5C1A\u672A\u5F00\u5206\uFF09";return M?`\u8C46\u74E3 --`:`\u8C46\u74E3 --`}if(!u.score)return"";const v=ut(u.score);const m=yn(u.url);return m?`\u8C46\u74E3 ${v}`:`\u8C46\u74E3 ${v}`}o(nr,"rateHtmlOf");function Id(u){if(!Dt||!Xt||!Xt())return"";const v=String(c(u)??"");if(!v)return"";return``}o(Id,"rateFetchHtml");function Pd(u,v){if(!Dt||!Xt||!Xt())return;if(kt)kt();v.forEach(m=>{if(se&&se(m)&&!(Wt&&Wt(m)))return;const M=String(c(m)??"");if(!M)return;Dt(M,O=>{if(!O||O.miss)return;const B=Array.prototype.filter.call(u.children,et=>et.dataset.vcId===M)[0];const W=B&&B.querySelector(".vc-card-rate");if(W)W.innerHTML=nr(O)})})}o(Pd,"primeRatings");function Od(u,v){const m=u.parentElement;if(!m)return;const M=u.closest(".vc-card");const O=M?v.find(B=>String(c(B))===M.dataset.vcId):null;if(m.dataset.vcCoverTried){m.innerHTML=bt.defaultCoverTemplate;if(O&&H)H(O,mo(u));return}m.dataset.vcCoverTried="1";m.innerHTML=bt.defaultCoverTemplate;if(O&&H)H(O,mo(u));if(!F||!O){vo(u,m,v);return}Promise.resolve(F(O)).then(B=>{if(!m.isConnected)return;if(!B){vo(u,m,v);return}const W=yn(B);if(!W)return;m.innerHTML=or(bt.coverImageTemplate,{cover:ut(W),title:ut(a(O)),coverClass:ut(oc(ic(O,true),qt.has(W)))});ho(m,v)}).catch(()=>{vo(u,m,v)})}o(Od,"handleCoverError");function vo(u,v,m){if(!v.isConnected)return;const M=mo(u);if(!M)return;const O=document.createElement("img");O.referrerPolicy="no-referrer";O.alt=u.getAttribute("alt")||"";O.className=u.className.replace(/\bvc-cover-ready\b/g,"").trim();O.src=M;v.innerHTML="";v.appendChild(O);ho(v,m)}o(vo,"retryWithoutReferer");function mo(u){return u.currentSrc||u.src||""}o(mo,"imgSrc");function ho(u,v){u.querySelectorAll(".vc-card-cover img").forEach(m=>{if(m.dataset.vcCoverBound)return;m.dataset.vcCoverBound="1";const M=o(()=>{if(m.classList.contains("vc-cover-ready"))return;void m.offsetWidth;m.classList.add("vc-cover-ready");const et=m.getAttribute("src");if(et&&m.naturalWidth)qt.add(et)},"fadeIn");const O=400;const B=o(()=>{if(typeof m.decode!=="function"){M();return}let et=false;const tt=o(()=>{if(et)return;et=true;M()},"done");const he=setTimeout(tt,O);const Qt=o(()=>{clearTimeout(he);tt()},"finish");m.decode().then(Qt).catch(Qt)},"fadeInWhenDecoded");if(m.complete&&m.naturalWidth){B()}else{m.addEventListener("load",B,{once:true})}m.addEventListener("error",()=>Od(m,v));if(!ct)return;const W=o(()=>{if(!m.naturalWidth)return;const et=m.closest(".vc-card");const tt=et?v.find(he=>String(c(he))===et.dataset.vcId):null;if(tt)ct(tt)},"reportLoaded");m.addEventListener("load",W);if(m.complete)W()})}o(ho,"bindCoverEvents");function ac(u){if(!u||typeof u.querySelectorAll!=="function")return;u.querySelectorAll(".vc-card-title").forEach(v=>{const m=v.scrollHeight;if(m)v.style.setProperty("--vc-title-full",`${m}px`)})}o(ac,"measureTitles");function Rd(u,v,m){if(u.detail===0)return false;return Math.abs(u.clientX-v)>3||Math.abs(u.clientY-m)>3}o(Rd,"isTextSelect");function Dd(u,v,m){ac(u);u.querySelectorAll(".vc-card").forEach(M=>{const O=M.dataset.vcId;const B=M.dataset.vcUrl;const W=v[m].find(Qt=>c(Qt)===O);let et=0,tt=0;M.addEventListener("mousedown",Qt=>{et=Qt.clientX;tt=Qt.clientY});const he=o(Qt=>Rd(Qt,et,tt),"isDownSelect");if(wt)Nd(M,O,he);else qd(M,O,W,B,m,he)});ho(u,v[m]||[])}o(Dd,"bindCardEvents");function Nd(u,v,m){const M=u.querySelector(".vc-card-check");u.addEventListener("click",O=>{if(O.target.closest(".vc-card-checkbox"))return;if(m(O))return;uc(u,v)});if(M){M.addEventListener("change",()=>{uc(u,v,M.checked)})}if(I.has(v)){u.classList.add("vc-selected");if(M)M.checked=true}}o(Nd,"bindBatchCardEvents");function qd(u,v,m,M,O,B){if(p){u.addEventListener("mouseenter",()=>{Promise.resolve(p(m,M)).catch(()=>{})},{once:true})}u.addEventListener("click",async W=>{if(B(W))return;if(W.target.closest(".vc-card-actions, .vc-card-status, .vc-card-rate"))return;if(W.target.closest(".vc-card-cover")){$d(W.target,m);return}sc(m,M)});zd(u,v);Hd(u);Vd(u,m,M,B);Fd(u,m);Gd(u,v,O)}o(qd,"bindNormalCardEvents");function Fd(u,v){const m=u.querySelector(".vc-card-rate-fetch");if(!m)return;m.addEventListener("click",M=>{M.stopPropagation();if(m.dataset.vcBusy==="1")return;m.dataset.vcBusy="1";m.textContent="\u67E5\u8BE2\u4E2D\u2026";const O=m.dataset.vcId||String(c(v)??"");Dt(O,B=>{m.dataset.vcBusy="";if(B&&!B.miss&&B.score){const et=m.parentElement;if(et)et.innerHTML=nr(B);return}if(B&&B.norate){const et=m.parentElement;if(et)et.innerHTML=nr(B);nt("\u8C46\u74E3\u5DF2\u6536\u5F55\u8FD9\u4E00\u90E8\uFF0C\u6682\u65E0\u8BC4\u5206\uFF08\u5C1A\u672A\u5F00\u5206\uFF09",{tone:"warn"});return}m.textContent="\u8C46\u74E3 ?";const W=!!(B&&B.miss);m.title=W?"\u8C46\u74E3\u6CA1\u6709\u8FD9\u4E00\u90E8\u7684\u8BC4\u5206\uFF08\u53EF\u518D\u70B9\u4E00\u6B21\u91CD\u8BD5\uFF09":"\u6CA1\u67E5\u5230\u8C46\u74E3\u8BC4\u5206\uFF08\u53EF\u518D\u70B9\u4E00\u6B21\u91CD\u8BD5\uFF09";nt(W?"\u8C46\u74E3\u6CA1\u6709\u8FD9\u4E00\u90E8\u7684\u8BC4\u5206":"\u6CA1\u67E5\u5230\u8C46\u74E3\u8BC4\u5206\uFF1A\u989D\u5EA6\u7528\u5C3D\u6216\u88AB\u98CE\u63A7\u65F6\u4F1A\u67E5\u4E0D\u52A8\uFF08\u72B6\u6001\u89C1\u8BBE\u7F6E \u2192\u300C\u5F71\u89C6\u4FE1\u606F\u300D\uFF09",{tone:W?"warn":"error"})},{force:true})})}o(Fd,"bindRatingFetch");async function sc(u,v){let m=v;if(p){try{m=await p(u,v)||v}catch(M){m=v}}if(m)window.open(m,"_blank","noopener,noreferrer")}o(sc,"openItem");function Bd(u){const v=y?y(u):u.avcode||"";return v||a(u)||""}o(Bd,"copyTextOf");function jd(u,v){const m=typeof s==="function"?s(u):v;const M=y?y(u):u.avcode||"";return`${m}\uFF08\u53CC\u51FB\u590D\u5236${M?"\u756A\u53F7":""}\uFF09`}o(jd,"titleHintOf");function $d(u,v){if(!(u&&u.tagName==="IMG"&&(v==null?void 0:v.cover)))return;const m=u.src||v.cover;if(!J){Mo(m);return}Mo();const M=Promise.resolve(J(v)).catch(()=>"");const O=new Promise(B=>setTimeout(()=>B(""),Ym));Promise.race([M,O]).then(B=>Io(B||m));M.then(B=>{if(B)Io(B)})}o($d,"openCoverPreview");function zd(u,v){u.querySelectorAll(".vc-card-status-btn").forEach(m=>{m.addEventListener("click",M=>{M.stopPropagation();Ht(u,v,m.dataset.vcSet)})})}o(zd,"bindStatusButtons");function Hd(u){const v=u.querySelector(".vc-card-copy");if(!v)return;v.addEventListener("click",m=>{m.stopPropagation();lc(u,v.dataset.vcAvcode||"")})}o(Hd,"bindCopyButton");const Ud=250;function Vd(u,v,m,M){const O=u.querySelector(".vc-card-title");if(!O)return;const B=Bd(v);if(!B)return;let W=null;O.addEventListener("click",et=>{if(M(et))return;et.stopPropagation();if(W)return;W=setTimeout(()=>{W=null;sc(v,m)},Ud)});O.addEventListener("dblclick",et=>{et.stopPropagation();if(W){clearTimeout(W);W=null}const tt=window.getSelection();if(tt)tt.removeAllRanges();lc(u,B)})}o(Vd,"bindTitleDblClick");function lc(u,v){if(!Sc(v))return;const m=u.querySelector(".vc-card-copy");if(!m){nt("\u5DF2\u590D\u5236\uFF1A"+v,{tone:"ok"});return}m.textContent="\u2705";clearTimeout(m._copyTimer);m._copyTimer=setTimeout(()=>{m.textContent="\u{1F4CB}"},Dc)}o(lc,"copyAndFeedback");function Gd(u,v,m){const M=m==="history"?"\u786E\u5B9A\u5220\u9664\u8FD9\u6761\u89C2\u770B\u8BB0\u5F55\u5417\uFF1F":"\u786E\u5B9A\u5220\u9664\u8FD9\u6761\u6536\u85CF\u5417\uFF1F";u.querySelector(".vc-card-delete-btn").addEventListener("click",O=>{O.stopPropagation();Ce(M,{danger:true}).then(B=>{if(B)Fe(u,v,m)})})}o(Gd,"bindDeleteButton");function uc(u,v,m){const M=u.querySelector(".vc-card-check");const O=m!==void 0?m:!I.has(v);if(O){I.add(v);u.classList.add("vc-selected");if(M)M.checked=true}else{I.delete(v);u.classList.remove("vc-selected");if(M)M.checked=false}go()}o(uc,"toggleCardSelected");function Yd(){wt=true;I.clear();q.querySelector(".vc-panel").classList.add("vc-batch-mode");q.querySelector("#vc-batch-bar").style.display="";dc(true);e.renderedTabs.clear();Lt();ot()}o(Yd,"enterBatchMode");function We(){wt=false;I.clear();q.querySelector(".vc-panel").classList.remove("vc-batch-mode");q.querySelector("#vc-batch-bar").style.display="none";q.querySelector("#vc-batch-selectall").checked=false;dc(false);e.renderedTabs.clear();ot()}o(We,"exitBatchMode");function dc(u){const v=q.querySelector("#vc-batch-toggle");const m=u?"\u9000\u51FA\u6279\u91CF":"\u6279\u91CF\u9009\u62E9";v.title=m;v.setAttribute("aria-label",m);v.setAttribute("aria-pressed",u?"true":"false")}o(dc,"setBatchToggleLabel");function go(){const u=e.currentTab;const v=q.querySelector(`#vc-grid-${u}`);const m=v?v.querySelectorAll(".vc-card"):[];const M=m.length;let O=0;m.forEach(W=>{if(I.has(W.dataset.vcId))O++});q.querySelector("#vc-batch-count").textContent=`\u5DF2\u9009 ${I.size} \u6761`;q.querySelector("#vc-batch-selectall").checked=M>0&&O===M;const B=I.size>0;q.querySelector("#vc-batch-delete").disabled=!B;q.querySelector("#vc-batch-move-want").disabled=!B||u==="want";q.querySelector("#vc-batch-move-watched").disabled=!B||u==="watched"}o(go,"updateBatchUI");function bo(){const u=r();const v=vn(u[e.currentTab]||[]);const m=v.length;const M=Math.max(1,Math.ceil(m/n));const O=e.currentPage[e.currentTab];const B=le[e.currentTab]||"";q.querySelector("#vc-count-info").textContent=`\u5171 ${m} \u6761${B}`;q.querySelector("#vc-page-info").textContent=`${O} / ${M}`;q.querySelector("#vc-first").disabled=O<=1;q.querySelector("#vc-prev").disabled=O<=1;q.querySelector("#vc-next").disabled=O>=M;q.querySelector("#vc-last").disabled=O>=M}o(bo,"updatePagination");function Kd(){if(Tt||q&&q.classList.contains("vc-show"))return;if(!q)z();Tt=true;rt(false);const u=q.querySelector(".vc-panel");u.classList.toggle("vc-panel-light",Nu());xo();q.classList.remove("vc-scrim-out");q.classList.add("vc-show");q.classList.add("vc-scrim-in");u.classList.add("vc-genie-hidden");const v=u.getBoundingClientRect();const m=typeof Rt==="function"?Rt():null;if(m)Jt=m;if(typeof st==="function")st(true);Vi({panelRect:v,buttonRect:Jt,reverse:true,...ju(u),onDone(){Lt();w=true;ot();q.querySelector(".vc-panel").classList.remove("vc-genie-hidden");q.classList.remove("vc-scrim-in");Tt=false}})}o(Kd,"openPanel");function yo(){if(Tt||!q||!q.classList.contains("vc-show"))return;Tt=true;if(wt)We();rt(false);const u=q.querySelector(".vc-panel");const v=u.getBoundingClientRect();const m=ju(u);u.classList.add("vc-genie-hidden");q.classList.remove("vc-scrim-in");q.classList.add("vc-scrim-out");q.style.zIndex="99997";Vi({panelRect:v,buttonRect:Jt,reverse:false,...m,canvasZ:99998,onHandoff(){if(typeof st==="function")st(false)},onDone(){q.classList.remove("vc-show");q.classList.remove("vc-scrim-out");q.querySelector(".vc-panel").classList.remove("vc-genie-hidden");q.style.zIndex="";if(typeof st==="function")st(false);Tt=false}})}o(yo,"closePanel");function xo(){if(!q)return;const u=q.querySelector(".vc-panel");if(u)u.classList.toggle("vc-cover-fit-off",typeof j==="function"&&!j())}o(xo,"applyCoverFit");function Wd(){return q}o(Wd,"getPanelEl");function Xd(){return!!q&&q.classList.contains("vc-show")}o(Xd,"isPanelOpen");function Jd(){const u=q&&q.querySelector(".vc-search");return u?u.value.trim():""}o(Jd,"getSearchKeyword");return{createPanel:z,openPanel:Kd,closePanel:yo,renderActiveList:ot,getPanelEl:Wd,isPanelOpen:Xd,applyCoverFit:xo,getSearchKeyword:Jd}} o($u,"createPanelController"); var Km=5; function zu(t,e,n){const{size:r,getPos:i,setPos:c,layout:a,onStart:s,onEnd:l}=n;let p=false,f=false,E=null;let y=0,k=0,x=0,_=0;let g=null,D=0,h=0;function A(L){if(p)return;if(L.pointerType==="mouse"&&L.button!==0)return;const d=a(i());p=true;f=false;E=L.pointerId;y=L.clientX;k=L.clientY;x=L.clientX-d.left;_=L.clientY-d.top;D=d.left;h=d.top;e.classList.add("vc-fab-dragging");e.style.left=d.left+"px";e.style.top=d.top+"px";if(s)s();window.addEventListener("pointermove",R);window.addEventListener("pointerup",P);window.addEventListener("pointercancel",P);L.preventDefault()}o(A,"onDown");function R(L){if(!p||E!==null&&L.pointerId!==E)return;const d=L.clientX-y;const S=L.clientY-k;if(!f&&Math.abs(d)+Math.abs(S){g=null;e.style.left=D+"px";e.style.top=h+"px"})}}o(R,"onMove");function P(){if(!p)return;p=false;E=null;window.removeEventListener("pointermove",R);window.removeEventListener("pointerup",P);window.removeEventListener("pointercancel",P);if(g!==null){cancelAnimationFrame(g);g=null}e.style.left=D+"px";e.style.top=h+"px";e.classList.remove("vc-fab-dragging");if(f){const L=document.documentElement.clientWidth||window.innerWidth;const d=D+r/2;c({side:dp,"isDragging")}} o(zu,"initSnapDrag"); function Hu(t,e,n){let r=false,i=false,c,a,s,l;let p=0,f=0,E=null,y=0,k=0;function x(g){if(!r)return;const D=g.clientX-c,h=g.clientY-a;if(Math.abs(D)>3||Math.abs(h)>3)i=true;y=Math.max(0,Math.min(window.innerWidth-p,s-D));k=Math.max(0,Math.min(window.innerHeight-f,l+h));if(E===null){E=requestAnimationFrame(()=>{E=null;e.style.right=y+"px";e.style.top=k+"px"})}}o(x,"onMove");function _(){if(!r)return;r=false;document.removeEventListener("mousemove",x);document.removeEventListener("mouseup",_);document.body.style.cursor="";if(E!==null){cancelAnimationFrame(E);E=null;e.style.right=y+"px";e.style.top=k+"px"}e.classList.remove("vc-dragging");GM_setValue(n(),{right:parseFloat(e.style.right)||0,top:parseFloat(e.style.top)||0})}o(_,"onUp");t.addEventListener("mousedown",g=>{if(!e)return;r=true;i=false;c=g.clientX;a=g.clientY;s=parseFloat(e.style.right)||0;l=parseFloat(e.style.top)||0;p=e.offsetWidth;f=e.offsetHeight;e.classList.add("vc-dragging");document.body.style.cursor="grabbing";document.addEventListener("mousemove",x);document.addEventListener("mouseup",_);g.preventDefault()});t.addEventListener("click",g=>{if(i){g.preventDefault();g.stopPropagation();i=false}},true)} o(Hu,"initXjumpDrag"); var De=48; var Wm=38; var Xm=9; var Gi=9; var Ne=14; var Jm=26; var N0=Ne+De-Jm; var fn=12; var Zm=Nc; var Yi=qc; var Qm={side:"right",top:280}; var tr={starOutline:'',starSolid:'',check:'',list:'',search:''}; var th=o((t,e,n)=>tn?n:t,"clamp"); function Uu(t){const{positionKeyFn:e,legacyPositionKeysFn:n,onWant:r,onWatched:i,onOpenPanel:c,onTogglePanel:a,onPrimaryClick:s,getPrimaryStateFn:l,getPrimaryIntentFn:p,isDetailPageFn:f,updateButtonStateFn:E,onVisibilityChange:y,onWebSearch:k}=t;let x,_,g,D,h,A,R,P,L;let d=null;let S=false,b=false,C=false,F=false;let H=false;let ct=-1,N=-1;let j=null,J=false,gt=null;let _t="";const bt=!!(window.matchMedia&&window.matchMedia("(hover: hover) and (pointer: fine)").matches);function Rt(){return document.documentElement.clientWidth||window.innerWidth}o(Rt,"viewportWidth");function st(T){const G=Rt();const V=window.innerHeight;const Z=Math.max(Ne,V-Ne-De);const ot=th(T.top,Ne,Z);const St=T.side==="right"?Math.max(Ne,G-Ne-De):Ne;return{left:St,top:ot}}o(st,"layoutOf");function se(){if(!h)return 0;return Array.prototype.filter.call(h.children,T=>!T.hidden).length}o(se,"visibleSubCount");function Wt(){const T=se();if(!T)return 0;return T*Wm+(T-1)*Xm+Gi}o(Wt,"subsHeight");function Dt(T){return!!T&&(T.side==="left"||T.side==="right")&&typeof T.top==="number"&&isFinite(T.top)}o(Dt,"isPos");function Xt(T){if(!T)return null;const G=window.innerHeight;if((T.side==="left"||T.side==="right")&&typeof T.y==="number"&&isFinite(T.y)){return{side:T.side,top:Math.round(T.y*G)}}if(typeof T.right==="number"&&typeof T.bottom==="number"){const V=Rt();return{side:T.right<=V-T.right?"right":"left",top:Math.round(G-T.bottom-De)}}return null}o(Xt,"convertLegacy");function kt(){const T=GM_getValue(e(),null);if(Dt(T))return{side:T.side,top:T.top};const G=n?n():[];for(const V of G){const Z=Xt(GM_getValue(V,null));if(Z){GM_setValue(e(),Z);return Z}}return{...Qm}}o(kt,"loadPos");function le(T){d={side:T.side,top:Math.round(T.top)};GM_setValue(e(),d)}o(le,"savePos");function q(T){const{left:G,top:V}=st(d);if(!T)x.style.transition="none";x.style.left=G+"px";x.style.top=V+"px";if(!T){void x.offsetWidth;x.style.transition=""}x.dataset.vcSide=d.side;x.dataset.vcDir=V>=Wt()+Ne?"up":"down"}o(q,"applyPosition");function wt(T,G){if(T<0||G<0)return false;const{left:V,top:Z}=st(d);let ot=Z-fn;let St=Z+De+fn;let pt=V-fn;let K=V+De+fn;if(b){const vt=Wt();if(x.dataset.vcDir==="up")ot=Math.min(ot,Z-Gi-vt-fn);else St=Math.max(St,Z+De+Gi+vt+fn)}if(d.side==="right")K=window.innerWidth;else pt=0;return T>=pt&&T<=K&&G>=ot&&G<=St}o(wt,"inHotZone");function Tt(){const T=document.activeElement;if(!T||!x.contains(T))return false;try{return T.matches(":focus-visible")}catch(G){return false}}o(Tt,"focusInside");function Jt(T){clearTimeout(j);if(T>0)j=setTimeout(w,T);else w()}o(Jt,"schedule");function w(){const T=C||F||Tt();const G=bt?H:f();const V=G&&!T;I(V);U(bt&&!T&&!V&&!H)}o(w,"render");function I(T){if(b===T)return;b=T;x.classList.toggle("vc-fab-open",T);g.setAttribute("aria-expanded",String(T))}o(I,"setSubsOpen");function U(T){if(S===T)return;S=T;x.classList.toggle("vc-peek",T)}o(U,"setPeeked");function z(){if(!g)return;const T=f();const G=T?l()||"none":"none";g.dataset.vcState=G;const V=typeof p==="function"?p()||"":"";const Z=!T?"list":G==="watched"?"check":G==="want"?"starSolid":V==="watched"?"check":"starOutline";if(Z!==_t){_t=Z;D.innerHTML=tr[Z]}const ot=!T?"\u6536\u85CF\u5217\u8868":G==="watched"?"\u5DF2\u770B\uFF0C\u70B9\u51FB\u53D6\u6D88":G==="want"?"\u60F3\u770B\uFF0C\u70B9\u51FB\u53D6\u6D88":V==="watched"?"\u70B9\u51FB\u6807\u4E3A\u5DF2\u770B":"\u70B9\u51FB\u6807\u4E3A\u60F3\u770B";g.title=ot;g.setAttribute("aria-label",ot)}o(z,"refreshPrimary");function it(){g.classList.remove("vc-fab-pop","vc-fab-ripple");void g.offsetWidth;g.classList.add("vc-fab-pop","vc-fab-ripple");clearTimeout(gt);gt=setTimeout(()=>g.classList.remove("vc-fab-pop","vc-fab-ripple"),600)}o(it,"pulse");function at(){x=document.createElement("div");x.className="vc-fab-zone";x.dataset.vcSide="right";x.dataset.vcDir="up";_=document.createElement("div");_.className="vc-fab-inner";h=document.createElement("div");h.className="vc-fab-subs";h.setAttribute("role","menu");if(typeof k==="function")L=Q("search",tr.search,"\u5168\u7F51\u641C\u7D22");A=Q("want",tr.starOutline,Ve.want);R=Q("watched",tr.check,Ve.watched);P=Q("list",tr.list,"\u6536\u85CF\u5217\u8868");if(L)h.appendChild(L);h.appendChild(A);h.appendChild(R);h.appendChild(P);g=document.createElement("button");g.className="vc-fab";g.type="button";g.dataset.vcState="none";g.setAttribute("aria-expanded","false");D=document.createElement("span");D.className="vc-fab-scale";g.appendChild(D);_.appendChild(h);_.appendChild(g);x.appendChild(_)}o(at,"build");function Q(T,G,V){const Z=document.createElement("button");Z.type="button";Z.className="vc-fab-sub vc-btn-"+T;Z.dataset.vcAct=T;Z.dataset.vcTip=V;Z.setAttribute("aria-label",V);Z.innerHTML=G;return Z}o(Q,"makeSub");function ft(T){if(!x)return;F=!!T;x.classList.toggle("vc-fab-dim",F);w()}o(ft,"setPanelOpen");function rt(){d=kt();at();q(false);document.body.appendChild(x);_e(x,document.body);if(E)E();z();zu(g,x,{size:De,getPos:o(()=>d,"getPos"),setPos:le,layout:st,onStart(){C=true;J=false;U(false);I(false)},onEnd(T){C=false;if(T){J=true;q(true)}H=wt(ct,N);Jt(T?0:Yi)}});g.addEventListener("click",()=>{if(J){J=false;return}if(F){if(a)a();return}if(s)s();it()});h.addEventListener("click",T=>{const G=T.target.closest?T.target.closest(".vc-fab-sub"):null;if(!G)return;const V=G.dataset.vcAct;if(V==="want"&&r)r();else if(V==="watched"&&i)i();else if(V==="list"&&c)c();else if(V==="search"&&k)k();it()});if(bt){document.addEventListener("pointermove",T=>{ct=T.clientX;N=T.clientY;if(C)return;const G=wt(T.clientX,T.clientY);if(G===H)return;H=G;Jt(G?Zm:Yi)},{passive:true});document.addEventListener("pointerleave",()=>{if(!H)return;H=false;Jt(Yi)})}document.addEventListener("visibilitychange",()=>{if(document.hidden)return;if(E)E();d=kt();q(false);z();w();if(y)y()});window.addEventListener("resize",()=>{if(C)return;q(false)});It();w()}o(rt,"create");function It(){if(!x)return;const T=f();h.hidden=!T&&typeof k!=="function";A.hidden=!T;R.hidden=!T;P.hidden=!T;if(L)L.hidden=false;q(false);z();w()}o(It,"updateVisibility");return{create:rt,updateVisibility:It,setPanelOpen:ft,refreshPrimary:z,getOriginRect:o(()=>x?x.getBoundingClientRect():null,"getOriginRect"),getWantBtn:o(()=>A,"getWantBtn"),getWatchedBtn:o(()=>R,"getWatchedBtn")}} o(Uu,"createFloatButtonGroup"); function Vu(t){const{getSiteFn:e,buildItemFn:n,getIdFn:r,isFavoritedFn:i,buildFavIndexFn:c,toggleFavoriteFn:a,refreshItemFn:s,afterToggleFn:l,afterInjectFn:p}=t;let f=null;let E=null;let y=false;const k=new WeakMap;function x(){_();[500,1500,3e3].forEach(P=>setTimeout(_,P));if(!f){f=new MutationObserver(()=>{if(E)return;E=setTimeout(()=>{E=null;_()},150)});f.observe(document.body,{childList:true,subtree:true})}if(!y){y=true;document.addEventListener("mouseover",P=>{const L=e();if(!L||!L.listCardSelector)return;const d=P.target.closest(L.listCardSelector);if(!d||d.querySelector(".vc-status"))return;_()})}}o(x,"inject");function _(){const P=e();if(!P||!P.getListCards)return;const L=P.getListCards();const d=[];L.forEach(S=>{const{element:b}=S;if(!b)return;const C=b.querySelector(".vc-status");if(C){if(P.statusOffset)h(b,C,P);return}const F=n(S,P);if(!F)return;d.push({element:b,item:F})});if(d.length){const S=c?c(d.map(b=>r(b.item))):null;d.forEach(({element:b,item:C})=>{if(getComputedStyle(b).position==="static"){b.style.position="relative"}b.classList.add("vc-fav-host");const F=g(C,S);b.appendChild(F);h(b,F,P)})}if(d.length)R();if(p)p(L)}o(_,"injectCards");function g(P,L){const d=document.createElement("div");d.className="vc-status";d.dataset.vcId=r(P);ao.forEach(S=>{const b=document.createElement("button");b.type="button";b.className="vc-status-btn";b.dataset.vcSet=S.set;b.title=S.label;b.textContent=S.icon;b.addEventListener("click",C=>{C.preventDefault();C.stopPropagation();if(s)s(P,e(),b);a(P,S.set);R();if(l)l()});d.appendChild(b)});D(d,A(r(P),L));return d}o(g,"makeStatus");function D(P,L){P.dataset.vcStatus=L||"none";P.classList.toggle("vc-status--pinned",!!L)}o(D,"applyStatus");function h(P,L,d){if(typeof d.statusOffset!=="function")return;let S=null;try{S=d.statusOffset(P,L)}catch(H){S=null}const b=k.get(L);let C=b?b.top:null;let F=b?b.left:null;if(S&&S.top!=null&&(C==null||S.top>C))C=S.top;if(S&&S.left!=null)F=S.left;if(C==null&&F==null)return;k.set(L,{top:C,left:F});L.style.top=C!=null?C+"px":"";L.style.left=F!=null?F+"px":""}o(h,"applyStatusOffset");function A(P,L){if(L)return L.get(P)||"";if(i(P,"want"))return"want";if(i(P,"watched"))return"watched";return""}o(A,"statusOf");function R(){const P=document.querySelectorAll(".vc-status[data-vc-id]");const L=[];P.forEach(S=>{if(S.dataset.vcId&&L.indexOf(S.dataset.vcId)===-1)L.push(S.dataset.vcId)});const d=c?c(L):null;P.forEach(S=>{const b=S.dataset.vcId;if(b)D(S,A(b,d))})}o(R,"refreshAll");return{inject:x,refreshAll:R}} o(Vu,"createMiniButtonInjector"); function Gu(t){const{getSiteFn:e,getKeywordFn:n,getPositionKeyFn:r,getAllSitesFn:i,pickDomainFn:c,findAliveDomainFn:a,siteIdField:s}=t;let l=null;let p=null;let f=null;function E(){if(!l)return;const g=l.offsetWidth;const D=l.offsetHeight;if(!g||!D)return;let h=parseFloat(l.style.right)||0;let A=parseFloat(l.style.top)||0;h=Math.max(0,Math.min(h,window.innerWidth-g));A=Math.max(0,Math.min(A,window.innerHeight-D));l.style.right=h+"px";l.style.top=A+"px";const R=GM_getValue(r(),null);if(R&&R.right===h&&R.top===A)return;GM_setValue(r(),{right:h,top:A})}o(E,"clampInViewport");if(!window.__vcXjumpResizeBound){window.__vcXjumpResizeBound=true;window.addEventListener("resize",()=>{clearTimeout(p);p=setTimeout(E,200)})}function y(g,D,h){const A=window.open(h,"_blank");if(A)A.opener=null;if(typeof a!=="function")return;Promise.resolve(a(g)).then(R=>{if(!R)return;const P="https://"+R+g.searchPath(D);if(A&&P!==h)A.location=P}).catch(()=>{})}o(y,"openTarget");function k(g,D){const h="https://"+c(g)+g.searchPath(D);const A=document.createElement("button");A.type="button";A.className="vc-xjump-btn";A.textContent=g.name;A.dataset.vcHref=h;A.addEventListener("mouseenter",()=>{if(typeof a!=="function")return;Promise.resolve(a(g)).catch(()=>{})},{once:true});A.addEventListener("click",()=>y(g,D,h));A.addEventListener("mousedown",R=>{if(R.button===1)R.preventDefault()});A.addEventListener("auxclick",R=>{if(R.button===1)y(g,D,h)});return A}o(k,"createEntry");function x(){const g=e();if(!g)return;const D=n();if(!D)return;if(l&&l.dataset.vcKeyword===D)return;if(l){if(f){f();f=null}l.remove()}l=document.createElement("div");l.className="vc-xjump";l.dataset.vcKeyword=D;const h=GM_getValue(r(),null);if(h){l.style.right=h.right+"px";l.style.top=h.top+"px"}else{l.style.right="16px";l.style.top="16px"}const A=document.createElement("button");A.className="vc-xjump-toggle";A.innerHTML='\u{1F517}\u8DE8\u7AD9\u76F4\u8FBE';const R=document.createElement("div");R.className="vc-xjump-menu";const P=lt(location.hostname);i().filter(S=>S[s]!==g[s]&&S.crossSiteTarget!==false).filter(S=>!(S.domains||[]).some(b=>lt(b)===P)).forEach(S=>R.appendChild(k(S,D)));l.appendChild(A);l.appendChild(R);document.body.appendChild(l);f=_e(l,document.body);Hu(A,l,r);E();const L=l;let d=null;L.addEventListener("mouseenter",()=>{if(L.classList.contains("vc-dragging"))return;if(d){clearTimeout(d);d=null}L.classList.add("vc-show");requestAnimationFrame(()=>{const S=A.getBoundingClientRect();const b=window.innerHeight-S.bottom;const C=R.offsetHeight;L.classList.toggle("vc-up",b{if(L.classList.contains("vc-dragging"))return;if(d)clearTimeout(d);d=setTimeout(()=>L.classList.remove("vc-show"),150)})}o(x,"inject");function _(){return l}o(_,"getXjumpEl");return{inject:x,getXjumpEl:_}} o(Gu,"createCrossSiteJump"); function Yu(t,e){if(!t)return;t.querySelectorAll(".vc-settings-seg-btn").forEach(n=>{n.addEventListener("click",()=>{t.querySelectorAll(".vc-settings-seg-btn").forEach(r=>r.classList.remove("vc-active"));n.classList.add("vc-active");e(n.dataset.vcVal)})})} o(Yu,"bindSeg"); function Ge(t,e){return`
${t}
${e}
`} o(Ge,"section"); function pn(t,e,n,r=""){return` `} o(pn,"switchItem"); function eh(t,e){if(!t)return;t.querySelectorAll(".vc-settings-seg-btn").forEach(n=>{n.classList.toggle("vc-active",n.dataset.vcVal===e)})} o(eh,"syncSeg"); function Ku(t={}){const{coverFit:e,translatedTitle:n,rating:r,usage:i,engine:c,volume:a}=t;let s=null;let l=null;function p(){if(!s)A();clearTimeout(l);s.removeEventListener("animationend",E);s.classList.remove("vc-closing");y();s.classList.add("vc-show")}o(p,"open");function f(){if(!s||!s.classList.contains("vc-show"))return;s.classList.add("vc-closing");s.addEventListener("animationend",E);l=setTimeout(E,6e4)}o(f,"close");function E(N){if(!s)return;const j=N&&N.animationName;if(j&&j!=="vcSettingsOut"&&j!=="vcScrimOut")return;clearTimeout(l);s.removeEventListener("animationend",E);s.classList.remove("vc-show");s.classList.remove("vc-closing")}o(E,"onExitEnd");function y(){s.querySelector("#vc-settings-adblock").checked=Nr();s.querySelector("#vc-settings-fav-mark").checked=$t("favMark");D("favPeekOpacity","favSize","vc-settings-fav-opacity","vc-settings-fav-size");D("xjumpOpacity","xjumpSize","vc-settings-xjump-opacity","vc-settings-xjump-size");h();if(e)s.querySelector("#vc-settings-cover-fit").checked=e.get();if(n)s.querySelector("#vc-settings-translated-title").checked=n.get();if(c)g();if(r){x();_()}k()}o(y,"syncControls");function k(){if(!i)return;const N=s.querySelector("#vc-settings-storage-usage");const j=s.querySelector("#vc-settings-storage-parts");if(!N)return;const J=i()||{};const gt=Math.round((J.budget||0)/1024/1024);if(!J.total){N.textContent=gt?"\u5DF2\u7528 0.00MB / "+gt+"MB":"";if(j)j.textContent="";return}N.textContent="\u5DF2\u7528 "+Ut(J.total)+" / "+gt+"MB"+(J.total>J.budget?"\uFF08\u8D85\u9650\u4F1A\u81EA\u52A8\u56DE\u6536\u8BC4\u5206\u7F13\u5B58\uFF09":"");if(j){const _t=J.parts||{};const bt=Object.keys(_t);j.textContent="";if(bt.length>1){bt.forEach(Rt=>{const st=document.createElement("span");st.className="vc-settings-storage-part";st.textContent=Rt+" "+Ut(_t[Rt]);j.appendChild(st)})}}}o(k,"syncStorageUsage");function x(){const N=s.querySelector("#vc-settings-rating-clear-desc");const j=s.querySelector("#vc-settings-rating-remote");if(!N||!j)return;N.textContent=j.checked?"\u6E05\u9664\u540E\u4E0B\u6B21\u6253\u5F00\u6536\u85CF\u9762\u677F\u4F1A\u91CD\u65B0\u67E5\u8BE2":"\u6E05\u9664\u540E\u4E0D\u4F1A\u81EA\u52A8\u67E5\u8BE2\uFF0C\u6D4F\u89C8\u5230\u8BE5\u5267\u9875\u9762\u65F6\u8BFB\u56DE"}o(x,"syncRatingClearDesc");function _(){const N=s.querySelector("#vc-settings-rating-status");if(!N||!r||typeof r.status!=="function")return;const j=r.status();if(!j){N.textContent="";return}let J;if(j.pausedSec<0){J="\u8C46\u74E3\u5DF2\u62E6\u4E0B\u672C\u673A\u67E5\u8BE2\uFF0C\u5237\u65B0\u9875\u9762\u540E\u81EA\u52A8\u91CD\u8BD5"}else if(j.pausedSec>0){J="\u8C46\u74E3\u63A5\u53E3\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C"+j.pausedSec+" \u79D2\u540E\u81EA\u52A8\u7EE7\u7EED"}else if(j.sessionLeft<=0){J="\u672C\u6B21\u4F1A\u8BDD\u5DF2\u53D1\u6EE1 "+j.sessionMax+" \u6B21\u8BF7\u6C42\uFF0C\u5237\u65B0\u9875\u9762\u540E\u63A5\u7740\u67E5"}else if(j.windowLeft<=0){J="\u8FD1 "+j.windowMinutes+" \u5206\u949F\u5DF2\u53D1\u6EE1 "+j.windowMax+" \u6B21\u8BF7\u6C42\uFF0C\u7A0D\u540E\u81EA\u52A8\u63A5\u7740\u67E5"}else{J="\u5269\u4F59\u989D\u5EA6\uFF1A\u672C\u6B21 "+j.sessionLeft+"/"+j.sessionMax+"\uFF0C\u8FD1 "+j.windowMinutes+" \u5206\u949F "+j.windowLeft+"/"+j.windowMax}if(j.cached)J+="\uFF1B\u5DF2\u8BB0 "+j.scored+" \u90E8\uFF08\u5171 "+j.cached+" \u6761\uFF09";N.textContent=J}o(_,"syncRatingStatus");function g(){const N=s.querySelector("#vc-settings-engine-on");if(!N)return;N.checked=c.get()!==false}o(g,"syncEngineSection");function D(N,j,J,gt){const _t=s.querySelector("#"+J);const bt=s.querySelector("."+J+"-val");const Rt=s.querySelector("#"+gt);const st=$t(N);if(_t)_t.value=st;if(bt)bt.textContent=st+"%";eh(Rt,$t(j))}o(D,"syncSettingGroup");function h(){const N=s.querySelector("#vc-settings-volume");const j=s.querySelector(".vc-settings-volume-val");const J=Math.round(Number($t("volume"))||0);if(N)N.value=J;if(j)j.textContent=J+"%"}o(h,"syncVolume");function A(){s=document.createElement("div");s.className="vc-settings-mask";s.innerHTML=R();document.body.appendChild(s);_e(s,document.body);H()}o(A,"build");function R(){const N=[Ge("\u6D4F\u89C8\u4E0E\u64AD\u653E",pn("vc-settings-adblock","\u9690\u85CF\u5E7F\u544A","\u5C4F\u853D\u5404\u7AD9\u70B9\u5E7F\u544A")+(a?S():""))];if(r)N.push(Ge("\u5F71\u89C6\u4FE1\u606F",d()));if(c)N.push(Ge("\u901A\u7528\u7AD9\u70B9",L()));N.push(Ge("\u5361\u7247\u663E\u793A",P()));N.push(Ge("\u6536\u85CF\u6309\u94AE",b()));N.push(Ge("\u8DE8\u7AD9\u76F4\u8FBE",C()));if(i)N.push(Ge("\u5B58\u50A8",F()));return` `}o(R,"panelTemplate");function P(){let N="";if(e)N+=pn("vc-settings-cover-fit","\u5C01\u9762\u667A\u80FD\u53D6\u666F","\u6A2A\u7248\u5927\u56FE\u81EA\u52A8\u4F18\u5316\u53D6\u666F");if(n)N+=pn("vc-settings-translated-title","\u4F18\u5148\u663E\u793A\u7FFB\u8BD1\u6807\u9898","\u6709\u8BD1\u6587\u65F6\u4F18\u5148\u663E\u793A\u8BD1\u6587");return N+pn("vc-settings-fav-mark","\u5217\u8868\u9875\u6807\u8BB0\u5DF2\u6536\u85CF","\u5DF2\u6536\u85CF\u7684\u5361\u7247\u4E0A\u5E38\u663E\u60F3\u770B / \u5DF2\u770B")}o(P,"cardDisplaySection");function L(){return pn("vc-settings-engine-on","\u901A\u7528\u7AD9\u70B9\u652F\u6301","\u5728\u672A\u9002\u914D\u7684\u5F71\u89C6\u7AD9\u4E5F\u542F\u7528\u6536\u85CF\u4E0E\u89C2\u770B\u8BB0\u5F55")}o(L,"engineSection");function d(){return pn("vc-settings-rating-remote","\u5141\u8BB8\u8054\u7F51\u67E5\u8BE2\u8C46\u74E3","\u5173\u6389\u540E\u4E0D\u518D\u8054\u7F51\u67E5\u8BE2\u8BC4\u5206\uFF0C\u5DF2\u7ECF\u62FF\u5230\u7684\u5206\u7167\u5E38\u663E\u793A",'')+`
\u8C46\u74E3\u8BC4\u5206\u7F13\u5B58
`}o(d,"ratingSection");function S(){return`
\u64AD\u653E\u97F3\u91CF \u5404\u7AD9\u70B9\u7EDF\u4E00\u4F7F\u7528\u8FD9\u4E2A\u97F3\u91CF 100%
`}o(S,"volumeItem");function b(){return`
\u534A\u9690\u85CF\u900F\u660E\u5EA6 \u8D34\u8FB9\u672A\u5C55\u5F00\u65F6\u7684\u6DF1\u6D45 55%
\u6309\u94AE\u5927\u5C0F \u4E3B\u6309\u94AE\u4E0E\u5B50\u6309\u94AE\u4E00\u8D77\u7F29\u653E
`}o(b,"favButtonSection");function C(){return`
\u900F\u660E\u5EA6 \u9F20\u6807\u9760\u8FD1\u65F6\u81EA\u52A8 100% 60%
\u6309\u94AE\u5927\u5C0F \u5C55\u5F00\u540E\u7684\u663E\u793A\u6837\u5F0F
`}o(C,"xjumpSection");function F(){return`
\u5B58\u50A8\u5360\u7528
`}o(F,"storageSection");function H(){s.querySelector(".vc-settings-close").addEventListener("click",f);s.addEventListener("click",N=>{if(N.target===s)f()});document.addEventListener("keydown",N=>{if(N.key==="Escape"&&s.classList.contains("vc-show"))f()});s.querySelector("#vc-settings-adblock").addEventListener("change",N=>{_s(N.target.checked)});if(e){s.querySelector("#vc-settings-cover-fit").addEventListener("change",N=>{e.set(N.target.checked)})}if(n){s.querySelector("#vc-settings-translated-title").addEventListener("change",N=>{n.set(N.target.checked)})}if(c){s.querySelector("#vc-settings-engine-on").addEventListener("change",N=>{c.set(N.target.checked)})}ct("vc-settings-volume","vc-settings-volume-val",Dr);ct("vc-settings-fav-opacity","vc-settings-fav-opacity-val",vs);s.querySelector("#vc-settings-fav-mark").addEventListener("change",N=>{hs(N.target.checked)});if(r){const N=s.querySelector("#vc-settings-rating-remote");if(N){if(typeof r.get==="function")N.checked=r.get()!==false;N.addEventListener("change",j=>{if(typeof r.set==="function")r.set(j.target.checked);x();_()})}s.querySelector("#vc-settings-rating-clear").addEventListener("click",async()=>{const j=await r.confirm("\u6E05\u9664\u5168\u90E8\u8BC4\u5206\u7F13\u5B58\uFF1F\n\n\u4F1A\u5220\u6389\u6240\u6709\u5267\u7684\u8BC4\u5206\u8BB0\u5F55\uFF1A\u7AD9\u70B9\u9875\u9762\u8BFB\u5230\u7684\u3001\u8054\u7F51\u67E5\u5230\u7684\u3001\u67E5\u4E0D\u5230\u7684\n\u6536\u85CF\u4E0E\u89C2\u770B\u8BB0\u5F55\u4E0D\u53D7\u5F71\u54CD\uFF0C\u4E4B\u540E\u91CD\u65B0\u67E5\u8BE2",{danger:true});if(!j)return;r.clear();_();nt("\u8BC4\u5206\u7F13\u5B58\u5DF2\u6E05\u9664",{tone:"ok"})})}Yu(s.querySelector("#vc-settings-fav-size"),ms);ct("vc-settings-xjump-opacity","vc-settings-xjump-opacity-val",bs);Yu(s.querySelector("#vc-settings-xjump-size"),ys)}o(H,"bindEvents");function ct(N,j,J){const gt=s.querySelector("#"+N);const _t=s.querySelector("."+j);if(!gt)return;gt.addEventListener("input",()=>{if(_t)_t.textContent=gt.value+"%";J(gt.value)})}o(ct,"bindRange");return{open:p,close:f}} o(Ku,"createSettingsPanel"); function Wu(t){const{listTargetsFn:e,resolveUrlFn:n,warmDomainFn:r,setEnabledFn:i}=t;let c=null;let a=null;let s=null;let l=null;let p=null;let f=[];let E=[];let y=new Set;function k(){c=document.createElement("div");c.className="vc-ws-mask";c.innerHTML=` `;document.body.appendChild(c);a=c.querySelector(".vc-ws-input");s=c.querySelector(".vc-ws-grid");l=c.querySelector(".vc-ws-btn");p=c.querySelector(".vc-ws-count");c.querySelector(".vc-ws-close").addEventListener("click",L);c.addEventListener("click",S=>{if(S.target===c)L()});document.addEventListener("keydown",S=>{if(S.key==="Escape"&&c.classList.contains("vc-show"))L()});const d=o(()=>{y.clear();A();x()},"syncInput");a.addEventListener("input",d);c.querySelector(".vc-ws-clear").addEventListener("click",()=>{if(!a.value)return;a.value="";d();a.focus()});l.addEventListener("click",R)}o(k,"build");function x(){const d=a.value.trim();E=e(d);s.textContent="";E.forEach(S=>s.appendChild(_(S,d)));g()}o(x,"renderTargets");function _(d,S){const b=document.createElement("div");b.className="vc-ws-item";b.dataset.vcSite=d.id;if(y.has(d.id))b.classList.add("vc-ws-item-visited");if(!S)b.title="\u5148\u8F93\u5165\u5267\u540D\uFF0C\u518D\u70B9\u300C"+d.name+"\u300D\u8DF3\u8F6C\u641C\u7D22";const C=document.createElement("input");C.type="checkbox";C.className="vc-ws-check";C.checked=d.enabled;C.title="\u662F\u5426\u53C2\u4E0E\u300C\u9010\u4E2A\u6253\u5F00\u300D";C.addEventListener("change",()=>{i(d.id,C.checked);d.enabled=C.checked;A();g()});const F=document.createElement("a");F.className="vc-ws-link"+(S?"":" vc-ws-link-off");F.textContent=d.name;F.href=S?d.url:"#";F.target="_blank";F.rel="noopener noreferrer";F.title=S?y.has(d.id)?"\u70B9\u51FB\u53EF\u8DF3\u8F6C\u81F3\u300C"+d.name+"\u300D\u641C\u7D22\uFF08\u5DF2\u6253\u5F00\u8FC7\uFF0C\u53EF\u518D\u6B21\u8DF3\u8F6C\uFF09":"\u70B9\u51FB\u53EF\u8DF3\u8F6C\u81F3\u300C"+d.name+"\u300D\u641C\u7D22":"";if(S){F.addEventListener("mouseenter",()=>{if(F.dataset.vcWarmed)return;F.dataset.vcWarmed="1";r(d.id)},{once:true});F.addEventListener("click",ct=>{if(ct.button!==0||ct.metaKey||ct.ctrlKey||ct.shiftKey||ct.altKey)return;ct.preventDefault();D(d.id,a.value.trim())})}else{F.addEventListener("click",ct=>ct.preventDefault());F.setAttribute("aria-disabled","true")}const H=document.createElement("span");H.className="vc-ws-domain";H.textContent=d.domain;H.title=d.domain;b.appendChild(C);b.appendChild(F);b.appendChild(H);return b}o(_,"buildItem");function g(){const d=Array.from(s.querySelectorAll(".vc-ws-check"));const S=d.filter(C=>C.checked).length;p.textContent=d.length?"\u5DF2\u9009 "+S+" / "+d.length+" \u4E2A\u7AD9\u70B9"+(S?" \xB7 \u6BCF\u70B9\u4E00\u6B21\u5F00\u4E00\u4E2A":""):"\u6CA1\u6709\u53EF\u8DF3\u8F6C\u7684\u7AD9\u70B9";if(f.length){l.textContent="\u7EE7\u7EED\u6253\u5F00\uFF08\u8FD8\u5269 "+f.length+" \u4E2A\uFF09";return}if(!S){l.textContent="\u6253\u5F00\u9009\u4E2D";return}const b=E.filter(C=>C.enabled&&!y.has(C.id)).length;l.textContent=b?"\u9010\u4E2A\u6253\u5F00\uFF08\u8FD8\u5269 "+b+" \u4E2A\uFF09":"\u5DF2\u5168\u90E8\u6253\u5F00"}o(g,"syncCount");function D(d,S){h(d);const b=E.find(H=>H.id===d);const C=b?b.url:"";const F=C?window.open(C,"_blank"):null;if(F)F.opener=null;Promise.resolve(n(d,S)).then(H=>{if(!H)return;if(!F){window.open(H,"_blank");return}if(H!==C)F.location=H}).catch(()=>{})}o(D,"jump");function h(d){y.add(d);const S=E.find(C=>C.id===d);const b=S&&Array.prototype.find.call(s.children,C=>C.dataset.vcSite===d);if(b){b.classList.add("vc-ws-item-visited");const C=b.querySelector(".vc-ws-link");if(C)C.title="\u70B9\u51FB\u53EF\u8DF3\u8F6C\u81F3\u300C"+S.name+"\u300D\u641C\u7D22\uFF08\u5DF2\u6253\u5F00\u8FC7\uFF0C\u53EF\u518D\u6B21\u8DF3\u8F6C\uFF09"}g()}o(h,"markVisited");function A(){f=[];g()}o(A,"resetQueue");function R(){const d=a.value.trim();if(!d){nt("\u5148\u8F93\u5165\u8981\u641C\u7D22\u7684\u5267\u540D",{tone:"warn"});return}if(!f.length){f=E.filter(S=>S.enabled).map(S=>S.id);if(!f.length){nt("\u81F3\u5C11\u52FE\u9009\u4E00\u4E2A\u7AD9\u70B9",{tone:"warn"});return}}D(f.shift(),d);g()}o(R,"openNextSelected");function P(d){if(!c)k();a.value=(d||"").trim();y.clear();A();x();c.classList.add("vc-show");a.focus();a.select()}o(P,"open");function L(){if(c)c.classList.remove("vc-show")}o(L,"close");return{open:P,close:L,getMaskEl:o(()=>c,"getMaskEl")}} o(Wu,"createWebSearchPanel"); var nh=10*60*1e3; var Ye=new Map; var Wi=new Map; var Ki=new Map; var so=new Map; function Xi(t){if(!t)return"";try{return new URL(t).pathname}catch(e){return t}} o(Xi,"pathOf"); function rh(t,e){return t+"|"+Xi(e)} o(rh,"taskKey"); function oh(t,e){if(!e)return true;return Wi.get(t)===Xi(e)} o(oh,"isFresh"); function lo(t,e){if(!t||!oh(t,e))return"";return Ye.get(t)||""} o(lo,"getProxiedCover"); function Xu(t){const e=Ye.get(t);if(e){try{URL.revokeObjectURL(e)}catch(n){}}Ye.delete(t);Wi.delete(t)} o(Xu,"release"); function ih(){while(Ye.size>Fc)Xu(Ye.keys().next().value)} o(ih,"prune"); async function ch(t){for(const e of t){const n=await As(Fr(e.url),e.referer);if(n)return{blob:n,url:e.url}}return null} o(ch,"grabFirst"); function Ju(t,e){const n=(e||[]).filter(s=>s&&s.url&&s.referer);if(!t||!n.length)return Promise.resolve("");const r=lo(t,n[0].url);if(r)return Promise.resolve(r);const i=rh(t,n[0].url);if(so.has(i))return so.get(i);const c=Ki.get(i);if(c&&Date.now()-c{if(!s)return"";if(Ye.has(t))Xu(t);Ye.set(t,URL.createObjectURL(s.blob));Wi.set(t,Xi(s.url));ih();return lo(t,n[0].url)}).catch(()=>"").then(s=>{so.delete(i);if(s)Ki.delete(i);else Ki.set(i,Date.now());return s});so.set(i,a);return a} o(Ju,"ensureProxiedCover"); var ah=[()=>!!document.querySelector('script[src*="/_next/"]'),()=>!!document.getElementById("__next"),()=>!!window.__NEXT_DATA__,()=>!!document.querySelector("[data-reactroot]"),()=>{const t=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;return!!(t&&t.renderers&&t.renderers.size)},()=>!!window.next||!!window.__next_f]; function Qu(){try{return ah.some(t=>{try{return!!t()}catch(e){return false}})}catch(t){return false}} o(Qu,"isReactHydratingSite"); var sh=2e3; var Zu=1500; function td(t){let e=false;const n=o(()=>{if(e)return;e=true;try{t()}catch(i){}},"go");const r=window.requestIdleCallback?i=>window.requestIdleCallback(i,{timeout:Zu}):i=>setTimeout(i,0);try{if(document.readyState==="complete"){r(n)}else{window.addEventListener("load",()=>r(n),{once:true})}}catch(i){}setTimeout(n,sh+Zu)} o(td,"runAfterHydration"); var ed=`@font-face { font-family: vc-mid-dot; src: local("Segoe UI"), local("Segoe UI Symbol"), local("Helvetica Neue"), local("PingFang SC"), local("Microsoft YaHei"), local("Arial"); unicode-range: U+00B7; } :root { --vc-primary: #6366f1; --vc-primary-light: #a5b4fc; --vc-primary-lighter: #e0e7ff; --vc-primary-dark: #4338ca; --vc-ease-out: cubic-bezier(0.32, 0.72, 0, 1); --vc-ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1); --vc-fab-peek: 36px; --vc-fab-idle: #008080; --vc-want: #fb923c; --vc-want-light: #fdba74; --vc-want-lighter: #fff7ed; --vc-want-dark: #c2410c; --vc-watched: #34d399; --vc-watched-light: #6ee7b7; --vc-watched-lighter: #f0fdf4; --vc-watched-dark: #047857; --vc-danger: #f87171; --vc-danger-light: #fca5a5; --vc-danger-lighter: #fef2f2; --vc-danger-dark: #b91c1c; --vc-bg: #ffffff; --vc-bg-soft: #fafafa; --vc-bg-muted: #f5f5f5; --vc-text: #18181b; --vc-text-medium: #3f3f46; --vc-text-secondary: #71717a; --vc-text-placeholder: #a1a1aa; --vc-border: #e4e4e7; --vc-border-light: #f4f4f5; --vc-border-dark: #d4d4d8; --vc-track: rgba(0, 0, 0, 0.08); --vc-hover: #f4f4f5; --vc-hover-strong: #e4e4e7; --vc-shadow: 0 2px 12px rgba(0, 0, 0, 0.06); --vc-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.07); --vc-shadow-lg: 0 12px 36px rgba(0, 0, 0, 0.10); --vc-outline: rgba(0, 0, 0, 0.12); --vc-outline-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); --vc-outline-soft: rgba(0, 0, 0, 0.08); --vc-outline-shadow-soft: 0 1px 4px rgba(0, 0, 0, 0.10); --vc-surface-solid: rgba(255, 255, 255, 0.92); --vc-status-pinned-bg: rgba(255, 255, 255, 0.7); --vc-font-ui: vc-mid-dot, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", "微软雅黑", sans-serif; }`; var nd=`.vc-mask { position: fixed; inset: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.45); z-index: 100000; display: none; align-items: center; justify-content: center; margin: 0; padding: 0; } .vc-mask.vc-show { display: flex !important; } .vc-panel.vc-genie-hidden { visibility: hidden; box-shadow: none; } @keyframes vcScrimIn { from { opacity: 0; } to { opacity: 1; } } @keyframes vcScrimOut { from { opacity: 1; } to { opacity: 0; } } .vc-mask.vc-scrim-in { animation: vcScrimIn 0.3s ease both; } .vc-mask.vc-scrim-out { animation: vcScrimOut 0.34s ease both; } .vc-settings-mask { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.3); z-index: 100001; display: none; align-items: center; justify-content: center; backdrop-filter: blur(2px); --vc-settings-anim: 0.4s; } .vc-settings-mask.vc-show { display: flex !important; animation: vcScrimIn var(--vc-settings-anim) ease both; } .vc-settings-mask.vc-closing { animation: vcScrimOut var(--vc-settings-anim) ease both; pointer-events: none; } @keyframes vcFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .vc-image-preview { position: fixed; inset: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.85); z-index: 100001; display: grid; place-items: center; cursor: zoom-out; margin: 0; padding: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.25s cubic-bezier(0.32, 0.72, 0, 1), visibility 0s linear 0.25s; } .vc-image-preview.vc-show { display: grid !important; opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 0.4s cubic-bezier(0.32, 0.72, 0, 1); } .vc-image-preview img { grid-area: 1 / 1; max-width: 92vw; max-height: 92vh; object-fit: contain; border-radius: 4px; opacity: 0; transform: scale(0.97); transition: opacity 0.3s ease, transform 0.25s cubic-bezier(0.32, 0.72, 0, 1); } .vc-image-preview img.vc-active { opacity: 1; } .vc-image-preview.vc-show img { transform: none; transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.32, 0.72, 0, 1); } .vc-image-preview img.vc-preview-enter { animation: vc-preview-enter 0.4s cubic-bezier(0.32, 0.72, 0, 1); } @keyframes vc-preview-enter { from { transform: scale(0.985); } } @media (prefers-reduced-motion: reduce) { .vc-image-preview { transition: opacity 0.15s ease, visibility 0s linear 0.15s; } .vc-image-preview.vc-show { transition: opacity 0.15s ease; } .vc-image-preview img, .vc-image-preview.vc-show img { transform: none; transition: opacity 0.15s ease; } .vc-image-preview img.vc-preview-enter { animation: none; } } .vc-jb-jump { display: inline-block; margin-left: 8px; padding: 2px 10px; font-size: 12px; font-weight: 500; color: #fff !important; background: var(--vc-primary); border-radius: 6px; text-decoration: none; cursor: pointer; vertical-align: middle; transition: opacity 0.15s, transform 0.15s; } .vc-jb-jump:hover { opacity: 0.88; transform: translateY(-1px); }`; var rd=`.vc-fab-zone { position: fixed; width: 48px; height: 48px; z-index: 100020; pointer-events: none; font-family: var(--vc-font-ui); transition: left 0.42s var(--vc-ease-out), top 0.42s var(--vc-ease-out), opacity 0.2s ease; } .vc-fab-zone.vc-fab-dragging { transition: none !important; } .vc-fab-zone.vc-fab-dim { opacity: 0.45; } .vc-fab-zone.vc-fab-dim .vc-fab { transform: scale(0.92); } .vc-fab-inner { position: absolute; inset: 0; pointer-events: none; transition: transform 0.42s var(--vc-ease-out), opacity 0.3s var(--vc-ease-out); will-change: transform, opacity; } .vc-fab-zone.vc-peek[data-vc-side="right"] .vc-fab-inner { transform: translateX(var(--vc-fab-peek)); opacity: var(--vc-fav-peek-opacity, 0.55); } .vc-fab-zone.vc-peek[data-vc-side="left"] .vc-fab-inner { transform: translateX(calc(-1 * var(--vc-fab-peek))); opacity: var(--vc-fav-peek-opacity, 0.55); } .vc-fab { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--vc-outline); border-radius: 50%; cursor: pointer; pointer-events: auto; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); color: var(--vc-fab-idle); box-shadow: var(--vc-outline-shadow); transition: transform 0.3s var(--vc-ease-spring), background-color 0.28s var(--vc-ease-out), color 0.28s var(--vc-ease-out), border-color 0.28s var(--vc-ease-out), box-shadow 0.28s var(--vc-ease-out); } .vc-fab:hover { transform: scale(1.06); } .vc-fab:active { transform: scale(0.93); } .vc-fab:focus-visible { outline: 2px solid var(--vc-fab-idle); outline-offset: 3px; } .vc-fab[data-vc-state="want"] { background: var(--vc-want); border-color: var(--vc-want); color: #fff; box-shadow: 0 6px 18px rgba(251, 146, 60, 0.42); } .vc-fab[data-vc-state="watched"] { background: var(--vc-watched); border-color: var(--vc-watched); color: #fff; box-shadow: 0 6px 18px rgba(16, 185, 129, 0.38); } .vc-fab-scale { display: grid; place-items: center; } .vc-fab.vc-fab-pop .vc-fab-scale { animation: vcFabPop 0.46s cubic-bezier(0.34, 1.56, 0.64, 1); } @keyframes vcFabPop { 0% { transform: scale(1); } 32% { transform: scale(0.82); } 64% { transform: scale(1.12); } 100% { transform: scale(1); } } .vc-fab::after { content: ''; position: absolute; inset: 0; border-radius: 50%; background: currentColor; opacity: 0; transform: scale(0.6); pointer-events: none; } .vc-fab.vc-fab-ripple::after { animation: vcFabRipple 0.55s var(--vc-ease-out); } @keyframes vcFabRipple { 0% { opacity: 0.28; transform: scale(0.6); } 100% { opacity: 0; transform: scale(1.9); } } .vc-fab-subs { position: absolute; left: 50%; display: flex; flex-direction: column; align-items: center; gap: 9px; pointer-events: none; opacity: 0; transition: opacity 0.2s var(--vc-ease-out), transform 0.34s var(--vc-ease-out); will-change: opacity, transform; } .vc-fab-subs[hidden] { display: none; } .vc-fab-zone[data-vc-dir="up"] .vc-fab-subs { bottom: 100%; padding-bottom: 9px; transform: translate(-50%, 10px); } .vc-fab-zone[data-vc-dir="down"] .vc-fab-subs { top: 100%; padding-top: 9px; transform: translate(-50%, -10px); } .vc-fab-zone.vc-fab-open .vc-fab-subs { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); } .vc-fab-zone:not(.vc-fab-open) .vc-fab-sub { pointer-events: none; } .vc-fab-sub { position: relative; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--vc-outline); border-radius: 50%; background: rgba(255, 255, 255, 0.96); color: var(--vc-text-secondary); box-shadow: var(--vc-outline-shadow); cursor: pointer; pointer-events: auto; -webkit-tap-highlight-color: transparent; opacity: 0; transform: scale(0.72); transition: opacity 0.22s var(--vc-ease-out), transform 0.34s var(--vc-ease-spring), background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease; } .vc-fab-zone.vc-fab-open .vc-fab-sub { opacity: 1; transform: scale(1); } .vc-fab-zone.vc-fab-open .vc-fab-sub:nth-child(1) { transition-delay: 0.02s; } .vc-fab-zone.vc-fab-open .vc-fab-sub:nth-child(2) { transition-delay: 0.05s; } .vc-fab-zone.vc-fab-open .vc-fab-sub:nth-child(3) { transition-delay: 0.08s; } .vc-fab-zone.vc-fab-open .vc-fab-sub:nth-child(4) { transition-delay: 0.11s; } .vc-fab-sub[hidden] { display: none; } .vc-fab-sub:hover { background: var(--vc-hover); color: var(--vc-text); } .vc-fab-zone.vc-fab-open .vc-fab-sub:active { transform: scale(0.9); } .vc-fab-sub.vc-btn-want.vc-active { background: var(--vc-want); border-color: var(--vc-want); color: #fff; } .vc-fab-sub.vc-btn-watched.vc-active { background: var(--vc-watched); border-color: var(--vc-watched); color: #fff; } .vc-fab-sub[data-vc-tip]::before { content: attr(data-vc-tip); position: absolute; right: calc(100% + 10px); top: 50%; transform: translateY(-50%) translateX(4px); padding: 5px 10px; border-radius: 7px; background: rgba(28, 32, 40, 0.94); color: #fff; font-size: 12px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 0.18s ease, transform 0.18s var(--vc-ease-out); } .vc-fab-zone[data-vc-side="left"] .vc-fab-sub[data-vc-tip]::before { right: auto; left: calc(100% + 10px); transform: translateY(-50%) translateX(-4px); } .vc-fab-sub[data-vc-tip]:hover::before { opacity: 1; transform: translateY(-50%) translateX(0); } .vc-fav-sm .vc-fab-zone[data-vc-side="right"] { transform: scale(0.86); transform-origin: 100% 50%; } .vc-fav-sm .vc-fab-zone[data-vc-side="left"] { transform: scale(0.86); transform-origin: 0 50%; } .vc-status { position: absolute; top: 8px; left: 8px; z-index: 10; display: flex; align-items: center; gap: 2px; padding: 2px; border-radius: 7px; --vc-status-alpha: 100%; background: var(--vc-surface-solid); background: color-mix(in srgb, var(--vc-surface-solid) var(--vc-status-alpha), transparent); opacity: 0; pointer-events: none; transition: opacity 0.2s ease; font-family: var(--vc-font-ui); } .vc-fav-host .vc-status { box-shadow: var(--vc-outline-shadow), 0 0 0 1px var(--vc-outline); } .vc-fav-host .vc-status--pinned { opacity: 1; --vc-status-alpha: 70%; background: var(--vc-status-pinned-bg); background: color-mix(in srgb, var(--vc-surface-solid) var(--vc-status-alpha), transparent); pointer-events: auto; box-shadow: var(--vc-outline-shadow-soft), 0 0 0 1px var(--vc-outline-soft); } .vc-fav-host:hover .vc-status, .vc-status:hover, .vc-status:focus-within { opacity: 1; --vc-status-alpha: 100%; --vc-status-pinned-bg: var(--vc-surface-solid); pointer-events: auto; box-shadow: var(--vc-outline-shadow), 0 0 0 1px var(--vc-outline); z-index: 1010; } .vc-fav-nomark .vc-status--pinned { opacity: 0; pointer-events: none; } .vc-fav-nomark .vc-fav-host:hover .vc-status, .vc-fav-nomark .vc-status:focus-within { opacity: 1; pointer-events: auto; } .vc-status-btn { width: 22px; height: 20px; padding: 0; border: none; border-radius: 5px; background: transparent; color: var(--vc-text); font-size: 12px; line-height: 1; font-family: inherit; text-align: center; text-indent: 0; letter-spacing: normal; text-transform: none; cursor: pointer; opacity: 0.55; transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease; } .vc-status-btn:hover { opacity: 1; background: var(--vc-hover-strong); } .vc-status[data-vc-status="want"] .vc-status-btn[data-vc-set="want"], .vc-status[data-vc-status="watched"] .vc-status-btn[data-vc-set="watched"] { opacity: 1; color: #fff; } .vc-status[data-vc-status="want"] .vc-status-btn[data-vc-set="want"] { background: var(--vc-want); } .vc-status[data-vc-status="watched"] .vc-status-btn[data-vc-set="watched"] { background: var(--vc-watched); } .vc-xjump { position: fixed; z-index: 99999; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; opacity: var(--vc-xjump-opacity, 1); transition: opacity 0.15s ease; } .vc-xjump:hover, .vc-xjump.vc-show { opacity: 1; } .vc-xjump-toggle { display: inline-flex; align-items: center; gap: 4px; padding: 8px 14px; border: 1px solid var(--vc-outline); border-radius: 8px; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); box-shadow: var(--vc-outline-shadow); color: var(--vc-text); font-size: 13px; font-weight: 500; cursor: grab; white-space: nowrap; user-select: none; transition: transform 0.15s ease; } .vc-xjump-toggle:hover, .vc-xjump.vc-show .vc-xjump-toggle { transform: translateY(-1px); } .vc-xjump-sm .vc-xjump-toggle .vc-xjump-label { display: none; } .vc-xjump-sm .vc-xjump-toggle { padding: 8px 10px; } .vc-xjump-menu { position: absolute; top: calc(100% + 6px); right: 0; display: none; flex-direction: column; gap: 4px; background: rgba(255, 255, 255, 0.98); border: 1px solid var(--vc-border); border-radius: 10px; box-shadow: var(--vc-shadow-lg); padding: 6px; max-height: 60vh; overflow: auto; min-width: 102px; box-sizing: border-box; } .vc-xjump.vc-up .vc-xjump-menu { top: auto; bottom: calc(100% + 6px); } .vc-xjump.vc-show .vc-xjump-menu { display: flex; } .vc-xjump-btn { padding: 6px 12px; border: none; border-radius: 6px; background: transparent; color: var(--vc-text-secondary); font-size: 12px; font-weight: 500; line-height: normal; font-family: inherit; -webkit-appearance: none; appearance: none; text-align: left; text-indent: 0; letter-spacing: normal; text-transform: none; white-space: nowrap; cursor: pointer; transition: background 0.15s, color 0.15s; } .vc-xjump-btn:hover { background: var(--vc-primary); color: #fff; }`; var od=`.vc-settings-panel { --vc-settings-control-w: 196px; width: 460px; max-width: 92vw; background: var(--vc-bg); border-radius: 14px; box-shadow: var(--vc-shadow-lg); overflow: hidden; line-height: 1.45; } @keyframes vcSettingsIn { from { opacity: 0; } to { opacity: 1; } } @keyframes vcSettingsOut { from { opacity: 1; } to { opacity: 0; } } .vc-settings-mask.vc-show .vc-settings-panel { animation: vcSettingsIn var(--vc-settings-anim, 0.4s) ease; } .vc-settings-mask.vc-closing .vc-settings-panel { animation: vcSettingsOut var(--vc-settings-anim, 0.4s) ease both; } .vc-settings-header { display: flex; align-items: center; justify-content: space-between; padding: 13px 20px; border-bottom: 1px solid var(--vc-border); } .vc-settings-title { font-size: 15px; font-weight: 600; color: var(--vc-text); } .vc-settings-close { width: 28px; height: 28px; border: none; border-radius: 8px; background: transparent; color: var(--vc-text-secondary); font-size: 18px; line-height: 1; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; } .vc-settings-close:hover { background: var(--vc-bg-soft); color: var(--vc-text); } .vc-settings-body { padding: 8px 16px 16px; max-height: min(76vh, 860px); overflow-y: auto; overscroll-behavior: contain; } .vc-settings-body::-webkit-scrollbar { width: 6px; } .vc-settings-body::-webkit-scrollbar-thumb { background: var(--vc-scroll-thumb); border-radius: 3px; } .vc-settings-item { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 8px; cursor: pointer; transition: background 0.15s ease; } .vc-settings-item:hover { background: var(--vc-bg-soft); } .vc-settings-item.vc-settings-static { cursor: default; } .vc-settings-item.vc-settings-static:hover { background: transparent; } .vc-settings-info { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; } .vc-settings-label { font-size: 14px; line-height: 1.4; font-weight: 500; color: var(--vc-text); } .vc-settings-desc { font-size: 12px; line-height: 1.45; color: var(--vc-text-secondary); } .vc-settings-desc-sub { font-size: 11px; color: var(--vc-text-secondary); opacity: 0.85; } .vc-settings-storage-parts { display: flex; flex-wrap: wrap; column-gap: 12px; row-gap: 2px; } .vc-settings-storage-parts:empty { display: none; } .vc-settings-storage-part { white-space: nowrap; } .vc-settings-section + .vc-settings-section { margin-top: 6px; border-top: 1px solid var(--vc-border); } .vc-settings-section-title { font-size: 13px; font-weight: 600; color: var(--vc-text-secondary); padding: 10px 12px 4px; } .vc-settings-item .vc-switch { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; pointer-events: none; } .vc-settings-switch-track { position: relative; flex-shrink: 0; width: 40px; height: 22px; border-radius: 999px; background: var(--vc-bg-muted); border: 1px solid var(--vc-border); box-sizing: border-box; cursor: pointer; transition: background 0.18s ease, border-color 0.18s ease; } .vc-settings-switch-track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); transition: transform 0.18s ease; } @supports selector(:has(*)) { .vc-settings-item:has(.vc-switch:checked) .vc-settings-switch-track { background: var(--vc-primary); border-color: var(--vc-primary); } .vc-settings-item:has(.vc-switch:checked) .vc-settings-switch-track::after { transform: translateX(18px); } .vc-settings-item:has(.vc-switch:focus-visible) .vc-settings-switch-track { outline: 2px solid var(--vc-primary); outline-offset: 2px; } } @supports not (selector(:has(*))) { .vc-switch:checked + .vc-settings-info + .vc-settings-switch-track { background: var(--vc-primary); border-color: var(--vc-primary); } .vc-switch:checked + .vc-settings-info + .vc-settings-switch-track::after { transform: translateX(18px); } .vc-switch:focus-visible + .vc-settings-info + .vc-settings-switch-track { outline: 2px solid var(--vc-primary); outline-offset: 2px; } } .vc-settings-control { flex: none; display: flex; align-items: center; justify-content: flex-end; gap: 8px; } @supports selector(:has(*)) { .vc-settings-control:has(.vc-settings-range), .vc-settings-control:has(.vc-settings-seg) { min-width: var(--vc-settings-control-w); } } .vc-settings-range-val { min-width: 38px; text-align: right; font-size: 12px; font-variant-numeric: tabular-nums; color: var(--vc-text-secondary); } .vc-settings-item .vc-settings-range { display: block; -webkit-appearance: none; appearance: none; width: 150px; height: 8px; margin: 0; padding: 0; border: none; border-radius: 999px; background: var(--vc-track, rgba(0, 0, 0, 0.1)); background-image: none; font-size: inherit; line-height: normal; color: var(--vc-text-secondary); vertical-align: middle; box-sizing: border-box; outline: none; cursor: pointer; } .vc-settings-item .vc-settings-range::-webkit-slider-runnable-track { -webkit-appearance: none; height: 8px; border-radius: 999px; background: transparent; } .vc-settings-item .vc-settings-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; margin-top: -4px; background: var(--vc-primary); border: 2px solid rgba(255, 255, 255, 0.95); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); cursor: pointer; } .vc-settings-item .vc-settings-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--vc-primary); border: 2px solid rgba(255, 255, 255, 0.95); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); cursor: pointer; } .vc-settings-item .vc-settings-range::-moz-range-track { height: 8px; border-radius: 999px; background: transparent; } .vc-settings-btn { flex: none; padding: 6px 12px; border: 1px solid var(--vc-border); border-radius: 8px; background: var(--vc-bg-soft); color: var(--vc-text-secondary); font-size: 12px; font-weight: 500; font-family: inherit; cursor: pointer; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; } .vc-settings-btn:hover { background: var(--vc-primary); border-color: var(--vc-primary); color: #fff; } .vc-settings-item .vc-settings-range:focus-visible, .vc-settings-btn:focus-visible { outline: 2px solid var(--vc-primary); outline-offset: 3px; } .vc-settings-seg { display: inline-flex; flex-shrink: 0; border: 1px solid var(--vc-border); border-radius: 8px; overflow: hidden; background: var(--vc-bg-soft); } .vc-settings-seg-btn { padding: 6px 12px; border: none; background: transparent; color: var(--vc-text-secondary); font-size: 12px; font-weight: 500; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; } .vc-settings-seg-btn + .vc-settings-seg-btn { border-left: 1px solid var(--vc-border); } .vc-settings-seg-btn.vc-active { background: var(--vc-primary); color: #fff; } .vc-settings-seg-btn:focus-visible { outline: 2px solid var(--vc-primary-lighter); outline-offset: -2px; }`; var id=`.vc-panel { --vc-bg: rgba(30, 32, 44, 0.72); --vc-bg-soft: rgba(255, 255, 255, 0.05); --vc-bg-muted: rgba(255, 255, 255, 0.08); --vc-text: #eef1f8; --vc-text-medium: #d3d9ea; --vc-text-secondary: #a8b0c5; --vc-text-placeholder: #7d8496; --vc-border: rgba(255, 255, 255, 0.12); --vc-border-light: rgba(255, 255, 255, 0.07); --vc-border-dark: rgba(255, 255, 255, 0.22); --vc-hover: rgba(255, 255, 255, 0.08); --vc-hover-strong: rgba(255, 255, 255, 0.16); --vc-primary: #8b8ff5; --vc-primary-light: #a5b4fc; --vc-primary-dark: #a5b4fc; --vc-track: rgba(255, 255, 255, 0.16); --vc-shadow: 0 2px 12px rgba(0, 0, 0, 0.3); --vc-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.35); --vc-shadow-lg: 0 30px 90px rgba(0, 0, 0, 0.55); --vc-surface: rgba(255, 255, 255, 0.08); --vc-surface-hover: rgba(255, 255, 255, 0.14); --vc-surface-solid: rgba(20, 22, 30, 0.82); --vc-top-highlight: rgba(255, 255, 255, 0.14); --vc-shadow-edge: 0 2px 8px rgba(0, 0, 0, 0.3); --vc-menu-bg: #1e202c; --vc-menu-text: #eef1f8; --vc-scroll-thumb: rgba(255, 255, 255, 0.18); --vc-info-scrim: rgba(12, 14, 20, 0.72); --vc-info-scrim-light: rgba(12, 14, 20, 0.55); --vc-info-scrim-fade: rgba(12, 14, 20, 0); --vc-info-text: rgba(255, 255, 255, 0.96); --vc-info-text-dim: rgba(255, 255, 255, 0.68); --vc-info-accent: #b8bcff; --vc-cover-pos-wide: right center; --vc-cover-placeholder: linear-gradient(155deg, #454a58 0%, #2b2f3a 100%); color-scheme: dark; width: 980px; font-family: var(--vc-font-ui); max-width: 92vw; height: 92vh; min-height: 400px; color: var(--vc-text); background: var(--vc-bg); -webkit-backdrop-filter: blur(40px) saturate(180%); backdrop-filter: blur(40px) saturate(180%); border-radius: 16px; box-shadow: var(--vc-shadow-lg), var(--vc-shadow-edge), inset 0 1px 0 var(--vc-top-highlight); transition: box-shadow 0.4s ease-out; display: flex; flex-direction: column; overflow: hidden; position: relative; border: 1px solid var(--vc-border); } .vc-panel.vc-cover-fit-off { --vc-cover-pos-wide: center; } .vc-panel.vc-panel-light { --vc-bg: rgba(252, 252, 254, 0.72); --vc-bg-soft: rgba(15, 20, 30, 0.04); --vc-bg-muted: rgba(15, 20, 30, 0.06); --vc-text: #1f2430; --vc-text-medium: #333a4d; --vc-text-secondary: #5b6377; --vc-text-placeholder: #8b93a7; --vc-border: rgba(15, 20, 30, 0.12); --vc-border-light: rgba(15, 20, 30, 0.07); --vc-border-dark: rgba(15, 20, 30, 0.22); --vc-hover: rgba(15, 20, 30, 0.05); --vc-hover-strong: rgba(15, 20, 30, 0.1); --vc-primary: #6366f1; --vc-primary-light: #4f46e5; --vc-primary-dark: #4f46e5; --vc-track: rgba(15, 20, 30, 0.14); --vc-shadow: 0 2px 12px rgba(15, 20, 30, 0.12); --vc-shadow-md: 0 4px 16px rgba(15, 20, 30, 0.14); --vc-shadow-lg: 0 30px 90px rgba(15, 20, 30, 0.26); --vc-shadow-edge: 0 2px 8px rgba(15, 20, 30, 0.1); --vc-surface: rgba(255, 255, 255, 0.72); --vc-surface-hover: rgba(255, 255, 255, 0.98); --vc-surface-solid: rgba(255, 255, 255, 0.9); --vc-top-highlight: rgba(255, 255, 255, 0.9); --vc-menu-bg: #ffffff; --vc-menu-text: #1f2430; --vc-scroll-thumb: rgba(15, 20, 30, 0.2); color-scheme: light; } .vc-list-wrap::-webkit-scrollbar { width: 6px; } .vc-list-wrap::-webkit-scrollbar-thumb { background: var(--vc-scroll-thumb); border-radius: 3px; } .vc-panel-header { padding: 18px 46px 14px 24px; border-bottom: 1px solid var(--vc-border); flex-shrink: 0; } .vc-panel-title-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; } .vc-panel-title { font-size: 18px; font-weight: 600; color: var(--vc-text); margin: 0; } .vc-header-actions { display: flex; gap: 8px; } .vc-header-divider { flex: none; width: 1px; margin: 2px 0; background: var(--vc-border); } .vc-icon-btn-sm { padding: 6px 12px; border: 1px solid var(--vc-border); background: var(--vc-surface); border-radius: 8px; font-size: 12px; cursor: pointer; color: var(--vc-text-secondary); transition: all 0.15s; } .vc-icon-btn-sm:hover { border-color: var(--vc-primary); color: var(--vc-primary); } .vc-icon-btn-sm.vc-icon-btn-gear { padding: 6px 9px; font-size: 16px; line-height: 1; } .vc-icon-btn-sm.vc-icon-btn-icon { display: inline-flex; align-items: center; justify-content: center; align-self: center; width: 30px; height: 30px; padding: 0; } .vc-icon-btn-sm .vc-icon { display: block; width: 15px; height: 15px; } .vc-icon-btn-refresh.vc-spin .vc-icon { animation: vcSpin 0.45s ease; } @keyframes vcSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .vc-header-menu-wrap { position: relative; display: flex; align-items: center; align-self: center; } .vc-header-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 30; display: none; flex-direction: column; min-width: 128px; padding: 6px; background: var(--vc-menu-bg); border: 1px solid var(--vc-border); border-radius: 10px; box-shadow: var(--vc-shadow-md); } .vc-header-menu.vc-show { display: flex; } .vc-header-menu-item { padding: 8px 12px; border: none; border-radius: 6px; background: none; color: var(--vc-menu-text); font-family: inherit; font-size: 13px; text-align: left; white-space: nowrap; cursor: pointer; transition: background 0.15s, color 0.15s; } .vc-header-menu-item:hover { background: var(--vc-hover); color: var(--vc-primary); } .vc-tabs { display: flex; align-items: center; gap: 24px; margin-bottom: 12px; } .vc-tab { padding: 6px 0; font-size: 14px; color: var(--vc-text-secondary); cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.2s; } .vc-tab.vc-active { color: var(--vc-primary); border-bottom-color: var(--vc-primary); font-weight: 500; } .vc-search { flex: 1; min-width: 0; width: auto; padding: 8px 30px 8px 12px; border: 1px solid var(--vc-border); border-radius: 8px; font-size: 13px; outline: none; transition: border-color 0.2s; box-sizing: border-box; background: var(--vc-surface); color: var(--vc-text); } .vc-search::placeholder { color: var(--vc-text-placeholder); } .vc-search:focus { border-color: var(--vc-primary); } .vc-search-row { display: flex; align-items: center; gap: 8px; margin-left: auto; min-width: 0; } .vc-search-wrap { position: relative; display: flex; align-items: center; flex: 1; min-width: 0; } .vc-search-clear { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: none; width: 18px; height: 18px; padding: 0; border: none; border-radius: 50%; background: transparent; color: var(--vc-text-placeholder); cursor: pointer; align-items: center; justify-content: center; transition: color 0.2s, background 0.2s; } .vc-search-clear::before, .vc-search-clear::after { content: ''; position: absolute; left: 50%; top: 50%; width: 8px; height: 1.5px; background: currentColor; border-radius: 1px; } .vc-search-clear::before { transform: translate(-50%, -50%) rotate(45deg); } .vc-search-clear::after { transform: translate(-50%, -50%) rotate(-45deg); } .vc-search:not(:placeholder-shown) ~ .vc-search-clear { display: flex; } .vc-search-clear:hover { color: var(--vc-text); background: var(--vc-hover); } .vc-site-select { flex-shrink: 0; max-width: 140px; padding: 8px 6px; border: 1px solid var(--vc-border); border-radius: 8px; font-size: 12px; color: var(--vc-text); background: var(--vc-surface); outline: none; cursor: pointer; transition: border-color 0.2s; box-sizing: border-box; } .vc-site-select option { background: var(--vc-menu-bg); color: var(--vc-menu-text); } .vc-site-select:focus { border-color: var(--vc-primary); } .vc-list-wrap { flex: 1; overflow-y: auto; padding: 20px 24px; display: none; box-sizing: border-box; } .vc-list-wrap.vc-active { display: block; } .vc-panel > * { transition: opacity 0.5s ease-out, transform 0.5s ease-out; transition-delay: 100ms; } .vc-panel > .vc-list-wrap { transition-delay: 500ms; } .vc-panel > .vc-batch-bar, .vc-panel > .vc-pagination { transition-delay: 600ms; } .vc-panel.vc-content-enter > * { opacity: 0; transform: translateY(4px); transition: none; } .vc-panel.vc-content-enter > .vc-panel-header { transform: none; } .vc-grid { display: grid; grid-template-columns: repeat(5, 1fr); grid-template-rows: repeat(3, minmax(160px, 1fr)); gap: 16px; height: 100%; width: 100%; } .vc-card { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--vc-border); background: var(--vc-surface); transition: all 0.2s ease; cursor: pointer; display: flex; flex-direction: column; max-height: 312px; } .vc-card:hover { background: var(--vc-surface-hover); border-color: var(--vc-border-dark); transform: translateY(-2px); } .vc-card-cover { position: absolute; inset: 0; z-index: 0; background: var(--vc-cover-placeholder); display: flex; align-items: center; justify-content: center; overflow: hidden; } .vc-card-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center; cursor: zoom-in; opacity: 0; transition: opacity 1s cubic-bezier(0.32, 0.72, 0, 1), transform 0.2s; } .vc-card-cover img.vc-cover-ready { opacity: 1; } .vc-card-cover img.vc-cover-wide { object-position: var(--vc-cover-pos-wide); } .vc-card:hover .vc-card-cover img { transform: scale(1.05); } .vc-card-cover .vc-default-cover { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--vc-cover-placeholder); color: rgba(255, 255, 255, 0.4); font-size: 28px; } .vc-card-actions { position: absolute; top: 8px; right: 8px; display: flex; gap: 4px; opacity: 0; transition: opacity 0.2s ease; z-index: 2; } .vc-card:hover .vc-card-actions { opacity: 1; } .vc-card-action-btn { padding: 4px 8px; border: none; background: var(--vc-surface-solid); border-radius: 6px; font-size: 11px; cursor: pointer; color: var(--vc-text); transition: all 0.15s; } .vc-card-action-btn:hover { background: var(--vc-primary); color: #fff; } .vc-card-delete-btn:hover { background: var(--vc-danger); color: white; } .vc-card-info { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 6px 8px 8px; background: var(--vc-info-scrim); transition: background 0.2s ease; } .vc-card-info::before { content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 16px; background: linear-gradient(to top, var(--vc-info-scrim) 0%, var(--vc-info-scrim-fade) 75%); pointer-events: none; transition: background 0.2s ease; } .vc-panel-light .vc-card-info { background: var(--vc-info-scrim-light); } .vc-panel-light .vc-card-info::before { background: linear-gradient(to top, var(--vc-info-scrim-light) 0%, var(--vc-info-scrim-fade) 75%); } .vc-panel-light .vc-card-info:hover { background: var(--vc-info-scrim); } .vc-panel-light .vc-card-info:hover::before { background: linear-gradient(to top, var(--vc-info-scrim) 0%, var(--vc-info-scrim-fade) 75%); } .vc-card-info .vc-card-title { color: var(--vc-info-text); } .vc-card-info .vc-card-time { color: var(--vc-info-text-dim); } .vc-card-info .vc-card-last-played { color: var(--vc-info-accent); } .vc-card-rate { position: absolute; left: 8px; top: 36px; z-index: 2; display: none; max-width: calc(100% - 16px); overflow: hidden; transition: opacity 0.2s ease; } .vc-card-rate:not(:empty) { display: inline-flex; align-items: center; } .vc-card-rate-link { padding: 1px 6px; border-radius: 4px; background: rgba(15, 17, 23, 0.72); font-size: 10px; font-weight: 600; line-height: 1.5; color: var(--vc-info-accent); text-decoration: none; white-space: nowrap; } .vc-card-rate-link:hover { text-decoration: underline; } .vc-card-rate-none { opacity: 0; font-weight: 500; transition: opacity 0.2s ease; } .vc-card:hover .vc-card-rate-none, .vc-card-rate-none:focus-visible { opacity: 0.72; } .vc-card-rate-fetch { padding: 1px 6px; border-radius: 4px; border: none; background: rgba(15, 17, 23, 0.72); font-family: inherit; font-size: 10px; font-weight: 600; line-height: 1.5; color: var(--vc-info-accent); cursor: pointer; opacity: 0; transition: opacity 0.2s ease; } .vc-card:hover .vc-card-rate-fetch, .vc-card-rate-fetch:focus-visible { opacity: 1; } .vc-panel.vc-batch-mode .vc-card-rate { opacity: 0; pointer-events: none; } .vc-card-title { font-size: 12px; line-height: 1.4; color: var(--vc-text); font-weight: 500; height: 1.4em; overflow: hidden; transition: height 0.28s ease; } .vc-card-info:hover .vc-card-title { height: var(--vc-title-full, auto); transition-delay: 0.12s; } .vc-card-copy { display: inline-block; border: none; background: transparent; cursor: pointer; font-size: 11px; line-height: 1; padding: 0; margin: 0; margin-top: -2px; border-radius: 4px; vertical-align: middle; opacity: 0.55; transition: opacity 0.15s, background 0.15s; } .vc-card-copy:hover { opacity: 1; background: rgba(139, 143, 245, 0.24); } .vc-card-site { position: absolute; left: 8px; top: 14px; z-index: 2; max-width: calc(100% - 16px); font-size: 10px; line-height: 1.5; color: #fff; background: rgba(15, 17, 23, 0.72); padding: 1px 6px; border-radius: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; transition: opacity 0.2s ease; } .vc-card:hover .vc-card-site { opacity: 0; } .vc-panel.vc-batch-mode .vc-card-site { opacity: 0; } .vc-card-site:empty { display: none; } .vc-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 4px; min-width: 0; } .vc-card-time { flex: 1 1 auto; font-size: 11px; color: var(--vc-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; } .vc-card-last-played { flex: none; max-width: 100%; font-family: var(--vc-font-ui); font-size: 11px; font-weight: 600; color: var(--vc-primary-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; } .vc-card-last-played:empty { display: none; } .vc-card:hover .vc-card-status, .vc-card-status:focus-within { opacity: 1; pointer-events: auto; } .vc-card.vc-pending { opacity: 0.6; filter: grayscale(1); } .vc-card.vc-pending .vc-card-status { display: none; } .vc-card-pending { position: absolute; inset: 0; z-index: 4; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border-radius: 12px; background: rgba(12, 14, 20, 0.62); } .vc-card-pending-text { font-size: 12px; font-weight: 500; color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); } .vc-card-undo { padding: 3px 10px; border: 1px solid var(--vc-border-dark); border-radius: 6px; background: var(--vc-surface-solid); color: var(--vc-text); font-size: 11px; font-weight: 500; font-family: inherit; cursor: pointer; transition: all 0.15s; } .vc-card-undo:hover { background: var(--vc-primary); border-color: var(--vc-primary); color: #fff; } .vc-empty { grid-column: 1 / -1; grid-row: 1 / -1; align-self: center; justify-self: center; display: flex; align-items: center; justify-content: center; max-width: 360px; padding: 22px 26px; border: 1px dashed var(--vc-border-dark); border-radius: 12px; background: var(--vc-bg-soft); color: var(--vc-text-secondary); font-size: 14px; line-height: 1.6; text-align: center; } .vc-pagination { padding: 12px 24px; border-top: 1px solid var(--vc-border); display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--vc-text-secondary); flex-shrink: 0; font-variant-numeric: tabular-nums; } .vc-pagination-btns { display: flex; align-items: center; gap: 8px; } .vc-page-btn { padding: 4px 10px; border: 1px solid var(--vc-border); background: var(--vc-surface); border-radius: 6px; font-size: 12px; cursor: pointer; color: var(--vc-text-secondary); font-family: inherit; transition: all 0.15s; } .vc-page-btn:hover:not(:disabled) { border-color: var(--vc-primary); color: var(--vc-primary); } .vc-page-btn:disabled { opacity: 0.4; cursor: not-allowed; } .vc-close { position: relative; flex: none; align-self: center; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; background: none; border: none; color: var(--vc-text-secondary); cursor: pointer; line-height: 1; margin-right: -38px; } .vc-close::before, .vc-close::after { content: ''; position: absolute; left: 50%; top: 50%; width: 13px; height: 1.6px; background: currentColor; border-radius: 1px; } .vc-close::before { transform: translate(-50%, -50%) rotate(45deg); } .vc-close::after { transform: translate(-50%, -50%) rotate(-45deg); } .vc-close:hover { color: var(--vc-text); } .vc-card-checkbox { position: absolute; top: 6px; left: 6px; z-index: 3; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; } .vc-card-checkbox input { width: 16px; height: 16px; cursor: pointer; accent-color: var(--vc-primary); } .vc-panel.vc-batch-mode .vc-card-checkbox { display: flex !important; } .vc-panel.vc-batch-mode .vc-card-actions { display: none !important; } .vc-panel.vc-batch-mode .vc-card-cover img { cursor: pointer; } .vc-panel.vc-batch-mode .vc-card-status { display: none !important; } .vc-panel.vc-batch-mode .vc-card-copy { display: none !important; } .vc-panel.vc-batch-mode .vc-card { cursor: pointer; } .vc-card.vc-selected { box-shadow: 0 0 0 2px var(--vc-primary); } .vc-batch-bar { padding: 12px 24px; border-top: 1px solid var(--vc-border); display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--vc-text-secondary); flex-shrink: 0; font-family: var(--vc-font-ui); background: var(--vc-hover); } .vc-batch-select-all { display: flex; align-items: center; gap: 4px; cursor: pointer; white-space: nowrap; font-weight: 500; } .vc-batch-select-all input { width: 16px; height: 16px; cursor: pointer; accent-color: var(--vc-primary); } .vc-batch-count { color: var(--vc-primary); font-weight: 600; white-space: nowrap; } .vc-batch-actions { margin-left: auto; display: flex; gap: 6px; } .vc-batch-btn { padding: 4px 12px; border: 1px solid var(--vc-border); background: var(--vc-surface); border-radius: 6px; font-size: 12px; font-weight: 500; cursor: pointer; color: var(--vc-text-secondary); transition: all 0.15s; font-family: inherit; } .vc-batch-btn:hover:not(:disabled) { border-color: var(--vc-primary); color: var(--vc-primary); } .vc-batch-btn:disabled { opacity: 0.4; cursor: not-allowed; } .vc-batch-btn-danger:hover:not(:disabled) { border-color: var(--vc-danger); color: var(--vc-danger); } .vc-batch-btn-ghost { border-color: transparent; background: transparent; } .vc-batch-btn-ghost:hover { color: var(--vc-text) !important; border-color: var(--vc-border) !important; } .vc-panel.vc-batch-mode .vc-pagination { display: none; } .vc-panel .vc-icon-btn-sm:focus-visible, .vc-panel .vc-header-menu-item:focus-visible, .vc-panel .vc-close:focus-visible, .vc-panel .vc-search:focus-visible, .vc-panel .vc-search-clear:focus-visible, .vc-panel .vc-site-select:focus-visible, .vc-panel .vc-page-btn:focus-visible, .vc-panel .vc-batch-btn:focus-visible, .vc-panel .vc-card-action-btn:focus-visible, .vc-panel .vc-card-status-btn:focus-visible, .vc-panel .vc-card-undo:focus-visible { outline: 2px solid var(--vc-primary-light); outline-offset: 2px; } .vc-panel.vc-batch-mode .vc-icon-btn-batch { border-color: var(--vc-primary); color: var(--vc-primary); } @media (prefers-reduced-motion: reduce) { .vc-panel .vc-card { transition: none; } .vc-panel .vc-icon-btn-refresh.vc-spin .vc-icon { animation: none; } .vc-panel .vc-card-cover img { transition: opacity 0.15s ease-out; } .vc-panel .vc-card:hover, .vc-panel .vc-card:hover .vc-card-cover img { transform: none; } }`; var cd=`.vc-confirm-mask { position: fixed; inset: 0; z-index: 100002; background: rgba(0, 0, 0, 0.35); display: none; align-items: center; justify-content: center; backdrop-filter: blur(2px); } .vc-confirm-mask.vc-show { display: flex !important; } .vc-confirm-dialog { width: 375px; max-width: 90vw; background: white; border-radius: 12px; box-shadow: var(--vc-shadow-lg); padding: 24px; text-align: center; animation: vcFadeIn 0.15s ease; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; } .vc-confirm-text { font-size: 15px; font-weight: 500; color: var(--vc-text); line-height: 1.5; margin-bottom: 25px; white-space: pre-line; } .vc-confirm-actions { display: flex; gap: 20px; justify-content: center; } .vc-confirm-btn { padding: 7px 20px; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.15s; font-family: inherit; } .vc-confirm-cancel { background: var(--vc-hover); color: var(--vc-text-secondary); border: 1px solid var(--vc-border); } .vc-confirm-cancel:hover { background: var(--vc-border); color: var(--vc-text); } .vc-confirm-ok { background: var(--vc-primary); color: white; } .vc-confirm-ok:hover { opacity: 0.9; } .vc-confirm-ok.vc-danger { background: var(--vc-danger); } .vc-import-dialog { width: 420px; max-width: 92vw; background: white; border-radius: 12px; box-shadow: var(--vc-shadow-lg); padding: 24px; animation: vcFadeIn 0.15s ease; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; } .vc-import-title { font-size: 16px; font-weight: 600; color: var(--vc-text); margin-bottom: 16px; } .vc-import-options { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; } .vc-import-option { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 14px; border: 1px solid var(--vc-border); border-radius: 8px; background: #fff; cursor: pointer; text-align: left; transition: border-color 0.15s, background 0.15s; font-family: inherit; } .vc-import-option:hover { border-color: var(--vc-primary); background: rgba(79, 70, 229, 0.04); } .vc-import-option-name { font-size: 14px; font-weight: 500; color: var(--vc-text); } .vc-import-option-desc { font-size: 12px; color: var(--vc-text-secondary); line-height: 1.4; } .vc-import-actions { display: flex; justify-content: center; } .vc-toast { position: fixed; top: 5vh; left: 50%; transform: translateX(-50%) translateY(-8px); z-index: 100010; display: flex; align-items: center; gap: 8px; max-width: 80vw; padding: 10px 14px 12px; background: #fff; color: var(--vc-text); font-size: 13px; font-weight: 500; border-radius: 10px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18); border: 1px solid var(--vc-border); font-family: var(--vc-font-ui); opacity: 0; pointer-events: none; overflow: hidden; transition: opacity 0.3s ease, transform 0.3s ease; } .vc-toast.vc-show { display: flex !important; opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; animation: vc-toast-pop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); } @keyframes vc-toast-pop { 0% { opacity: 0; transform: translateX(-50%) translateY(-16px) scale(0.96); } 70% { opacity: 1; transform: translateX(-50%) translateY(3px) scale(1.02); } 100% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); } } .vc-toast-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .vc-toast-emph { display: inline-block; padding: 1px 6px; margin: 0 2px; border-radius: 999px; background: var(--vc-primary-lighter); color: var(--vc-primary-dark); font-weight: 600; } .vc-toast-icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--vc-primary-light); color: #fff; } .vc-toast-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--vc-primary-light); transform-origin: left center; opacity: 0; } .vc-toast.vc-show .vc-toast-bar { opacity: 1; animation: vc-toast-progress var(--vc-toast-duration, 2000ms) linear forwards; } @keyframes vc-toast-progress { to { transform: scaleX(0); } } .vc-toast.vc-toast-primary { border-color: var(--vc-primary-light); box-shadow: 0 8px 30px rgba(79, 70, 229, 0.28); } .vc-toast-clickable { cursor: pointer; } .vc-toast-clickable:hover { border-color: var(--vc-primary); } .vc-toast-link { color: var(--vc-primary-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; } .vc-toast-clickable:hover .vc-toast-link { color: var(--vc-primary); text-decoration-thickness: 2px; } .vc-toast-close { flex-shrink: 0; padding: 0 2px; border: none; background: none; color: var(--vc-text-secondary); font-size: 16px; line-height: 1; cursor: pointer; } .vc-toast-close:hover { color: var(--vc-text); }`; var ad=`.vc-ws-mask { position: fixed; inset: 0; z-index: 100001; background: rgba(0, 0, 0, 0.45); display: none; align-items: center; justify-content: center; font-family: var(--vc-font-ui); } .vc-ws-mask.vc-show { display: flex; } @keyframes vcWsIn { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: none; } } .vc-ws-panel { width: 460px; max-width: 92vw; max-height: 82vh; display: flex; flex-direction: column; background: var(--vc-bg); border-radius: 14px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3); overflow: hidden; color: var(--vc-text); } .vc-ws-mask.vc-show .vc-ws-panel { animation: vcWsIn 0.18s ease; } .vc-ws-header { display: flex; align-items: center; justify-content: space-between; padding: 13px 20px; border-bottom: 1px solid var(--vc-border); } .vc-ws-title { font-size: 15px; font-weight: 600; } .vc-ws-close { width: 28px; height: 28px; border: none; border-radius: 8px; background: transparent; color: var(--vc-text-secondary); font-size: 18px; line-height: 1; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; } .vc-ws-close:hover { background: var(--vc-bg-soft); color: var(--vc-text); } .vc-ws-body { padding: 12px 16px 4px; overflow-y: auto; overscroll-behavior: contain; } .vc-ws-input-row { position: relative; display: flex; align-items: center; } .vc-ws-body .vc-ws-input { display: block; flex: 1; min-width: 0; box-sizing: border-box; margin: 0; padding: 9px 30px 9px 12px; border: 1px solid var(--vc-border); border-radius: 8px; background: var(--vc-surface); color: var(--vc-text); font-size: 13px; font-family: inherit; line-height: 1.4; outline: none; } .vc-ws-body .vc-ws-input:focus { border-color: var(--vc-primary); } .vc-ws-clear { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: none; width: 18px; height: 18px; padding: 0; border: none; border-radius: 50%; background: transparent; color: var(--vc-text-placeholder); cursor: pointer; align-items: center; justify-content: center; transition: color 0.2s, background 0.2s; } .vc-ws-clear::before, .vc-ws-clear::after { content: ''; position: absolute; left: 50%; top: 50%; width: 8px; height: 1.5px; background: currentColor; border-radius: 1px; } .vc-ws-clear::before { transform: translate(-50%, -50%) rotate(45deg); } .vc-ws-clear::after { transform: translate(-50%, -50%) rotate(-45deg); } .vc-ws-input:not(:placeholder-shown) ~ .vc-ws-clear { display: flex; } .vc-ws-clear:hover { color: var(--vc-text); background: var(--vc-hover); } .vc-ws-clear:focus-visible { outline: 2px solid var(--vc-primary-light); outline-offset: 2px; } .vc-ws-hint { margin: 8px 2px 0; font-size: 12px; line-height: 1.5; color: var(--vc-text-secondary); } .vc-ws-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 10px 0 12px; } .vc-ws-item { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 10px; border: 1px solid var(--vc-border); border-radius: 8px; background: var(--vc-surface); transition: border-color 0.15s ease; } .vc-ws-item:hover { border-color: var(--vc-primary); } .vc-ws-item.vc-ws-item-visited { opacity: 0.55; } .vc-ws-item.vc-ws-item-visited:hover { opacity: 1; } .vc-ws-check { flex: none; width: 14px; height: 14px; margin: 0; accent-color: var(--vc-primary); cursor: pointer; } .vc-ws-link { flex: 1; min-width: 0; font-size: 13px; font-weight: 500; color: var(--vc-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .vc-ws-link:hover { color: var(--vc-primary); } .vc-ws-link:focus-visible { outline: 2px solid var(--vc-primary-light); outline-offset: 2px; border-radius: 4px; } .vc-ws-link-off { color: var(--vc-text-placeholder); pointer-events: none; } .vc-ws-domain { flex: none; max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; color: var(--vc-text-secondary); } .vc-ws-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px 14px; border-top: 1px solid var(--vc-border); } .vc-ws-count { font-size: 12px; color: var(--vc-text-secondary); } .vc-ws-btn { padding: 7px 14px; border: none; border-radius: 8px; background: var(--vc-primary); color: #fff; font-size: 13px; font-family: inherit; cursor: pointer; transition: background 0.15s ease; } .vc-ws-btn:hover { background: var(--vc-primary-dark); } .vc-ws-btn:focus-visible { outline: 2px solid var(--vc-primary-light); outline-offset: 2px; }`; var hh=[ed,nd,rd,od,id,cd,ad].join("\n"); var sd=hh; var ld=`
我的收藏
想看
已看
观看记录
共 0 条收藏
1 / 1
`; var ud=`
{{coverHtml}}
{{siteName}} {{rateHtml}} {{statusButtons}}
{{copyBtnHtml}}{{title}}
{{dateStr}} {{lastPlayed}}
`; var dd=`{{title}} `; var fd=`
🖼️
`; var wh={panelTemplate:ld,cardTemplate:ud,coverImageTemplate:dd,defaultCoverTemplate:fd}; var At; function Ed(t){const e=Fr(t&&t.cover||"");if(!e||/^[a-z][a-z0-9+.-]*:/i.test(e))return e;const n=on(t.coverFrom||t.siteId);const r=n?ke(n):"";return Gt(e,r?"https://"+r:location.href)} o(Ed,"displayCover"); function Sh(t,e){const n=lt(e);return(t.domains||[]).some(r=>{const i=lt(r);return n===i||n.endsWith("."+i)})} o(Sh,"isSiteDomain"); function Ji(t){if(!t||!t.cover)return null;const e=on(t.coverFrom||t.siteId);if(!e||typeof e.coverReferer!=="function")return null;let n=null;try{n=new URL(Ed(t))}catch(a){return null}if(n.host===location.host)return null;if(!Sh(e,n.host))return null;const r=[n.host];const i=ke(e);if(i)r.push(lt(i));(e.domains||[]).forEach(a=>r.push(lt(a)));const c=r.filter((a,s)=>a&&r.indexOf(a)===s).map(a=>{const s=n.protocol+"//"+a;return{url:s+n.pathname+n.search,referer:e.coverReferer(t.path,s)}});return{url:c[0].url,attempts:c}} o(Ji,"proxyPlanOf"); function pd(){if(!Ke.isPanelOpen())return;Ct.renderedTabs.clear();Ke.renderActiveList()} o(pd,"refreshPanelIfOpen"); var uo=Ku({volume:true,rating:{get:o(()=>si(),"get"),set:o(t=>{gs(t);pd()},"set"),clear:o(()=>{cl();pd()},"clear"),confirm:Ce,status:o(()=>vl(),"status")},usage:o(()=>El(),"usage"),engine:{get:o(()=>GM_getValue(ge,true)!==false,"get"),set:o(t=>GM_setValue(ge,t!==false),"set")}}); var rc=Wu({listTargetsFn:mu,resolveUrlFn:gu,warmDomainFn:hu,setEnabledFn:vu}); var Ke=$u({state:Ct,pageSize:qo,loadFn:o(()=>({...Et(),history:Cl()}),"loadFn"),hasHistory:true,filterFn:o((t,e)=>{if(!e)return t;const n=e.toLowerCase();return t.filter(r=>(r.name||"").toLowerCase().includes(n))},"filterFn"),getId:o(t=>t.name,"getId"),getTitle:o(t=>t.name,"getTitle"),getUrl:o(t=>Ch(t),"getUrl"),resolveUrlFn:Mh,getSiteName:o(t=>{if(!t.siteId)return"";return(on(t.siteId)||{}).name||""},"getSiteName"),getTime:o(t=>t.updateTime||t.createTime,"getTime"),getStatus:o(t=>Qn(t.name),"getStatus"),setStatusFn:Lu,restoreStatusFn:Cu,deleteFn:ku,batchSetStatusFn:Mu,batchDeleteFn:Iu,exportFn:wl,importFn:Sl,updateButtonStateFn:o(()=>Bt(),"updateButtonStateFn"),openSettingsFn:o(()=>uo.open(),"openSettingsFn"),openWebSearchFn:o(()=>rc.open(Ke.getSearchKeyword()),"openWebSearchFn"),getExtraInfo:o(t=>iu(ce(t.name)),"getExtraInfo"),resolveCoverFn:o(t=>{if(!t)return"";const e=Ji(t);if(!e)return Ed(t);return lo(t.name,e.url)||e.url},"resolveCoverFn"),resolveCoverFallbackFn:o(t=>{const e=Ji(t);return e?Ju(t.name,e.attempts):Promise.resolve("")},"resolveCoverFallbackFn"),onCoverFailed:o((t,e)=>{if(!t||!t.name)return;if(e&&!/^blob:/i.test(e)&&Ji(t))return;jl(t.name,navigator.onLine===false);if(navigator.onLine!==false)ql(t.name)},"onCoverFailed"),onCoverLoaded:o(t=>{if(t&&t.name)Hl(t.name)},"onCoverLoaded"),emptyText:"\u6682\u65E0\u6536\u85CF\u5185\u5BB9",templates:wh,getMetaFn:o(t=>hi(t.name),"getMetaFn"),requestMetaFn:o((t,e,n)=>{if(!si()){e(null);return}gl(t,e,n)},"requestMetaFn"),metaStaleFn:o(t=>rl(t.name),"metaStaleFn"),metaEnabledFn:o(()=>true,"metaEnabledFn"),resetRatingQueueFn:o(()=>hl(),"resetRatingQueueFn"),getOriginRectFn:o(()=>At==null?void 0:At.getOriginRect(),"getOriginRectFn"),setFloatPanelFn:o(t=>At==null?void 0:At.setPanelOpen(t),"setFloatPanelFn")}); var fo=Ke.openPanel; var _d=Ke.closePanel; var Zi="vc-global-style"; function po(){if(!document.getElementById(Zi)){const t=document.createElement("style");t.id=Zi;t.textContent=sd;document.head.appendChild(t)}if(!document.head.dataset.vcStyleWatch){document.head.dataset.vcStyleWatch="1";new MutationObserver(()=>{if(!document.getElementById(Zi))po()}).observe(document.head,{childList:true})}} o(po,"injectStyles"); function Eh(){if(!Qu()){wd();tc();return}td(()=>{wd();tc()})} o(Eh,"mountBodyUi"); function kd(){po();$l();Eh();const t=[...oe,...Ln];t.forEach(n=>Uo(n));aa().then(()=>t.forEach(n=>Uo(n)));GM_registerMenuCommand("\u6536\u85CF\u5217\u8868",fo);GM_registerMenuCommand("\u5168\u7F51\u641C\u7D22",()=>rc.open(pe()));GM_registerMenuCommand("\u8BBE\u7F6E",()=>uo.open());let e=location.href;setInterval(()=>{if(location.href!==e){e=location.href;setTimeout(()=>{tc();Bt();Td()},500)}},1e3);document.addEventListener("keydown",n=>{var i,c;if(n.key!=="Escape")return;if(document.querySelector(".vc-settings-mask.vc-show"))return;if(document.querySelector(".vc-ws-mask.vc-show"))return;const r=document.querySelector(".vc-image-preview");if(r==null?void 0:r.classList.contains("vc-show")){Co();return}if((i=nc.getXjumpEl())==null?void 0:i.classList.contains("vc-show")){nc.getXjumpEl().classList.remove("vc-show");return}if((c=Ke.getPanelEl())==null?void 0:c.classList.contains("vc-show"))_d()})} o(kd,"initDrama"); var _h=2e3; var vd=0; var md=false; function hd(t){var n,r;if(Or().video)return;const e=t.target;if((n=e==null?void 0:e.closest)==null?void 0:n.call(e,'a, button, input, textarea, select, [contenteditable="true"], [class*="vc-"]'))return;Dn((r=mt())==null?void 0:r.playerFrameSelector,{force:true})} o(hd,"onPageClick"); function gd(t){if(t===md)return;md=t;if(t)document.addEventListener("click",hd);else document.removeEventListener("click",hd)} o(gd,"bindPageClick"); var Ot=fu(); us(t=>Ot.applyVolume(t)); Ql(()=>Ot.ready()?{time:Ot.time(),ended:false}:null); tu(t=>Ot.seek(t)); nu(()=>Ot.play()); eu(()=>{Qi();Ot.detach()}); var bd=Ou({getVideo:o(()=>Or().video,"getVideo"),step:Jc,volumeStep:Zc,onAction:o(t=>nt(t,{tone:"info"}),"onAction"),remote:{ready:o(()=>Ot.ready(),"ready"),seek:o(t=>Ot.seek(Math.max(0,Ot.time()+t)),"seek"),volume:o(t=>{const e=Number(Ot.volume());const n=Math.min(1,Math.max(0,(Number.isFinite(e)?e:1)+t));Dr(n*100);return n},"volume"),toggle:o(()=>{if(Ot.paused())Ot.play();else Ot.pause()},"toggle")},onNoVideo:o(()=>{var t;if(!Dn((t=mt())==null?void 0:t.playerFrameSelector,{force:true}))return;if(Date.now()-vd<_h)return;vd=Date.now();nt("\u5DF2\u805A\u7126\u64AD\u653E\u5668\uFF0C\u518D\u6309\u4E00\u6B21\u751F\u6548",{tone:"warn"})},"onNoVideo")}); var yd=fs({getVolume:o(()=>Number($t("volume"))/100,"getVolume")}); var qe=null; function xd(t){if(!t)return;const e=pe();if(!e||qe&&qe.name===e)return;if(qe)qe.stop();qe={name:e,stop:ou(t,e)}} o(xd,"ensurePlaybackSession"); function Qi(){if(!qe)return;qe.stop();qe=null} o(Qi,"releasePlaybackSession"); function tc(){const t=mt();if(!t){Qi();return}const e=t.pageType();const n=e==="play"||e==="detail"&&t.trackPlaybackOnDetail;kl(pe());if(typeof t.onPageReady==="function")t.onPageReady();if(e==="detail"){oo();[600,1500,3e3].forEach(r=>setTimeout(oo,r));if(t.isPlayUrl&&!document.body.dataset.vcDramaPlayClickBound){document.body.dataset.vcDramaPlayClickBound="1";document.addEventListener("click",r=>{const i=r.target.closest("a");if(i&&t.isPlayUrl(i.href))oo()})}}if(n){xd(t);bd.enable();yd.start();gd(true);Dn(t.playerFrameSelector);setTimeout(()=>xd(mt()),1500);[600,1500,3e3].forEach(r=>setTimeout(()=>Dn(t.playerFrameSelector),r));Bi(t);[1500,3e3].forEach(r=>setTimeout(()=>Bi(mt()),r));Ot.attach(t);[1500,3e3].forEach(r=>setTimeout(()=>Ot.attach(mt()),r))}else{Qi();bd.disable();yd.stop();Ot.detach();gd(false);Fi()}if(e==="detail"||e==="play"){Sd();[1500,3e3].forEach(r=>setTimeout(Sd,r))}Dh();Nh();[1500,3e3].forEach(r=>setTimeout(()=>{Bt();Td()},r))} o(tc,"enhancePage"); function kh(){return Fo} o(kh,"getPositionKey"); function Th(){const t=mt();const e=t?[t,...oe.filter(r=>r.id!==t.id)]:oe;const n=[];e.forEach(r=>{n.push(`${Fo}_${r.id}`);n.push(`${zc}_${r.id}`)});return n} o(Th,"getLegacyPositionKeys"); function Ah(){if(zi()&&pe())Eu();else fo()} o(Ah,"onPrimaryClick"); function Lh(){var t;if((t=Ke.getPanelEl())==null?void 0:t.classList.contains("vc-show"))_d();else fo()} o(Lh,"togglePanel"); function wd(){At=Uu({positionKeyFn:kh,legacyPositionKeysFn:Th,onWant:wu,onWatched:Su,onOpenPanel:fo,onTogglePanel:Lh,onPrimaryClick:Ah,getPrimaryStateFn:o(()=>Qn(pe()),"getPrimaryStateFn"),getPrimaryIntentFn:_u,isDetailPageFn:zi,updateButtonStateFn:Bt,onVisibilityChange:Fh,onWebSearch:o(()=>rc.open(pe()),"onWebSearch")});At.create()} o(wd,"createFloatButtons"); function Td(){if(At)At.updateVisibility()} o(Td,"updateButtonVisibility"); function Bt(){if(At)At.refreshPrimary();const t=At==null?void 0:At.getWantBtn();const e=At==null?void 0:At.getWatchedBtn();if(!t||!e)return;const n=pe();if(!n){t.classList.remove("vc-active");e.classList.remove("vc-active");return}t.classList.toggle("vc-active",io(n,"want"));e.classList.toggle("vc-active",io(n,"watched"))} o(Bt,"updateButtonState"); function Ch(t){if(!t.siteId)return"";const e=on(t.siteId);if(!e)return"";const n=ke(e);if(!n)return"";return"https://"+n+(t.path||"")} o(Ch,"buildDramaUrl"); function Mh(t,e){const n=on(t.siteId);if(!n||!n.domains||!n.domains.length)return Promise.resolve(e||"");return en(n).then(r=>r?"https://"+r+(t.path||""):e||"")} o(Mh,"resolveDramaUrl"); function Ih(t){const e=Et();const n=new Map;(e.watched||[]).forEach(i=>n.set(Y(i.name),"watched"));(e.want||[]).forEach(i=>n.set(Y(i.name),"want"));const r=new Map;(t||[]).forEach(i=>{const c=n.get(Y(i));if(c)r.set(i,c)});return r} o(Ih,"buildFavIndex"); var Ad=Vu({getSiteFn:mt,buildFavIndexFn:Ih,buildItemFn:o((t,e)=>{const{element:n,name:r,cover:i,path:c}=t;if(!r)return null;return{name:r,cover:Gt(i),path:c,siteId:e.id,createTime:Date.now(),updateTime:Date.now(),element:n}},"buildItemFn"),getIdFn:o(t=>t.name,"getIdFn"),isFavoritedFn:io,toggleFavoriteFn:yu,refreshItemFn:o((t,e,n)=>{if(!t.element||!(e==null?void 0:e.getListCards))return;const r=e.getListCards().find(i=>i.element===t.element);if(!r)return;if(r.cover)t.cover=r.cover},"refreshItemFn"),afterToggleFn:Bt,afterInjectFn:o(t=>{qh(t);Rh(t)},"afterInjectFn")}); var er=[]; var ec=null; function Ph(){ec=null;if(!er.length)return;bi(er.splice(0,er.length))} o(Ph,"flushPendingRatings"); function Oh(){if(ec)return;ec=setTimeout(Ph,800)} o(Oh,"scheduleRatingFlush"); function Rh(t){const e=mt();if(!e||typeof e.getSiteRating!=="function")return;(t||[]).forEach(n=>{const r=n&&n.element;if(!r||!n.name||r.dataset.vcRated===n.name)return;const i=e.getSiteRating(r);if(!i)return;r.dataset.vcRated=n.name;er.push({name:n.name,rating:i})});if(er.length)Oh()} o(Rh,"harvestRatingsFromList"); function Dh(){Nl();Ad.inject()} o(Dh,"injectListFavoriteButtons"); function Nh(){if(document.body.dataset.vcDramaListPreloadBound)return;document.body.dataset.vcDramaListPreloadBound="1";document.addEventListener("click",t=>{const e=t.target;if(!e||!e.closest)return;if(e.closest(".vc-status"))return;const n=mt();if(!n||!n.getListCards)return;const r=n.getListCards()||[];const i=r.find(c=>c.element&&c.element.contains(e));if(!i||!i.name||!i.cover)return;Pe(i.name,i.cover)},true)} o(Nh,"bindListCardClickPreload"); function qh(t){const e=mt();if(!e)return;const n=t||(e.getListCards?e.getListCards():[]);n.forEach(r=>{if(!r||!r.name)return;if(!Fl(r.name))return;const i=$a(r.element);if(!i)return;Rn("[\u5F71\u89C6\u6536\u85CF] \u5217\u8868\u9875\u547D\u4E2D\u5F85\u4FEE\u5C01\u9762\uFF1A",r.name);un(r.name,i,e.id)})} o(qh,"repairCoversFromList"); function Fh(){Ad.refreshAll()} o(Fh,"refreshAllMiniButtons"); function Bh(){return En} o(Bh,"getXjumpPositionKey"); function jh(){if(GM_getValue(En,null))return;const t=mt();if(!t)return;const e=GM_getValue(`${En}_${t.id}`,null);if(e)GM_setValue(En,e)} o(jh,"migrateXjumpPosition"); var nc=Gu({getSiteFn:mt,getKeywordFn:o(()=>{const t=mt();if(!t)return null;const e=t.pageType();let n=null;if(e==="detail"&&t.getDetailInfo)n=(t.getDetailInfo()||{}).name||null;else if(e==="play"&&t.getPlayInfo)n=(t.getPlayInfo()||{}).name||null;if(!n)return null;return ar(n)[1]||n},"getKeywordFn"),getPositionKeyFn:Bh,getAllSitesFn:o(()=>[...oe,...Ln],"getAllSitesFn"),pickDomainFn:ke,findAliveDomainFn:en,siteIdField:"id"}); function Sd(){jh();nc.inject()} o(Sd,"injectCrossSiteJump"); var $h=[1200,3e3,6e3]; var zh=2e4; var Hh=500; function Ld(t){let e=false;let n=null;let r=0;function i(){if(e)return true;let s=false;try{s=!!t()}catch(l){s=false}if(!s)return false;e=true;if(n)n.disconnect();return true}o(i,"boot");function c(){if(e)return;const s=Date.now();if(s-rsetTimeout(i,s));try{n=new MutationObserver(c);n.observe(document.documentElement,{childList:true,subtree:true});setTimeout(()=>{if(n)n.disconnect()},zh)}catch(s){}}o(a,"start");if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",a,{once:true})}else{a()}} o(Ld,"bootWithGateRetry"); var Uh=3e4; var Vh=5e3; var Gh=6e4; var Yh=null; function ae(t){const e=Number(t);return Number.isFinite(e)?e:0} o(ae,"num"); function Kh(t){const e=Array.isArray(t)?t.filter(Boolean):[];if(!e.length)return null;const n=o(c=>(c.videoWidth||0)*(c.videoHeight||0),"area");const r=e.filter(c=>c.currentSrc||(c.readyState||0)>0);const i=r.length?r:e;return i.slice().sort((c,a)=>n(a)-n(c))[0]} o(Kh,"pickBestVideo"); function Cd(){if(window.self===window.top)return;$("[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1Aiframe \u5185\u5DF2\u542F\u52A8\uFF08"+location.hostname+"\uFF09\uFF0C\u5F00\u59CB\u627E video");try{window.parent.postMessage(fe(xt.BOOT,{host:location.hostname,depth:0}),"*")}catch(b){}let t="";let e=null;let n=null;let r=null;let i=null;let c=0;let a=false;let s=null;const l=[];const p=o(b=>{try{window.parent.postMessage(b,"*")}catch(C){}},"post");const f=o(()=>!!e&&e.isConnected,"alive");function E(b){if(!b)return null;for(const C of document.querySelectorAll("iframe")){if(C.contentWindow===b)return C}return null}o(E,"childFrameOf");function y(b){if(s){try{s.postMessage(b,"*");return}catch(C){}}for(const C of document.querySelectorAll("iframe")){try{if(C.contentWindow)C.contentWindow.postMessage(b,"*")}catch(F){}}}o(y,"relayDown");function k(){if(!f()||!t)return;c=Date.now();p(fe(xt.STATE,{nonce:t,depth:0,time:ae(e.currentTime),dur:ae(e.duration),paused:!!e.paused,vol:ae(e.volume),muted:!!e.muted}))}o(k,"report");function x(){if(!f())return;p(fe(xt.READY,{depth:0,dur:ae(e.duration),w:ae(e.videoWidth),h:ae(e.videoHeight),src:String(e.currentSrc||"")}))}o(x,"announce");function _(){if(!f())return;e.addEventListener("timeupdate",()=>{if(Date.now()-c{e.addEventListener(b,k)});e.addEventListener("loadedmetadata",()=>{D();k()})}o(_,"bindVideo");function g(b){if(!f())return;if(b.op===ne.VOLUME){ze(e,b.v,{unmute:true});return}if(b.op===ne.SEEK){if(!e||e.readyState<1){d();if(e&&e.readyState>=1){try{e.currentTime=Math.max(0,ae(b.to))}catch(C){}return}l.length=0;l.push(b);S();return}try{e.currentTime=Math.max(0,ae(b.to))}catch(C){}return}if(b.op===ne.PLAY){Promise.resolve(e.play()).catch(()=>{});return}if(b.op===ne.PAUSE){e.pause();return}if(b.op===ne.STATE)k()}o(g,"runCmd");function D(){if(!f())return;while(l.length)g(l.shift())}o(D,"flushPending");function h(){if(n){n.disconnect();n=null}if(r){clearTimeout(r);r=null}if(i){clearInterval(i);i=null}l.length=0}o(h,"stopWait");window.addEventListener("message",b=>{const C=to(b.data);if(!C)return;if(b.source!==window.parent){if(!E(b.source))return;if(C.t===xt.BOOT||C.t===xt.READY||C.t===xt.STATE){if(s!==b.source){s=b.source;$("[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1A\u64AD\u653E\u5668\u5728\u66F4\u5185\u5C42\uFF0C\u672C\u5C42\u6539\u4E3A\u4E2D\u7EE7\uFF08"+location.hostname+"\uFF09")}p(fe(C.t,Object.assign({},C,{depth:(Number(C.depth)||0)+1})))}return}if(C.t===xt.HELLO){t=String(C.nonce||"");if(!a){a=true;$("[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1A\u5DF2\u88AB\u7236\u9875\u9762\u8BA4\u9886\uFF08"+location.hostname+"\uFF09\uFF0C\u5F00\u59CB\u4E0A\u62A5\u72B6\u6001")}if(!f()){y(fe(xt.HELLO,{nonce:t}));return}k();return}if(C.t===xt.CMD){if(!t||C.nonce!==t)return;if(!f()){y(fe(xt.CMD,C));return}g(C)}});let A=null;let R=0;const P=1e3;function L(){const b=[...document.querySelectorAll("video")];if(b.length){A=null;return b}const C=A?A.filter(F=>F.isConnected):[];if(C.length)return C;if(Date.now()F.tagName==="VIDEO");if(!A.length)R=Date.now()+P;return A}o(L,"findVideoList");function d(){const b=Kh(L());if(!b)return false;if(b===e&&f())return true;e=b;_();x();$("[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1A\u9501\u5B9A\u64AD\u653E\u5668 video\uFF08"+ae(b.videoWidth)+"x"+ae(b.videoHeight)+"\uFF0C\u65F6\u957F "+Math.round(ae(b.duration))+" \u79D2\uFF09");return true}o(d,"tryFind");function S(){if(i)return;const b=Date.now();i=setInterval(()=>{if(!l.length||Date.now()-b>Gh){l.length=0;clearInterval(i);i=null;return}d();if(e&&e.readyState>=1){clearInterval(i);i=null;D();k()}},500)}o(S,"ensureFlushLoop");if(!d()){const b=document.querySelectorAll("iframe").length;$("[\u5F71\u89C6\u6536\u85CF] \u6865\u63A5\uFF1A\u672C\u5C42\u8FD8\u6CA1\u6709 video"+(b?"\uFF0C\u4F46\u91CC\u9762\u6709 "+b+" \u4E2A iframe \u2014\u2014 \u53EF\u80FD\u662F\u5D4C\u5957\u64AD\u653E\u5668\uFF0C\u5355\u5C42\u6865\u63A5\u8986\u76D6\u4E0D\u5230":""))}n=new MutationObserver(()=>{d()});n.observe(document.documentElement||document,{childList:true,subtree:true});r=setTimeout(h,Uh);Yh={stop:h,snapshot:o(()=>({observer:!!n,wait:!!r,flush:!!i,pending:l.length}),"snapshot")}} o(Cd,"startBridge"); var Wh=window.self!==window.top; if(Wh){Cd()} else{qr();Ae();Ld(()=>{Ja();if(!mt())return false;kd();return true});if(GM_getValue(ge,true)===false&&Sr({ignoreEngineSwitch:true})){GM_registerMenuCommand("\u8BBE\u7F6E",()=>{po();uo.open()})}} })();