PageSourceSearch

https://baipiaozhe.ai/assets/react-player-frame-DOxunU6n.js

js baipiaozhe.ai collected 2026-10-05 14:06:46 UTC 164,006 bytes, 26 lines download raw bytes

1import{r as x,j as ve,a as ti}from"./react-vendor-P5XnYvWb.js";import{b as ni,s as $t,e as ri}from"./player-page-header-XlmURt7f.js";import{K as oi,r as ii,O as le,o as si,s as fr}from"./movie-card-runtime-BsWugIRi.js";import{y as Qr,p as Fe,P as ot,A as ai,B as ci,C as It,D as Jr,E as li,F as di,G as Mt,H as Zr,I as eo,J as ui,K as fi,L as mi,M as mr,N as mt,O as yi,Q as yr,R as Mn,S as pi,T as vi,U as _i,V as bi,W as pr,X as hi,Y as pn,Z as gi,_ as ki,$ as vr,a0 as wi,j as xn,a1 as Si,a2 as Ei,w as Pi,a3 as Li,a4 as Mi,a5 as xi,a6 as Ti,a7 as Ii}from"./native-download-media-type-CNplQ1i9.js";import{s as Ri,i as Ai,a as Ni,e as Tn,p as Vn,b as Fi,R as Ci,c as Di,d as Pt,f as Oi}from"./global-player-host-C_hz9exs.js";import{l as Wi,a as Vi,b as Hi,n as qi,s as Bi,c as $i,d as Hn,r as Ki,t as zt,P as _r,e as ji,R as zi,i as vn,f as Ui,g as Gi,h as br}from"./player-token-quota-state-Bh8adPHd.js";import{f as Yi,s as _n,g as Xi}from"./native-download-state-CK7wZG4g.js";import{c as Qi,p as Ji,a as Zi,w as ct,o as hr}from"./web-prewarm-buffer-priority-D8yNacFr.js";import{u as In}from"./playback-client-runtime-Cwx4nSwi.js";import{a as es,b as ts}from"./feedback-panel-tYxiLPwY.js";import{q as ns}from"./icons-C3gyKvVD.js";import{c as gr}from"./assistant-ui-primitives-Bn9nn9-n.js";import{_ as rs}from"./vite-runtime-mxn4OsD4.js";import{c as os}from"./comment-panel-BqfcXEe5.js";import{a6 as xt}from"./main-CtyeVlnq.js";import{Hls as lt}from"./hls-aCX8Obp0.js";import"./PlaylistActionSlot-CGve8RB-.js";import"./local-movie-library-CjOGUmLj.js";import"./library-owner-scope-BKVKiF-_.js";import"./library-sync-shared-outbox-D4igz3zk.js";import"./native-environment-ChodKNAD.js";import"./library-sync-B7ghRSvm.js";import"./playback-resume-store-DM7tJaWt.js";import"./library-sync-events-DlVL0kGk.js";import"./player-episode-pagination-DI8VSyOE.js";import"./overlay-portal-Be0vfSM5.js";import"./lazy-image-Cjskc6Tx.js";import"./viewport-observer-pool-BrAlgUCR.js";import"./UserLevelIcon-Bzi_E5eC.js";import"./loading-dots-BaueO3jq.js";import"./browser-qr-scanner-z4CL5RC5.js";import"./player-keyboard-shortcut-policy-DENG4Bdk.js";import"./navigation-runtime-Dw-8DVQD.js";import"./library-status-CIsSTVyL.js";import"./player-detail-request-context-BLstN2p4.js";import"./guest-access-store-Hbdjrrgl.js";import"./quota-guidance-Dq0Fpbvy.js";import"./share-link-BkclFdqY.js";import"./radix-ui-BXT0dNmF.js";import"./PlaylistPickerDialog-BUF5Enjm.js";import"./useCollectionViewport-CqEKC_dM.js";/* empty css                  */import"./use-modal-history-dismiss-DgaUApWa.js";import"./user-avatar-BDwbhArf.js";function is(e){const{video:t}=e,n=e.resolvePosition?ss(t):void 0;let r=e.position,o=!1;const i=()=>{var a,f;if(!(o||(a=e.signal)!=null&&a.aborted||!e.isCurrent())){if(o=!0,r=((f=e.resolvePosition)==null?void 0:f.call(e,{position:e.position,durationSeconds:t.duration}))??r,r!==void 0)try{t.currentTime=r}catch{}n==null||n.setTarget(r??0)}},s=()=>t.removeEventListener("loadedmetadata",i);return t.addEventListener("loadedmetadata",i),{resolve:i,position:()=>r,stopObservingMetadata:s,dispose(){s(),n==null||n.dispose()}}}function ss(e){const t=e.style.visibility;e.style.visibility="hidden";let n,r,o,i=!1;const s=()=>{var f;i||(i=!0,r!==void 0&&((f=e.cancelVideoFrameCallback)==null||f.call(e,r)),o!==void 0&&clearTimeout(o),e.removeEventListener("error",s),e.removeEventListener("seeked",a),e.removeEventListener("canplay",a),e.style.visibility=t)},a=()=>{n===void 0||e.seeking||e.readyState<2||typeof e.requestVideoFrameCallback!="function"&&s()};if(typeof e.requestVideoFrameCallback=="function"){const f=(u,d)=>{i||(n!==void 0&&d.mediaTime>=n-.25?s():r=e.requestVideoFrameCallback(f))};r=e.requestVideoFrameCallback(f)}return e.addEventListener("error",s),e.addEventListener("seeked",a),e.addEventListener("canplay",a),{setTarget(f){n=f,a(),!i&&o===void 0&&(o=setTimeout(s,1200))},dispose:s}}const as=300,cs={setTimeout:(e,t)=>window.setTimeout(e,t),clearTimeout:e=>window.clearTimeout(e)},kr=["video:waiting","video:seeking"],wr=["video:playing","video:canplay","video:timeupdate","video:seeked","video:pause","video:ended","video:error"],Sr=["video:loadstart","video:emptied"];function ls(e,t={}){var c,l,y,b;const n=t.scheduler??cs,r=Math.max(0,t.delayMs??as);let o,i=!1,s=!1;const a=()=>{o!==void 0&&(n.clearTimeout(o),o=void 0)},f=()=>{if(s){e.loading&&(e.loading.show=!0);return}e.loading&&(e.loading.show=!1)},u=()=>{if(a(),s){e.loading&&(e.loading.show=!0);return}f(),o=n.setTimeout(()=>{o=void 0,!i&&e.loading&&(e.loading.show=!0)},r)},d=()=>{a(),f()},g=()=>{a()},k=()=>{var p,h,T,S;if(!i){i=!0,a();for(const A of kr)(p=e.off)==null||p.call(e,A,u);for(const A of wr)(h=e.off)==null||h.call(e,A,d);for(const A of Sr)(T=e.off)==null||T.call(e,A,g);(S=e.off)==null||S.call(e,"destroy",k)}},E=()=>{i||(s=!0,a(),e.loading&&(e.loading.show=!0))},m=(p={})=>{s=!1,a(),p.hide!==!1&&e.loading&&(e.loading.show=!1)};for(const p of kr)(c=e.on)==null||c.call(e,p,u);for(const p of wr)(l=e.on)==null||l.call(e,p,d);for(const p of Sr)(y=e.on)==null||y.call(e,p,g);return(b=e.on)==null||b.call(e,"destroy",k),{pin:E,release:m,destroy:k}}const to=1,ds=1200;async function us(e){const t=no(e.position);if(t===void 0||(Er(e.signal),Math.abs(e.video.currentTime-t)<=.25)||Rn(e.video,t)||e.video.readyState>=to)return;const n=await ms(e.video,e.signal,e.metadataTimeoutMs??ds);Er(e.signal),n&&Rn(e.video,t)}function fs(e){return e.pause(),Rn(e,0)}function no(e){const t=Number(e);if(Number.isFinite(t))return Math.max(0,Math.floor(t))}
1function ms(e,t,n){return e.readyState>=to?Promise.resolve(!0):new Promise((r,o)=>{let i;const s=()=>{i!==void 0&&globalThis.clearTimeout(i),e.removeEventListener("loadedmetadata",a),e.removeEventListener("error",f),t==null||t.removeEventListener("abort",u)},a=()=>{s(),r(!0)},f=()=>{s(),r(!1)},u=()=>{s(),o(new DOMException("播放操作已取消","AbortError"))};e.addEventListener("loadedmetadata",a,{once:!0}),e.addEventListener("error",f,{once:!0}),t==null||t.addEventListener("abort",u,{once:!0}),i=globalThis.setTimeout(()=>{s(),r(!1)},Math.max(1,Math.round(n)))})}function Rn(e,t){try{return e.currentTime=t,!0}catch{return!1}}function Er(e){if(e!=null&&e.aborted)throw new DOMException("播放操作已取消","AbortError")}const ys=15e3,ps=1500;class ro extends Error{constructor(t,n){super(t),this.mediaCode=n,this.name="NativeMediaSwitchError"}mediaCode}async function vs(e){hs(e.signal);const t=Math.max(1,Math.round(e.timeoutMs??ys)),n=Math.max(1,Math.round(e.errorConfirmMs??ps));await new Promise((r,o)=>{var E;let i=!1,s;const a=()=>{var m;globalThis.clearTimeout(k),s!==void 0&&globalThis.clearTimeout(s),e.video.removeEventListener("canplay",u),e.video.removeEventListener("error",d),(m=e.signal)==null||m.removeEventListener("abort",g)},f=m=>{i||(i=!0,a(),m===void 0?r():o(m))},u=()=>f(),d=()=>{const m=e.video.error,c=new ro((m==null?void 0:m.message)||"媒体源加载失败",m==null?void 0:m.code);s!==void 0&&globalThis.clearTimeout(s),s=globalThis.setTimeout(()=>{s=void 0,e.video.readyState>=3?f():f(c)},n)},g=()=>f(oo());e.video.addEventListener("canplay",u),e.video.addEventListener("error",d),(E=e.signal)==null||E.addEventListener("abort",g,{once:!0});const k=globalThis.setTimeout(()=>f(gs(t)),t);try{if(_s(e.video,e.url)||!e.switchUrl){bs(e.video,e.url);return}e.switchUrl(e.url).catch(()=>{})}catch(m){f(m)}})}function _s(e,t){const n=Pr(t);return[e.currentSrc,e.src].filter(Boolean).some(r=>Pr(r)===n)}function bs(e,t){e.pause(),e.removeAttribute("src"),e.load(),e.src=t,e.load()}function Pr(e){try{const t=typeof window>"u"?"http://localhost/":window.location.href;return new URL(e,t).href}catch{return e.trim()}}function hs(e){if(e!=null&&e.aborted)throw oo()}function oo(){return new DOMException("播放操作已取消","AbortError")}function gs(e){const t=new Error(`媒体源加载超时(${e}ms)`);return t.name="TimeoutError",t}function io(e){var y,b;const{hls:t}=e,n=t.constructor.Events;let r=!1,o=e.allowed!==!1,i=!1,s=!1,a=!1,f=!1,u=e.position??0,d;const g=new Promise(p=>{d=p}),k=()=>{var p,h;return!f&&!((p=e.signal)!=null&&p.aborted)&&((h=e.isCurrent)==null?void 0:h.call(e))!==!1},E=()=>{f=!0,m(!1)},m=p=>{var h;(h=e.signal)==null||h.removeEventListener("abort",E),d(p)},c=p=>{var h;s||!k()||(s=!0,u=e.resolvePosition({position:e.position,durationSeconds:p.live?0:p.totalduration})??u,(h=e.onPosition)==null||h.call(e,u))},l=()=>{!r||!o||i||!k()||(i=!0,t.startLoad(u),s&&!a&&(a=!0,t.attachMedia(e.video)))};return t.on(n.MANIFEST_PARSED,(p,h)=>{var S;r=!0;const T=h.levels.length===1?(S=h.levels[0])==null?void 0:S.details:void 0;T&&c(T),l()}),t.on(n.MEDIA_ATTACHED,()=>{k()&&m(!0)}),t.on(n.LEVEL_LOADED,(p,h)=>{s||!k()||(c(h.details),t.stopLoad(),i=!1,l())}),t.on(n.DESTROYING,E),t.on(n.ERROR,(p,h)=>{h.fatal&&E()}),(y=e.signal)==null||y.addEventListener("abort",E,{once:!0}),(b=e.signal)!=null&&b.aborted&&E(),{ready:g,setAllowed(p){o=p,p?l():(t.stopLoad(),i=!1)}}}async function Lr(e={}){const t=await Wi({loadHls:e.loadHls}),n=t.Artplayer??Vi(),r=t.Hls??Hi();if(!Es(n))throw new Error("ArtPlayer runtime is not available");return{art:n,hls:Ps(r)?r:void 0}}async function ks(e,t,n){if(!Fe(e))return e;if(!t)throw new Error("当前线路需要解析");return t(e,n)}function ws(e){var s,a,f,u,d,g;const t=no(e.startPosition),n=((a=(s=e.events)==null?void 0:s.shouldResolveStartPosition)==null?void 0:a.call(s))===!1||(f=e.events)==null?void 0:f.resolveStartPosition,r=e.runtime.hls;if(!qn(e.line,e.runtime)||!((u=r==null?void 0:r.isSupported)!=null&&u.call(r)))return e.video.src=e.url,null;const o=Qi({Hls:r,media:e.video,config:{startFragPrefetch:!1,autoStartLoad:!n,lowLatencyMode:!1,capLevelToPlayerSize:!0,...t===void 0?{}:{startPosition:t},manifestLoadPolicy:bn(8e3,12e3),playlistLoadPolicy:bn(8e3,12e3),fragLoadPolicy:Ji(),keyLoadPolicy:bn(8e3,12e3)}});if(n){const k=io({hls:o,video:e.video,signal:e.signal,position:t,resolvePosition:n,isCurrent:()=>{var E,m;return!((E=e.signal)!=null&&E.aborted)&&((m=e.isCurrent)==null?void 0:m.call(e))!==!1}});o.startupReady=k.ready}const i=(d=r.Events)==null?void 0:d.ERROR;return i&&((g=o.on)==null||g.call(o,i,(k,E)=>{var c,l,y;if((c=e.signal)!=null&&c.aborted||e.isCurrent&&!e.isCurrent())return;const m=qi(Ls(E));m.fatal&&((y=(l=e.events)==null?void 0:l.onHlsFatalError)==null||y.call(l,{line:e.line,payload:m,canRecoverMedia:typeof o.recoverMediaError=="function"}))})),o.loadSource(e.url),n||o.attachMedia(e.video),o}function Mr(e,t){var o;const n=(o=e.template)==null?void 0:o.$loading;if(!(n instanceof HTMLElement))return;
1const r=n.querySelector(".react-player-art-loading-copy");r&&(r.textContent=t)}function Ss(e){e&&(e.pause(),e.removeAttribute("src"),e.load())}function xr(e){e.preload="metadata",e.setAttribute("referrerpolicy","no-referrer"),e.playsInline=!0}function Jt(e,t){var n;if(typeof((n=e.notice)==null?void 0:n.show)=="function"){e.notice.show(t);return}e.notice&&(e.notice.show=t)}function qe(e){if(e!=null&&e.aborted)throw new DOMException("播放操作已取消","AbortError")}function Et(e){return e.video instanceof HTMLVideoElement?e.video:void 0}function Tr(e){return Qr(e)}function qn(e,t){var n,r;return Qr(e)&&!!((r=(n=t.hls)==null?void 0:n.isSupported)!=null&&r.call(n))}async function Ir(e,t){try{return await Bi(e,{signal:t})}catch(n){if(n instanceof Error&&n.name==="AbortError")throw n;const r=n instanceof Error?n.name:"UnknownError",o=n instanceof Error?n.message:String(n);return console.warn(`[ai-movie:video-play] ${r}: ${o}`),"failed"}}function bn(e,t){return{default:{maxTimeToFirstByteMs:e,maxLoadTimeMs:t,timeoutRetry:null,errorRetry:null}}}function Es(e){return typeof e=="function"}function Ps(e){return typeof e=="function"}function Ls(e){return!e||typeof e!="object"?{}:e}const hn="movie-player-fullscreen-choice-v1";function so(e=()=>window.localStorage){return{read(){var t;try{const n=(t=e())==null?void 0:t.getItem(hn);return n==="web"||n==="native"?n:void 0}catch{return}},write(t){var n,r;try{t?(n=e())==null||n.setItem(hn,t):(r=e())==null||r.removeItem(hn)}catch{}}}}function Ms(e,t,n){return t?"web":e==="web"||e==="native"&&n?e:"choose"}function xs(e,t){var o;let n=so().read();const r=()=>n==="web"?"网页全屏":n==="native"?"系统播放器":"每次询问";return(o=e==null?void 0:e.add)==null||o.call(e,{name:"ios-fullscreen-choice",html:"全屏方式与教程",tooltip:r(),mounted(i,s){s.icon=this.icons.fullscreenWebOn},onClick:()=>(e&&(e.show=!1),t(),r())}),{select(i){var a;n=i;const s=(a=e==null?void 0:e.find)==null?void 0:a.call(e,"ios-fullscreen-choice");s&&(s.tooltip=r())},destroy(){var i;(i=e==null?void 0:e.remove)==null||i.call(e,"ios-fullscreen-choice")}}}
1const Kt=new WeakMap;function Ts(e,t){return Kt.set(e,t),()=>{Kt.get(e)===t&&Kt.delete(e)}}function Ut(e,t=!1){const n=e&&Kt.get(e);return n!=null&&n.available()?(n.open(t),!0):!1}function Is(e){return()=>{}}function Rs(e){var i,s;const t=Is(),n=(i=e.template)==null?void 0:i.$player;let r=e.fullscreenWeb===!0;const o=a=>{const f=a===!0;!n||r===f||(r=f,n.dataset.webFullscreenMotion=f?"enter":"exit")};return(s=e.on)==null||s.call(e,"fullscreenWeb",o),()=>{var a;t(),(a=e.off)==null||a.call(e,"fullscreenWeb",o),n&&delete n.dataset.webFullscreenMotion}}function As(e){const t=window.matchMedia("(orientation: portrait)"),n=document.createElement("div");n.className="react-player-ios-orientation-hint",n.hidden=!0,n.setAttribute("role","status"),n.innerHTML='<span>请横放设备;如果没有旋转,请关闭控制中心的竖排方向锁定。</span><button type="button" aria-label="关闭横屏提示">×</button>';let r=!1,o=!1;const i=()=>{r=!0,n.hidden=!0},s=n.querySelector("button");s.addEventListener("click",i);const a=()=>{const f=e.enabled()&&e.isWebFullscreen();f||(r=!1),!t.matches&&o&&(r=!0),o=f,n.hidden=!f||!t.matches||r};return t.addEventListener?t.addEventListener("change",a):t.addListener(a),document.body.appendChild(n),a(),{sync:a,destroy(){t.removeEventListener?t.removeEventListener("change",a):t.removeListener(a),s.removeEventListener("click",i),n.remove()}}}const Ns=720;function Fs(e){var i,s;const t=(i=e.template)==null?void 0:i.$player;if(!(t instanceof HTMLElement))return()=>{};const n=t.querySelector(".art-controls");if(!n)return()=>{};const r=()=>{const f=n.clientWidth<Ns?"compact":"comfortable";t.dataset.controlsSpace!==f&&(t.dataset.controlsSpace=f)},o=typeof ResizeObserver=="function"?new ResizeObserver(r):void 0;return o==null||o.observe(n),o||window.addEventListener("resize",r),(s=e.on)==null||s.call(e,"resize",r),r(),()=>{var a;o==null||o.disconnect(),o||window.removeEventListener("resize",r),(a=e.off)==null||a.call(e,"resize",r),delete t.dataset.controlsSpace}}const Bn=e=>`<svg viewBox="0 0 180 76" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2">${e}</svg>`,Cs=Bn('<rect x="29" y="11" width="122" height="54" rx="9"/><path d="m82 29 18 10-18 10zM43 24h22m8 0h29m8 0h22M43 55h79"/><path d="M135 46v10h-10"/>'),Ds=Bn('<rect x="64" y="5" width="52" height="66" rx="9"/><rect x="76" y="37" width="28" height="22" rx="5"/><path d="M90 8v25m-8-17 8-8 8 8M77 65h26"/>'),Os=Bn('<rect x="24" y="7" width="132" height="62" rx="8"/><circle cx="43" cy="28" r="5"/><path d="m40 28 2 2 4-4M58 28h76M58 49h58"/><circle cx="43" cy="49" r="5"/>');function Ws(){return`<div class="react-player-ios-guide" hidden>
2    <button type="button" data-action="guide-back">‹ 返回全屏选项</button>
3    <h3>iPhone / iPad 网页观看指南</h3>
4    <article>${Cs}<div><strong>① 横屏看弹幕</strong><p>选择“网页全屏”,再横放设备。若画面不旋转,请在控制中心关闭竖排方向锁定。轻点画面可显示播放按钮。</p></div></article>
5    <article>${Ds}<div><strong>② 添加到主屏幕</strong><p>用 Safari 打开本站,点“分享”,选择“添加到主屏幕”。如出现“作为网页 App 打开”,将它开启,再点“添加”。以后从主屏幕图标进入。</p><p>按钮位置因系统版本而异;添加操作需要你在 Safari 菜单中完成。</p></div></article>
6    <article>${Os}<div><strong>③ 随时更换全屏方式</strong><p>全屏选项里勾选“记住我的选择”,下次直接进入。在播放器齿轮设置中打开“全屏方式与教程”即可更改;取消勾选后再选择,恢复每次询问。</p><p>网页全屏保留弹幕;系统播放器全屏不显示网页弹幕。</p></div></article>
7    <p class="react-player-ios-guide-note">以上为操作示意图。</p>
8  </div>`}function Vs(e){const t=so(),n=document.createElement("div");n.className="react-player-fullscreen-chooser",n.hidden=!0,n.innerHTML=`
9    <section class="react-player-fullscreen-chooser-panel" role="dialog" aria-modal="true" aria-label="选择全屏方式">
10      <div class="react-player-fullscreen-chooser-heading"><strong>选择全屏方式</strong><button type="button" data-action="close" aria-label="关闭全屏选项">×</button></div>
11      <div class="react-player-fullscreen-choices">
12      <button type="button" data-action="web"><strong></strong><span>可看弹幕;添加到主屏幕,体验更佳</span></button>
13      <button type="button" data-action="native"><strong>原生全屏(系统播放器)</strong><span>使用 iOS 系统播放器,不显示网页弹幕</span></button>
14      <label class="react-player-fullscreen-remember"><input type="checkbox" checked />记住我的选择</label>
15      <p class="react-player-fullscreen-chooser-hint" role="status"></p>
16      <button type="button" data-action="guide" class="react-player-fullscreen-guide-link">iOS 网页观看图文教程 ›</button>
17      </div>${Ws()}
18    </section>`;const r=n.querySelector('[data-action="web"]'),o=n.querySelector('[data-action="native"]');n.querySelector('[data-action="close"]');const i=n.querySelector(".react-player-fullscreen-chooser-hint"),s=n.querySelector(".react-player-fullscreen-choices"),a=n.querySelector(".react-player-ios-guide"),f=n.querySelector("input");let u=null,d=!1;const g=(c=!0)=>{n.hidden=!0,c&&(u!=null&&u.isConnected)&&u.focus({preventScroll:!0}),u=null},k=()=>{r.querySelector("strong").textContent=e.isWebFullscreen()?"退出网页全屏":"网页全屏(可看弹幕)";const c=e.nativeReadiness();o.disabled=c!=="ready",i.textContent=c==="ready"?"":c==="unsupported"?"当前环境不支持系统播放器全屏":c==="request_in_progress"?"正在打开系统播放器":c==="already_fullscreen"?"系统播放器已在全屏":"视频加载完成后可选择系统播放器"},E=c=>{var b,p,h,T;c.stopPropagation();const l=c.target instanceof Element?c.target:null,y=(b=l==null?void 0:l.closest("[data-action]"))==null?void 0:b.dataset.action;if(y==="web")f.checked?e.isWebFullscreen()||t.write("web"):t.write(void 0),g(),(p=e.onChoice)==null||p.call(e,"web"),e.onWeb();else if(y==="native"&&e.nativeReadiness()==="ready")t.write(f.checked?"native":void 0),g(),(h=e.onChoice)==null||h.call(e,"native"),e.onNative();else if(y==="guide"||y==="guide-back"){const S=y==="guide";a.hidden=!S,s.hidden=S,(T=S?a.querySelector("button"):r)==null||T.focus()}else(y==="close"||l===n)&&g()},m=c=>{var b;if(c.stopPropagation(),c.key==="Escape"&&(c.preventDefault(),g()),c.key!=="Tab")return;const l=Array.from(n.querySelectorAll("button:not(:disabled), input")).filter(p=>!p.closest("[hidden]")),y=l.indexOf(document.activeElement);c.preventDefault(),(b=l[(y+(c.shiftKey?-1:1)+l.length)%l.length])==null||b.focus()};return n.addEventListener("click",E),n.addEventListener("keydown",m),document.body.appendChild(n),{open(c=!1){var b,p;if(d)return;const l=Ms(t.read(),e.isWebFullscreen(),e.nativeReadiness()==="ready");if(!c&&l!=="choose"){(b=e.onChoice)==null||b.call(e,l),l==="web"?e.onWeb():e.onNative();return}const y=(p=e.player.closest("[data-theme]"))==null?void 0:p.getAttribute("data-theme");y?n.setAttribute("data-theme",y):n.removeAttribute("data-theme"),s.hidden=!1,a.hidden=!0,f.checked=!0,u=document.activeElement instanceof HTMLElement?document.activeElement:null,k(),n.hidden=!1,r.focus({preventScroll:!0})},refresh:k,close:g,destroy(){d=!0,g(!1),n.removeEventListener("click",E),n.removeEventListener("keydown",m),n.remove()}}}function Hs(e,t=()=>!1){var f,u;const n=(f=e.template)==null?void 0:f.$player,r=n==null?void 0:n.querySelector(".art-control-fullscreenWeb");if(!r)return()=>{};const o=r.style.display,i=()=>{const d=!t()&&Ri(e.fullscreenWeb===!0)?o:"none";r.style.display!==d&&(r.style.display=d)};i();const a=[window.matchMedia("(min-width: 600px)"),window.matchMedia("(hover: none) and (pointer: coarse), (max-width: 767px)")].map(d=>typeof d.addEventListener=="function"?(d.addEventListener("change",i),()=>d.removeEventListener("change",i)):(d.addListener(i),()=>d.removeListener(i)));return(u=e.on)==null||u.call(e,"fullscreenWeb",i),()=>{var d;for(const g of a)g();(d=e.off)==null||d.call(e,"fullscreenWeb",i),r.style.display=o}}function qs(e,t){var i,s,a;if(!t)return()=>{};const n=(i=e.template)==null?void 0:i.$player;let r;const o=f=>{var d;const u=n!=null&&n.classList?n.classList.contains("art-control-show")||n.classList.contains("art-hover"):typeof f=="boolean"?f:((d=e.controls)==null?void 0:d.show)!==!1;u!==r&&(r=u,t(u))};return(s=e.on)==null||s.call(e,"control",o),(a=e.on)==null||a.call(e,"hover",o),o(),()=>{var f,u;(f=e.off)==null||f.call(e,"control",o),(u=e.off)==null||u.call(e,"hover",o)}}function Bs(e){return e.documentFullscreenAvailable?"document":e.hasWebkitEnterFullscreen&&e.webkitSupportsFullscreen?"native_video":"web"}function $s(e){return e.standardExitAvailable?e.standardEnabled:e.webkitExitAvailable?e.webkitEnabled:e.legacyWebkitExitAvailable?e.legacyWebkitRequestAvailable:e.mozExitAvailable?e.mozEnabled:e.msExitAvailable?e.msEnabled:!1}function Ks(e){return e.phase==="requesting"?"request_in_progress":e.phase==="active"||e.displayingFullscreen?"already_fullscreen":e.hasSource?e.readyState<1?"metadata_pending":e.supportsFullscreen?"ready":"unsupported":"source_missing"}function js(e,t){switch(t){case"request_started":return e==="idle"?"requesting":e;case"fullscreen_started":return"active";case"source_reset":case"request_failed":case"fullscreen_ended":return"idle"}}function zs(e,t){var J;const n=((J=e.template)==null?void 0:J.$player)instanceof HTMLElement?e.template.$player:void 0,r=e.video;let o=!1,i="idle",s=0,a;const f=[document.documentElement,n==null?void 0:n.closest(".global-player-host"),n==null?void 0:n.closest(".movie-player-experience"),n==null?void 0:n.closest(".react-player
18-frame")].filter(w=>!!w),u=w=>{for(const N of f)N.classList.toggle("is-artplayer-web-fullscreen",w)},d=w=>{e.fullscreenWeb=w,u(w)},g=()=>n==null?void 0:n.querySelector(".art-control-fullscreen"),k=()=>{const w=document,N=n;return Bs({documentFullscreenAvailable:$s({standardExitAvailable:typeof w.exitFullscreen=="function",standardEnabled:w.fullscreenEnabled===!0,webkitExitAvailable:typeof w.webkitExitFullscreen=="function",webkitEnabled:w.webkitFullscreenEnabled===!0,legacyWebkitExitAvailable:typeof w.webkitCancelFullScreen=="function",legacyWebkitRequestAvailable:typeof(N==null?void 0:N.webkitRequestFullScreen)=="function",mozExitAvailable:typeof w.mozCancelFullScreen=="function",mozEnabled:w.mozFullScreenEnabled===!0,msExitAvailable:typeof w.msExitFullscreen=="function",msEnabled:w.msFullscreenEnabled===!0}),hasWebkitEnterFullscreen:typeof(r==null?void 0:r.webkitEnterFullscreen)=="function",webkitSupportsFullscreen:(r==null?void 0:r.webkitSupportsFullscreen)===!0})},E=()=>{var w;return Ai()&&!xt().hasBridge&&((w=t.shouldInterceptFullscreen)==null?void 0:w.call(t))!==!0},m=()=>k()==="native_video",c=()=>k()==="web",l=()=>{a!==void 0&&(window.clearTimeout(a),a=void 0)},y=()=>Ks({phase:i,hasSource:!!(r!=null&&r.currentSrc||r!=null&&r.src),readyState:(r==null?void 0:r.readyState)??0,supportsFullscreen:(r==null?void 0:r.webkitSupportsFullscreen)===!0,displayingFullscreen:(r==null?void 0:r.webkitDisplayingFullscreen)===!0}),b=()=>{const w=g();if(!w)return;if(S==null||S.refresh(),E()||!m()){w.removeAttribute("aria-busy"),w.removeAttribute("aria-disabled"),delete w.dataset.fullscreenReadiness;return}const N=y();w.dataset.fullscreenReadiness=N,w.setAttribute("aria-disabled",N==="ready"?"false":"true"),N==="request_in_progress"?w.setAttribute("aria-busy","true"):w.removeAttribute("aria-busy")},p=w=>{i=js(i,w),(w==="source_reset"||w==="request_failed"||w==="fullscreen_ended"||w==="fullscreen_started")&&l(),(w==="source_reset"||w==="request_failed"||w==="fullscreen_ended")&&(s+=1),b(),_==null||_.sync()},h=()=>{var N;if(!r)return;const w=s+1;s=w,p("request_started"),l(),a=window.setTimeout(()=>{if(a=void 0,w===s){if(r.webkitDisplayingFullscreen===!0){p("fullscreen_started");return}p("request_failed"),d(!0)}},2e3);try{(N=r.webkitEnterFullscreen)==null||N.call(r)}catch{p("request_failed"),d(!0)}};let T;const S=n?Vs({player:n,isWebFullscreen:()=>e.fullscreenWeb===!0,nativeReadiness:y,onWeb:()=>d(e.fullscreenWeb!==!0),onNative:h,onChoice:w=>T==null?void 0:T.select(w)}):void 0,A=Ts(e,{available:()=>!!S&&E(),open:w=>S==null?void 0:S.open(w)}),_=E()?As({enabled:()=>E()&&i==="idle",isWebFullscreen:()=>e.fullscreenWeb===!0}
18):void 0;E()&&(T=xs(e.setting,()=>{Ut(e,!0)}));const L=Rs(e),P=w=>{var Ee;const N=w.target instanceof Element?w.target:null,I=N==null?void 0:N.closest(".art-control");if(!I||!(n!=null&&n.contains(I)))return;const $=I.dataset.name??"",_e=$==="pip"||I.classList.contains("art-control-pip"),z=$==="fullscreen"||I.classList.contains("art-control-fullscreen"),de=z&&e.fullscreen!==!0,ce=de&&((Ee=t.shouldInterceptFullscreen)==null?void 0:Ee.call(t))===!0;if(de&&E()){w.preventDefault(),w.stopImmediatePropagation(),Ut(e);return}if(z&&!ce&&m()){w.preventDefault(),w.stopPropagation(),w.stopImmediatePropagation();const ie=y();if(ie!=="ready"){ie==="source_missing"||ie==="metadata_pending"?Jt(e,"视频加载完成后可进入全屏"):ie==="unsupported"&&d(!0),b();return}h();return}if(z&&!ce&&c()){w.preventDefault(),w.stopPropagation(),w.stopImmediatePropagation(),d(e.fullscreenWeb!==!0);return}const ue=_e?t.onTogglePictureInPicture:ce?t.onEnterFullscreen:void 0;ue&&(w.preventDefault(),w.stopPropagation(),w.stopImmediatePropagation(),!o&&(o=!0,I.setAttribute("aria-busy","true"),I.style.pointerEvents="none",e.loading&&(e.loading.show=!0),Promise.resolve(ue()).then(ie=>{!ie&&de&&!ce&&(e.fullscreen=!0)}).catch(()=>{de&&!ce&&(e.fullscreen=!0)}).finally(()=>{o=!1,I.removeAttribute("aria-busy"),I.style.removeProperty("pointer-events"),e.loading&&(e.loading.show=!1)})))};n==null||n.addEventListener("click",P,!0);const F=()=>p("source_reset"),R=()=>b(),W=()=>p("fullscreen_started"),v=()=>p("fullscreen_ended");r==null||r.addEventListener("emptied",F),r==null||r.addEventListener("loadstart",F),r==null||r.addEventListener("error",F),r==null||r.addEventListener("loadedmetadata",R),r==null||r.addEventListener("canplay",R),r==null||r.addEventListener("webkitbeginfullscreen",W),r==null||r.addEventListener("webkitendfullscreen",v),b(),u(e.fullscreenWeb===!0);const B=Hs(e,E),V=Fs(e),j=qs(e,t.onControlsVisibilityChange),q=["fullscreen","fullscreenWeb","pip"].map(w=>{var I;const N=$=>{var _e;w==="fullscreenWeb"&&(u(!!$),$&&(T==null||T.select("web")),_==null||_.sync()),(_e=t.onArtPlayerEvent)==null||_e.call(t,w,!!$)};return(I=e.on)==null||I.call(e,w,N),[w,N]});return()=>{var w;o=!1,A(),S==null||S.destroy(),_==null||_.destroy(),T==null||T.destroy(),L(),l(),u(!1),e.loading&&(e.loading.show=!1),n==null||n.removeEventListener("click",P,!0),r==null||r.removeEventListener("emptied",F),r==null||r.removeEventListener("loadstart",F),r==null||r.removeEventListener("error",F),r==null||r.removeEventListener("loadedmetadata",R),r==null||r.removeEventListener("canplay",R),r==null||r.removeEventListener("webkitbeginfullscreen",W),r==null||r.removeEventListener("webkitendfullscreen",v);for(const[N,I]of q)(w=e.off)==null||w.call(e,N,I);j(),V(),B()}}function Us(e){return{name:"next",index:15,position:"left",html:'<span class="art-next-icon" aria-hidden="true"></span>',tooltip:"下一集",click(){e.hasNextEpisode()&&e.onNextEpisode()},mounted(...t){Ys(t,e)}}}function Gs(e,t){const n=e==null?void 0:e.querySelector(".art-control-next");n&&ao(n,t)}function Ys(e,t){const n=e.find(o=>o instanceof Element),r=o=>{var d,g;const i=(d=t.root)==null?void 0:d.call(t),s=(i==null?void 0:i.querySelector(".art-control-next"))??(n instanceof Element?(g=n.closest)==null?void 0:g.call(n,".art-control-next"):null);if(!s){o>0&&window.requestAnimationFrame(()=>r(o-1));return}s.setAttribute("aria-label","下一集"),ao(s,t.hasNextEpisode());const a=s.querySelector(".art-next-icon"),f=(i==null?void 0:i.querySelector(".art-control-playAndPause svg"))??(i==null?void 0:i.querySelector(".art-state svg"));if(!a||!f){o>0&&window.requestAnimationFrame(()=>r(o-1));return}const u=f.cloneNode(!0);u instanceof SVGElement&&(u.style.transform="translateX(-2px)"),a.style.position="relative",a.replaceChildren(u,Xs())};window.requestAnimationFrame(()=>r(20))}function ao(e,t){e.hidden=!t,e.style.display=t?"":"none",e.style.pointerEvents=t?"":"none",e.setAttribute("aria-disabled",String(!t))}function Xs(){const e=document.createElement("span");return e.setAttribute("aria-hidden","true"),Object.assign(e.style,{position:"absolute",top:"4px",right:"3px",width:"2px",height:"14px",borderRadius:"999px",background:"currentColor"}),e}const Qs=300,Js=`
19  <div class="react-player-art-loading-indicator" role="status" aria-live="polite">
20    <div class="react-player-art-loading-dots" aria-hidden="true">
21      <span></span><span></span><span></span>
22    </div>
23    <div class="react-player-art-loading-copy">正在加载</div>
24  </div>
25`,Rr=["video:timeupdate","video:progress","video:loadedmetadata","video:durationchange"];async function Zs(e){var j,D,q,J,w;let t=e.runtime??await Lr({loadHls:Tr(e.line)}),n=null,r=0,o=0,i,s,a=e.line;const f=(j=e.options)!=null&&j.icons&&typeof e.options.icons=="object"?e.options.icons:{},u=(D=e.options)!=null&&D.cssVar&&typeof e.options.cssVar=="object"&&!Array.isArray(e.options.cssVar)?e.options.cssVar:{},d=new t.art({container:e.container,url:"",autoplay:!1,setting:!0,playbackRate:!0,pip:!0,fullscreen:!0,fullscreenWeb:!0,moreVideoAttr:{preload:"metadata",referrerPolicy:"no-referrer",playsInline:!0,"webkit-playsinline":!0},customType:{m3u8(N,I){T(),n=h({runtime:t,video:N,url:I,line:a,events:e.events})}},...e.options??{},cssVar:{"--art-progress-color":"rgba(255, 255, 255, 0.25)","--art-loaded-color":"rgba(255, 255, 255, 0.25)","--art-hover-color":"rgba(255, 255, 255, 0.25)",...u},icons:{...f,loading:Js}}),g=ls(d);let k=0,E=0,m=!1,c;const l=()=>{var N,I;m&&((N=d.emit)==null||N.call(d,"setBar","played",0),(I=d.emit)==null||I.call(d,"setBar","loaded",0))};for(const N of Rr)(q=d.on)==null||q.call(d,N,l);Ni()||(w=(J=d.controls)==null?void 0:J.remove)==null||w.call(J,"volume");const y=Et(d);let b;y&&(xr(y),b=Yi(y,{onRememberedPlaybackRateApplied(N){Jt(d,`已根据你的习惯自动开启 ${Xi(N)}× 倍速`)}}),_n(y,d));async function p(N,I={}){var he,U,Te,oe,Q,te,me,se,Pe,Oe,$e;qe(I.signal);const $=await ks(N,e.resolveLine,I.signal);if(qe(I.signal),Object.assign(N,$),a=N,Tr($)&&!((U=(he=t.hls)==null?void 0:he.isSupported)!=null&&U.call(he))){const ge=await Lr({loadHls:!0});qe(I.signal),t={art:t.art,hls:ge.hls??t.hls}}const _e=$.url,z=Et(d);if(!z)throw new Error("播放器视频元素不可用");const de=z.muted;if(qn($,t)){A(),T(),d.loading&&(d.loading.show=!0);try{n=h({runtime:t,video:z,url:_e,line:$,events:e.events,signal:I.signal,startPosition:I.position}),_n(z,d,de)}catch(Re){throw d.loading&&(d.loading.show=!1),Re}if((Te=I.onSourceAttached)==null||Te.call(I,$),n!=null&&n.startupReady&&!await n.startupReady)return qe(I.signal),"failed";if(qe(I.signal),I.autoplay===!1)return z.pause(),"started";const ge=await Ir(z,I.signal);return qe(I.signal),ge==="started"&&((Q=(oe=e.events)==null?void 0:oe.onPlaybackStarted)==null||Q.call(oe,$)),ge}T(),xr(z),A(),z.preload="metadata",d.loading&&(d.loading.show=!0);const ce=o,ue=is({video:z,position:I.position,signal:I.signal,resolvePosition:((me=(te=e.events)==null?void 0:te.shouldResolveStartPosition)==null?void 0:me.call(te))===!1||(se=e.events)==null?void 0:se.resolveStartPosition,isCurrent:()=>ce===o});i=ue.dispose;const Ee=vs({video:z,url:_e,signal:I.signal,switchUrl:typeof d.switchUrl=="function"?ge=>d.switchUrl(ge):void 0});try{(Pe=I.onSourceAttached)==null||Pe.call(I,$),qe(I.signal),await Ee,qe(I.signal),_n(z,d,de),ue.resolve(),await us({video:z,position:ue.position(),signal:I.signal}),S(z,$,I.signal),d.loading&&(d.loading.show=!1)}catch(ge){if(ue.dispose(),Ee.catch(()=>{}),d.loading&&(d.loading.show=!1),ge instanceof ro||ge instanceof Error&&ge.name==="TimeoutError")return"failed";throw ge}finally{ue.stopObservingMetadata()}if(qe(I.signal),I.autoplay===!1)return z.pause(),"started";const ie=await Ir(z,I.signal);return qe(I.signal),ie==="started"&&(($e=(Oe=e.events)==null?void 0:Oe.onPlaybackStarted)==null||$e.call(Oe,$)),ie}function h(N){const I=r+1;return r=I,ws({...N,isCurrent:()=>{var $;return I===r&&!(($=N.signal)!=null&&$.aborted)}})}function T(){r+=1,n&&(n.destroy(),n=null)}function S(N,I,$){s==null||s();const _e=o,z=()=>{var ce,ue;if($!=null&&$.aborted||_e!==o)return;const de=N.error;de&&((ue=(ce=e.events)==null?void 0:ce.onNativeMediaError)==null||ue.call(ce,{line:I,payload:{error:{code:de.code,message:de.message},source_url:N.currentSrc||N.src}}))};N.addEventListener("error",z),s=()=>{N.removeEventListener("error",z)}}function A(){o+=1,i==null||i(),i=void 0,s==null||s(),s=void 0}function _(){var N,I;k+=1,m=!1,c!==void 0&&(clearTimeout(c),c=void 0);for(const $ of Rr)(N=d.off)==null||N.call(d,$,l);g.release(),g.destroy(),L(),b==null||b(),b=void 0,$i(),(I=d.destroy)==null||I.call(
25d,!0)}function L(){var N,I;A(),T(),Ss(Et(d)),(N=d.emit)==null||N.call(d,"setBar","played",0),(I=d.emit)==null||I.call(d,"setBar","loaded",0)}function P(N,I){if(k+=1,c!==void 0&&(clearTimeout(c),c=void 0),E=performance.now(),m=I,Mr(d,N),g.pin(),I){const $=Et(d);$&&fs($);try{d.currentTime=0}catch{}l()}return k}function F(N="正在加载"){return P(N,!0)}function R(N="正在换源"){return P(N,!1)}function W(){m=!1,g.release(),Mr(d,"正在加载")}function v(N){if(N!==k)return;const I=Math.max(0,Qs-(performance.now()-E));if(I===0){W();return}c=setTimeout(()=>{c=void 0,N===k&&W()},I)}function B(N){v(N)}function V(){return typeof(n==null?void 0:n.recoverMediaError)!="function"?!1:(n.recoverMediaError(),!0)}return{art:d,playLine:p,beginEpisodeTransition:F,endEpisodeTransition:v,beginLineTransition:R,endLineTransition:B,stopCurrentLine:L,recoverMediaError:V,destroy:_,video:()=>Et(d)}}function ea({data:e,targetUrl:t,video:n,onMessage:r,postToParent:o=!0}){return{emit(i,s={}){var f;const a={source:"yingji-player",version:1,type:i,token:e.token||t,episode_id:e.episode_id||((f=e.current_episode)==null?void 0:f.episode_id)||"",playback_source_id:e.playback_source_id||"",provider_id:e.provider_id||"",play_from:e.play_from||"",position:Math.round(n.currentTime||0),duration:Number.isFinite(n.duration)?Math.round(n.duration||0):0,paused:n.paused!==!1,ended:!!n.ended,ts:Date.now(),...s};return window.dispatchEvent(new CustomEvent("yingji:player",{detail:a})),r==null||r(a),o&&window.parent&&window.parent!==window&&window.parent.postMessage(a,"*"),a}}}function ta(e,t){return{async dispatch(n){var r,o,i,s,a,f,u,d,g,k;if(n.type==="playerstatusrequest"){const E=n.request_id||"",m=(r=e.onStatusRequest)==null?void 0:r.call(e,E);m&&t.emit("playerstatus",m);return}if(n.type==="playerproberequest"){const E=n.request_id||"",m=n.mode==="background"?"background":"fast",c=n.force!==!1,l=(o=e.onStatusRequest)==null?void 0:o.call(e,E);l&&t.emit("playerprobeaccepted",l),await((i=e.onProbeRequest)==null?void 0:i.call(e,{requestId:E,mode:m,force:c}));const y=(s=e.onStatusRequest)==null?void 0:s.call(e,E);y&&t.emit("playerprobecomplete",y);return}if(n.type==="playerseek"){(a=e.onSeek)==null||a.call(e,Math.max(0,Number(n.position)||0));return}if(n.type==="playernext"){(f=e.onNext)==null||f.call(e);return}if(n.type==="playerepisodechange"){(u=e.onEpisodeChange)==null||u.call(e,{id:n.id,token:n.token,position:Math.max(0,Number(n.position)||0)});return}if(n.type==="playerpanelack"){(d=e.onPanelAck)==null||d.call(e,n.panel);return}if(n.type==="playerpanelclose"){(g=e.onPanelClose)==null||g.call(e,n.panel);return}n.type==="playerpanelselect"&&((k=e.onPanelSelect)==null||k.call(e,{panel:n.panel,id:n.id,token:n.token}))}}}function na(e){const t=Array.isArray(e.data.episodes)&&e.data.episodes.length>0?e.data.episodes:e.data.current_episode?[e.data.current_episode]:[];return{request_id:e.requestId||"",engine:"artplayer",content_kind:e.data.content_kind||"",ui:e.ui,controls:e.controls,history:e.history??null,current_line:e.currentLine?Ar(e.currentLine,e.data,e.isLineCoolingDown):null,current_episode:e.currentEpisode?ra(e.currentEpisode,e.data):null,lines:e.lines.map(n=>Ar(n,e.data,e.isLineCoolingDown)),line_count:e.lines.length,episode_count:t.length,has_next_episode:e.hasNextEpisode,probe:oa(e.lines),playback:{ready_state:Number(e.video.readyState||0),position:Math.round(e.video.currentTime||0),duration:Number.isFinite(e.video.duration)?Math.round(e.video.duration||0):0,paused:e.video.paused!==!1,ended:!!e.video.ended,muted:!!e.video.muted,volume:typeof e.video.volume=="number"?e.video.volume:0,rate:typeof e.video.playbackRate=="number"?e.video.playbackRate:1,native_fullscreen:!!e.isNativeFullscreen,web_fullscreen:!!e.isWebFullscreen}}}function Ar(e,t,n){return{playback_source_id:e.playback_source_id||"",provider_id:e.provider_id||"",play_from:e.play_from||"",label:e.display_label||e.label||"线路",probe_status:e.probe_status||"unchecked",latency_ms:typeof e.latency_ms=="number"?e.latency_ms:null,probe_cached:!!e.probe_cached,source_index:Number.isFinite(Number(e.source_index))?Number(e.source_index):null,status:aa(e),meta:sa(e,t),selected:e.playback_source_id===t.playback_source_id,c
25ooling_down:!!(n!=null&&n(e)),url_kind:e.url_kind||"",token_scenario:e.token_scenario||"",resolve_mode:e.resolve_mode||"",resolve_required:e.resolve_required===!0}}function ra(e,t){var n,r;return{episode_id:e.episode_id||"",token:e.token||"",label:ia(e),sequence_index:Number.isFinite(Number(e.sequence_index))?Number(e.sequence_index):null,...e.episode_track?{episode_track:e.episode_track}:{},previous_episode_token:e.previous_episode_token||"",next_episode_token:e.next_episode_token||"",selected:e.episode_id===((n=t.current_episode)==null?void 0:n.episode_id)||e.token===((r=t.current_episode)==null?void 0:r.token)}}function oa(e){const t={total:e.length,ok:0,checking:0,failed:0,unchecked:0,cached:0};for(const n of e){const r=n.probe_status||"unchecked";r==="ok"?t.ok+=1:r==="checking"?t.checking+=1:r==="failed"?t.failed+=1:t.unchecked+=1,n.probe_cached&&(t.cached+=1)}return t}function ia(e){return(e==null?void 0:e.display_name)||(e==null?void 0:e.title)||(typeof(e==null?void 0:e.episode_number)=="number"?`第${e.episode_number}集`:e==null?void 0:e.episode_key)||"正片"}function sa(e,t){return e.playback_source_id===t.playback_source_id?"当前":e.probe_status==="failed"?"不可用":e.probe_status==="unchecked"?"待确认":typeof e.latency_ms=="number"?`${e.latency_ms}ms`:e.probe_status==="checking"?"检测中":"可用"}function aa(e){return e.probe_status==="failed"?"bad":e.probe_status==="ok"||typeof e.latency_ms=="number"?"good":"warn"}function ca(){let e=0,t,n;const r=new Set;function o(b){l(`superseded:${b.reason}`);const p=new AbortController;return t={id:++e,signal:p.signal,controller:p,reason:b.reason,phase:b.phase,overlayMode:b.overlayMode??"blocking",lineId:b.lineId,lineName:b.lineName,lineMode:b.lineMode,episodeId:b.episodeId,retryIndex:b.retryIndex,retryLimit:b.retryLimit,canSwitch:b.canSwitch,errorMessage:b.errorMessage,handledIssues:new Set,scheduledTasks:new Map},y(),n}function i(){return n}function s(){return n}function a(b){return r.add(b),()=>r.delete(b)}function f(b){return!!(t&&t.id===b&&!t.signal.aborted)}function u(b,p,h={}){return!t||t.id!==b||t.signal.aborted?!1:(t.phase=p,da(t,h),y(),!0)}function d(b,p,h={}){return!t||t.id!==b||t.signal.aborted||!h.allowDuringRecovery&&["recovering","retrying","switching","failed"].includes(t.phase)||t.handledIssues.has(p)?!1:(t.handledIssues.add(p),!0)}function g(b){!t||t.signal.aborted||b!==void 0&&t.id!==b||t.handledIssues.clear()}function k(b,p,h,T){if(!t||t.id!==b||t.signal.aborted)return!1;E(b,p);const S=t,A=globalThis.setTimeout(()=>{S.scheduledTasks.delete(p),!(t!==S||S.signal.aborted||S.id!==b)&&T()},Math.max(0,h));return S.scheduledTasks.set(p,A),!0}function E(b,p){if(!t||t.id!==b)return!1;const h=t.scheduledTasks.get(p);return h===void 0?!1:(globalThis.clearTimeout(h),t.scheduledTasks.delete(p),!0)}function m(b){t&&l(b)}function c(b="invalidate"){m(b),e+=1}function l(b){if(!t)return;const p=t;t=void 0;for(const h of p.scheduledTasks.values())globalThis.clearTimeout(h);p.scheduledTasks.clear(),p.controller.abort(b),y()}function y(){n=t&&!t.signal.aborted?la(t):void 0;for(const b of r)b()}return{begin:o,current:i,getSnapshot:s,subscribe:a,isCurrent:f,transition:u,acceptIssue:d,clearHandledIssues:g,schedule:k,cancelScheduled:E,abortCurrent:m,invalidate:c}}function la(e){return{id:e.id,signal:e.signal,reason:e.reason,phase:e.phase,overlayMode:e.overlayMode,lineId:e.lineId,lineName:e.lineName,lineMode:e.lineMode,episodeId:e.episodeId,retryIndex:e.retryIndex,retryLimit:e.retryLimit,canSwitch:e.canSwitch,errorMessage:e.errorMessage}}function da(e,t){const n=Object.keys(t);for(const r of n)e[r]=t[r]}function ua(){return{contextKey:"",lineIds:new Set}}function An(e,t,n){lo(e,t),n&&e.lineIds.add(n)}function co(e,t){e.contextKey=t,e.lineIds.clear()}function gn(e,t,n){lo(t,n);const r=new Set(t.lineIds);for(const o of e)if(t.lineIds.has(o.playback_source_id))for(const i of Tn(e,o))r.add(i);return e.filter(o=>!o.playback_source_id||!r.has(o.playback_source_id))}function fa(e){return new Set([...e.failedLineIds??[],...e.automaticBlockedLineIds??[],...e.confirmedFailedLineIds??[],e.currentLineId,e.activeAttemptLineId].filter(t=>!!t))}function lo(e,t){e.contextKey!==t&&(e.contextKey=t,e.lineIds.clear())}function ma(e){var t;return{tk:e.data.token||e.targetUrl,ep:e.data.episode_id||((t=e.data.current_episode)==null?void 0:t.episode_id)||"",ev:"lcf",ps:e.line.playback_source_id,pr:e.line.provider_id,pf:e.line.play_from,uk:e.line.url_kind,pos:Math.round(e.video.currentTime||0),dur:Number.isFinite(e.video.duration)?Math.round(e.video.duration||0):0,ts:Date.now(),...e.extra}}async function ya(e){await oi("/v1/playback/report",e,{auth:"none",keepalive:!0,timeoutMs:2e3})}const pa=64;function va(e){var t,n;return((t=e.episodeId)==null?void 0:t.trim())||((n=e.token)==null?void 0:n.trim())||"unknown-playback"}
25function _a(e,t,n=pa){if(e.has(t))return!1;for(e.add(t);e.size>Math.max(1,n);){const r=e.values().next().value;if(!r)break;e.delete(r)}return!0}function ba({data:e,targetUrl:t,video:n}){const r=new Set,o=Math.random().toString(36).slice(2,10);function i(s,a={}){var d,g;if(!e.report_enabled||!s)return;const f=va({episodeId:e.episode_id||((d=e.current_episode)==null?void 0:d.episode_id)||void 0,token:e.token||t});if(!_a(r,f))return;const u=ha(ma({data:e,targetUrl:t,video:n,line:s,extra:a}),s);ya({tk:e.token,ep:e.episode_id||((g=e.current_episode)==null?void 0:g.episode_id)||"",ss:o,events:[u]}).catch(()=>{})}return{reportTerminalFailure:i}}function ha(e,t){const n={ev:Lt(e.ev)??"heartbeat",ps:Nr(e.ps)??Nr(t==null?void 0:t.playback_source_id),pr:Lt(e.pr)??(t==null?void 0:t.provider_id),pf:Lt(e.pf)??(t==null?void 0:t.play_from),uk:Lt(e.uk)??(t==null?void 0:t.url_kind),pos:kn(e.pos),dur:kn(e.dur),ts:kn(e.ts)};for(const[r,o]of Object.entries(e)){if(r in n)continue;const i=Nn(o);i!==void 0&&(n[r]=i)}return ga(n)}function Lt(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Nr(e){const t=Lt(e);return t!=null&&t.startsWith("rpt1.")?void 0:t}function kn(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function Nn(e){if(e===null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(Array.isArray(e)){const t=e.map(Nn).filter(n=>n!==void 0);return t.length>20?t.slice(0,20):t}if(e&&typeof e=="object"){const t=Object.entries(e).slice(0,20).flatMap(([n,r])=>{const o=Nn(r);return o===void 0?[]:[[n,o]]});return Object.fromEntries(t)}}function ga(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}function ka(e,t,n,r){var f;const o=x.useRef(r);o.current=r;const i=x.useRef(n);i.current=n;const s=(f=e.current)==null?void 0:f.engine.art,a=!!n;return x.useLayoutEffect(()=>{var m,c;if(!s||!a)return;const u=l=>{var y;l&&o.current(),(y=i.current)==null||y.call(i,!!l)};(m=s.on)==null||m.call(s,"fullscreenWeb",u);const d=(c=s.template)==null?void 0:c.$player,g=d==null?void 0:d.closest(".global-player-host, .movie-player-experience"),k=g?ni(g,s,l=>{var y;return(y=i.current)==null?void 0:y.call(i,l)}):void 0,E=l=>{!(l.target instanceof Element)||!l.target.closest(".art-control-fullscreenWeb")||(l.preventDefault(),l.stopImmediatePropagation(),$t(s,s.fullscreenWeb!==!0,i.current))};return d==null||d.addEventListener("click",E,!0),()=>{var l;k==null||k(),(l=s.off)==null||l.call(s,"fullscreenWeb",u),d==null||d.removeEventListener("click",E,!0)}},[s,a]),x.useLayoutEffect(()=>{a&&$t(s,t)},[s,t,a]),()=>{var u,d;return $t((u=e.current)==null?void 0:u.engine.art,((d=e.current)==null?void 0:d.engine.art.fullscreenWeb)!==!0,i.current)}}function wa(e){var t,n;return(e==null?void 0:e.episode_id)||((t=e==null?void 0:e.current_episode)==null?void 0:t.episode_id)||((n=e==null?void 0:e.current_episode)==null?void 0:n.token)||(e==null?void 0:e.token)}function be(e){return e.playback_source_id||`${e.provider_id||"provider"}:${e.play_from||e.url}`}function Fn(e){var t;return{sequence_index:(t=e.current_episode)==null?void 0:t.sequence_index,episode_count:e.episode_count,content_kind:e.content_kind}}function uo(e){return e instanceof ot&&e.detail==="http_402:playback_token_insufficient"}function Sa(e,t){var o;const n=e.payload??{},r=n.error&&typeof n.error=="object"?n.error:{};return[((o=e.line)==null?void 0:o.playback_source_id)||t.line.playback_source_id,e.kind||"runtime",e.reason||"issue",String(r.code??n.code??""),String(n.source_url??"")].join(":")}function Se(e){return Vn(e,"正在连接新线路")}function Ea(e,t={}){const n=Se(e);return t.recovering?`线路异常,正在切换至 ${n}`:`正在切换至 ${n}`}function et(e,t){const n=new Set([...e.lineRuntime.failedLineIds(),...e.lineRuntime.automaticBlockedLineIds()]);return e.lineRuntime.lines.some(r=>r.playback_source_id!==t.playback_source_id&&!n.has(r.playback_source_id))}function Be(e){const t=e.engine.video();!t||t.paused||t.pause()}function Pa(e){return e.display_name||e.title||(typeof e.episode_number=="number"?`第${e.episode_number}集`:"")||e.episode_key||"正在准备播放"}function La(e){return`正在加载 ${Pa(e)}`}function yt(e){return e.episode_id||e.id||e.token||e.episode_key||e.display_name||e.title||"episode"}function Ma(e){return e instanceof Error&&e.name==="AbortError"}function Gt(){const e=ii();return{signedIn:e.signedIn,...e.accountScope?{accountScope:e.accountScope}:{}}}function xa(e){return e.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;").split("'").join("&#39;")}function Ta(e,t){let n={lines:[],currentId:null,loading:!0,switching:!1},r=!1,o=!1;const i=()=>{var a;return n.switching?"切换中…":n.loading?"线路加载中…":((a=n.lines.find(f=>f.id===n.currentId))==null?void 0:a.label)||"线路"},s=()=>
25{if(o)return;if(!n.lines.length&&!n.loading){r&&e.remove("playback-line"),r=!1;return}const a={name:"playback-line",index:5,position:"right",html:xa(i()),tooltip:"切换线路",click(){o||t()}};r?e.update(a):(e.add(a),r=!0)};return{update(a){n=a,s()},dispose(){o=!0,r&&e.remove("playback-line"),r=!1}}}function Ia(e){var o;const t=x.useRef(e);t.current=e;const n=x.useRef(null),r=(o=e.runtimeRef.current)==null?void 0:o.engine.art;x.useEffect(()=>{const i=r==null?void 0:r.controls;if(!(i!=null&&i.add)||!i.update||!i.remove)return;const s=Ta(i,()=>t.current.onOpenLinePanel());return n.current=s,()=>{s.dispose(),n.current=null}},[r]),x.useEffect(()=>{var i;(i=n.current)==null||i.update({lines:e.lines.map((s,a)=>({id:be(s),label:Vn(s,`线路${a+1}`)})),currentId:e.currentLine?be(e.currentLine):null,loading:e.linesLoading,switching:!!e.switchingLineId})},[r,e.lines,e.currentLine,e.linesLoading,e.switchingLineId])}function Ra(e=()=>window.localStorage){var s;const t="movie-player-video-enhancement-v1";let n=!1;try{n=((s=e())==null?void 0:s.getItem(t))==="1"}catch{}let r="",o=!1;const i=(a,f)=>{if(f!==o){if(f){r=a.style.filter;const u=r==="none"?"":r;a.style.filter=`${u} contrast(1.06) saturate(1.08) brightness(1.02)`.trim()}else a.style.filter=r;o=f}};return{name:"video-enhancement",html:"画质增强",tooltip:n?"开启":"关闭",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m12 3 2.5 6.5L21 12l-6.5 2.5L12 21l-2.5-6.5L3 12l6.5-2.5L12 3ZM20 2v4m-2-2h4"/></svg>',switch:n,mounted(a,f){i(this.video,f.switch===!0)},onSwitch(a){var u;const f=!a.switch;i(this.video,f);try{(u=e())==null||u.setItem(t,f?"1":"0")}catch{}return a.tooltip=f?"开启":"关闭",f}}}function Aa(){return{name:"video-fit",html:"画面填充",tooltip:"默认",mounted(e,t){t.icon=this.icons.aspectRatio},selector:[{html:"默认",value:"contain",default:!0},{html:"铺满",value:"cover"},{html:"拉伸",value:"fill"}],onSelect(e){return this.video.style.objectFit=e.value,e.html}}}function Na(e){return{title:e.title,theme:ci(),lang:"zh-cn",setting:Fi(),pip:!0,i18n:{"zh-cn":ai("zh-cn")},settings:[Aa(),Ra(),...e.onOpenQuickActions?[{name:"more-settings",html:"更多设置",tooltip:"",onClick(){var t;this.setting.show=!1,this.fullscreenWeb&&$t(this,!1),(t=e.onOpenQuickActions)==null||t.call(e)}}]:[]],controls:[Us({hasNextEpisode:e.hasNextEpisode,onNextEpisode:e.onNextEpisode,root:e.root})]}}function Fa(e,t){return Math.max(Yt(e),Yt(t))}function Yt(e){const t=Number(e);return Number.isFinite(t)&&t>0?t:0}function Ca({video:e,card:t,runtime:n,onPlayerStatus:r,onPlayable:o,onPlaying:i,onPause:s,onProgress:a,onPositionConfirmed:f,onEnded:u,onIssue:d}){if(!e)return()=>{};const g=(Q,te={})=>{var se;const me=n.emitter.emit(Q,{...te,history:fo(t,n),episode:n.payload.current_episode??void 0,episode_label:(se=n.payload.current_episode)==null?void 0:se.display_name});return Q==="playerstatus"&&(r==null||r(me)),In({movie:t,message:me,patch:Cn(n,t.id)}),me},k=1e4,E=1e4,m=1e3,c=.25,l=4500;let y=0,b=Date.now(),p=dt(e),h=!1,T=!1,S=0;const A=performance.now();let _=0,L=0,P=0,F=!1,R,W=0;const v=()=>{R!==void 0&&(window.clearTimeout(R),R=void 0)},B=()=>W>0?Date.now()-W:0,V=Q=>{W>0||(W=Date.now())},j=Q=>{W<=0||(W=0)},D=Q=>{b=Date.now(),p=dt(e),f==null||f(p),v(),S=0,j()},q=()=>typeof document<"u"&&document.hidden||e.ended||e.paused||F||Date.now()-_<l||Number(e.playbackRate||1)<=0?!1:T||h,J=Q=>{if(!q())return;const te=Date.now();if(te-S<E)return;const me=Date.now()-b;me<k||(S=te,V(),d==null||d({kind:"stall_timeout",reason:Q,hadRecentProgress:!1,payload:{details:Q,buffering_ms:Math.max(B(),me),silent_stall_ms:me,...P>0&&te-_<3e4?{seek_ms:P}:{}}}))},w=Q=>{v(),R=window.setTimeout(()=>{R=void 0;const te=Date.now()-b,me=Date.now()-_,se=e.readyState<HTMLMediaElement.HAVE_FUTURE_DATA,Pe=te<k,Oe=F||me<k;!se||e.ended||e.paused||Pe||Oe||J(Q)},k)},N=()=>{if(!q())return;const Q=dt(e);if(Math.abs(Q-p)>=c){D(),a==null||a();return}const te=Date.now()-b;te>=2500&&V(),te>=k&&J("silent_stall")},I=window.setInterval(N,m),Te=Da(n,e,{play:()=>{T=!0,g("play")},playing:()=>{v(),D(),o==null||o(),i==null||i(),g("playing"),h||(h=!0,g("start",{startup_ms:Math.round(performance.now()-A)}))},pause:()=>
25{v(),j(),s==null||s(),g("pause")},waiting:()=>{V(),g("waiting"),w("waiting")},stalled:()=>{V(),g("stalled"),w("stalled")},seeking:()=>{F=!0,_=Date.now(),L=_,v()},seeked:()=>{F=!1,_=Date.now(),P=L>0?_-L:0,b=_,p=dt(e),f==null||f(p),v(),S=0,j()},canplay:()=>{v(),b=Date.now(),p=dt(e),S=0,j(),o==null||o()},ended:()=>{v(),j(),g("ended"),u==null||u()},timeupdate:()=>{const Q=Date.now();b=Q,p=dt(e),f==null||f(p),v(),S=0,j(),a==null||a(),!(Q-y<1e4)&&(y=Q,g("timeupdate"))}}),oe=es(t.id,()=>{var Q,te;return{source_id:n.line.playback_source_id,episode_label:((Q=n.payload.current_episode)==null?void 0:Q.display_name)??((te=n.payload.current_episode)==null?void 0:te.title),metrics:ts(e)}});return()=>{oe(),v(),window.clearInterval(I),Te()}}function Da(e,t,n){const r=e.engine.art;if(typeof r.on=="function"&&typeof r.off=="function"){for(const[o,i]of Object.entries(n))r.on(`video:${o}`,i);return()=>{var o;for(const[i,s]of Object.entries(n))(o=r.off)==null||o.call(r,`video:${i}`,s)}}for(const[o,i]of Object.entries(n))t.addEventListener(o,i);return()=>{for(const[o,i]of Object.entries(n))t.removeEventListener(o,i)}}function dt(e){if(!e)return 0;const t=Number(e.currentTime);return Number.isFinite(t)?t:0}function Cn(e,t){var i,s,a,f;const n=e.engine.video(),r=((i=e.payload.current_episode)==null?void 0:i.display_name)??((s=e.payload.current_episode)==null?void 0:s.title)??((a=e.payload.current_episode)==null?void 0:a.episode_key),o={displayContext:{variantId:t,lineLabel:Vn(e.line,""),episodeLabel:r,episodeId:(f=e.payload.current_episode)==null?void 0:f.episode_id,positionSeconds:n&&n.readyState>0&&Number.isFinite(n.currentTime)?n.currentTime:void 0},playbackGroupId:e.line.play_from||"yjplayer",playbackSourceId:e.line.playback_source_id,positionSeconds:Math.round((n==null?void 0:n.currentTime)||0)};return r!==void 0&&(o.episode=r,o.episodeLabel=r),e.line.provider_id!==void 0&&(o.providerId=e.line.provider_id),e.line.play_from!==void 0&&(o.playFrom=e.line.play_from),Number.isFinite(n==null?void 0:n.duration)&&(o.durationSeconds=Math.round((n==null?void 0:n.duration)||0)),o}function fo(e,t){const n=t.engine.video(),r=t.payload.current_episode;return{variant_id:e.id,title:e.title,episode_id:r==null?void 0:r.episode_id,episode_token:(r==null?void 0:r.token)||t.payload.token,episode_label:(r==null?void 0:r.display_name)??(r==null?void 0:r.title)??(r==null?void 0:r.episode_key),position:Math.round((n==null?void 0:n.currentTime)||0),duration:Number.isFinite(n==null?void 0:n.duration)?Math.round((n==null?void 0:n.duration)||0):0,playback_source_id:t.line.playback_source_id,provider_id:t.line.provider_id,play_from:t.line.play_from,updatedAt:Date.now()}}
25class mo extends Error{constructor(){super("player_episode_resolve_deadline"),this.name="PlayerEpisodeResolveDeadlineError"}}async function Oa(e,t={}){var a,f,u;const n=Math.max(1,t.timeoutMs??Wa),r=new AbortController,o=()=>{var d;return r.abort((d=t.signal)==null?void 0:d.reason)};(a=t.signal)!=null&&a.aborted?o():(f=t.signal)==null||f.addEventListener("abort",o,{once:!0});let i;const s=new Promise((d,g)=>{i=setTimeout(()=>{r.abort(),g(new mo)},n)});try{return await Promise.race([e(r.signal),s])}finally{i&&clearTimeout(i),(u=t.signal)==null||u.removeEventListener("abort",o)}}const Wa=12e3;function Va(e){if(e.lineSelectionMode!=="manual")return;const t=e.line??e.activeLine;if(t)return{playback_source_id:"",provider_id:t.provider_id||e.episode.provider_id||e.payload.provider_id||"",play_from:t.play_from||e.episode.play_from||e.payload.play_from||"",source_vod_id:t.source_vod_id||e.episode.source_vod_id||""}}function Ha(e){var t;return e.sameEpisode&&!((t=e.resolvedPayload)!=null&&t.url)}function $n(e,t){const n=e.global_next_episode,r=e.global_previous_episode,o=n!==void 0?(n==null?void 0:n.token)??null:e.global_next_episode_token!==void 0?e.global_next_episode_token:e.next_episode_token,i=r!==void 0?(r==null?void 0:r.token)??null:e.global_previous_episode_token!==void 0?e.global_previous_episode_token:e.previous_episode_token,s=e.global_next_episode_label!==void 0?e.global_next_episode_label:n==null?void 0:n.title,a=e.global_previous_episode_label!==void 0?e.global_previous_episode_label:r==null?void 0:r.title;return{...n===void 0?{}:{global_next_episode:n},...r===void 0?{}:{global_previous_episode:r},global_next_episode_token:o,global_previous_episode_token:i,...s===void 0?{}:{global_next_episode_label:s},...a===void 0?{}:{global_previous_episode_label:a},next_episode_token:o,previous_episode_token:i}}function yo(e,t){const n=t==="next"?e==null?void 0:e.global_next_episode:e==null?void 0:e.global_previous_episode,r=(n==null?void 0:n.token)||(t==="next"?(e==null?void 0:e.global_next_episode_token)??(e==null?void 0:e.next_episode_token):(e==null?void 0:e.global_previous_episode_token)??(e==null?void 0:e.previous_episode_token))||"";if(!r)return null;const o=(t==="next"?e==null?void 0:e.global_next_episode_label:e==null?void 0:e.global_previous_episode_label)||(n==null?void 0:n.title)||(t==="next"?"下一集":"上一集");return{token:r,label:o,target:n}}function Kn(e,t){const n=!!(e.display_name||e.title||e.episode_key||e.content_kind||e.episode_number!==void 0||e.sequence_index!==void 0);return{id:e.id||t.id,episode_id:(e.episode_id!==e.token?e.episode_id:void 0)||t.episode_id,token:e.token||t.token,display_name:e.display_name||e.title||t.display_name||t.title,title:e.title||e.display_name||t.title||t.display_name,episode_key:e.episode_key||t.episode_key,...(e.episode_track??t.episode_track)===void 0?{}:{episode_track:e.episode_track??t.episode_track},episode_number:n?e.episode_number:t.episode_number,content_kind:n?e.content_kind:t.content_kind,sequence_index:n?e.sequence_index:t.sequence_index}}function jn(e,t){return e.find(n=>pt(n,t))??t}function qa(e,t){const n=e.current_episode;if(!n||!t.length)return;const r=jn(t,n);t.includes(r)&&(e.current_episode={...n,...Kn(r,n),...$n(r)},e.episodes=po(t,e.episodes,e.current_episode,{catalogAuthoritative:!0}))}function Fr(e,t){var r;if(!t||e.length<1)return!1;const n=e.findIndex(o=>pt(o,t));return n<0?!1:n===e.length-1&&!((r=e[n])!=null&&r.next_episode_token)}function po(e,t,n,r={}){const o=Array.isArray(t)?t:[],i=e.length?e:o;if(!i.length)return[n];let s=!1;const a=i.map(u=>{const d=o.find(E=>pt(E,u)),g=pt(u,n);g&&(s=!0);const k=g?{...d,...n}:d??u;return{...u,...k,...Kn(u,k),selected:g,...$n(u)}}),f=(r.catalogAuthoritative?[]:o).filter(u=>!i.some(d=>pt(d,u))).map(u=>({...u,selected:pt(u,n)}));return s?[...a,...f]:[...a,...f,n]}function pt(e,t){const n=ut(e.token),r=ut(t.token);if(n&&r)return n===r;const o=ut(e.episode_id),i=ut(t.episode_id);if(o&&i)return o===i;const s=ut(e.id),a=ut(t.id);return!!(s&&a&&s===a)}function ut(e){return String(e||"").trim()}function Rt(e){var t,n;
25return e.current_episode??((t=e.episodes)==null?void 0:t.find(r=>r.selected))??((n=e.episodes)==null?void 0:n[0])??null}function Xt(e,t){const n=e.episodes??[],r=String(t.token||"").trim(),o=String(t.id||"").trim(),i=String(t.label||"").trim();return!r&&!o?null:n.find(s=>r&&s.token===r||o&&(s.episode_id===o||s.id===o||s.token===o))??(r?zn(e,r,i||"下一集"):null)}function it(e){const t=e.episodes??[],n=Rt(e),r=yo(n,"next");if(r)return t.find(i=>i.token===r.token)??zn(e,r.token,r.label,r.target);const o=t.findIndex(i=>(n==null?void 0:n.episode_id)&&i.episode_id===n.episode_id||(n==null?void 0:n.token)&&i.token===n.token);return o>=0&&o+1<t.length?t[o+1]:null}function Ba(e){const t=e.episodes??[],n=Rt(e),r=yo(n,"previous");if(r)return t.find(i=>i.token===r.token)??zn(e,r.token,r.label,r.target);const o=t.findIndex(i=>(n==null?void 0:n.episode_id)&&i.episode_id===n.episode_id||(n==null?void 0:n.token)&&i.token===n.token);return o>0?t[o-1]:null}function vo(e,t){const n=Rt(e);return!!(n&&t&&(t.episode_id&&t.episode_id===n.episode_id||t.token&&t.token===n.token))}function Dn(e){return(e==null?void 0:e.display_name)||(e==null?void 0:e.title)||(typeof(e==null?void 0:e.episode_number)=="number"?`第${e.episode_number}集`:"")||(e==null?void 0:e.episode_key)||"正片"}async function _o(e){if(!e.episode.token)throw new Error("选集缺少播放 token");const t=e.episode.token,n=Va(e);try{return{...await Oa(r=>Jr({token:t,signal:r,...n?{selection:n}:{}}),{signal:e.signal}),report_enabled:!0}}catch(r){throw r instanceof mo?new ot("播放请求超时",{detail:"playback_request_timeout",tip:"解析耗时较长,请重试或手动选择其他线路。"}):r}}function zn(e,t,n="下一集",r){const o=Rt(e),i=It(e.line_options??[],e.playback_source_id);return{token:t,episode_id:"",display_name:n,title:(r==null?void 0:r.title)??n,...(r==null?void 0:r.number)===void 0||r.number===null?{}:{episode_number:r.number},...(r==null?void 0:r.sequence_index)===void 0||r.sequence_index===null?{}:{sequence_index:r.sequence_index},...r!=null&&r.episode_track?{episode_track:r.episode_track}:{},episode_key:"",playback_source_id:(o==null?void 0:o.playback_source_id)||e.playback_source_id||"",provider_id:(o==null?void 0:o.provider_id)||e.provider_id||"",play_from:(o==null?void 0:o.play_from)||e.play_from||"",source_vod_id:(o==null?void 0:o.source_vod_id)||(i==null?void 0:i.source_vod_id)||""}}function $a(e){if(!e||typeof e!="object")return null;const t=e;if(t.source!=="yingji-host"||t.version!==1)return null;const n=typeof t.type=="string"?t.type:"";if(n==="playerstatusrequest")return{type:n,...typeof t.request_id=="string"?{request_id:t.request_id}:{}};if(n==="playerproberequest")return{type:n,...typeof t.request_id=="string"?{request_id:t.request_id}:{},mode:t.mode==="background"?"background":"fast",force:t.force!==!1};if(n==="playerseek")return{type:n,position:Number(t.position)||0};if(n==="playernext")return{type:n};if(n==="playerepisodechange")return{type:n,...typeof t.id=="string"?{id:t.id}:{},...typeof t.token=="string"?{token:t.token}:{},position:Number(t.position)||0};if(n==="playerpanelack")return{type:n,...typeof t.panel=="string"?{panel:t.panel}:{}};if(n==="playerpanelclose")return{type:n,...typeof t.panel=="string"?{panel:t.panel}:{}};if(n==="playerpanelselect"){const r=typeof t.panel=="string"?t.panel:"";return r?{type:n,panel:r,...typeof t.id=="string"?{id:t.id}:{},...typeof t.token=="string"?{token:t.token}:{}}:null}return null}function Cr(e){return{...e.id===void 0?{}:{id:e.id},...e.token===void 0?{}:{token:e.token}}}function Ka({runtimeRef:e,pendingEpisodeLineContextKeyRef:t,explicitLineProbeLifecycleRef:n,refreshPanels:r,selectNextEpisode:o,switchToEpisode:i,closeActivePanel:s,selectPanelLine:a,selectPanelEpisode:f,buildStatusPayload:u}){return function(g){const k=e.current;if(!k)return;ta({onStatusRequest(m){return u(k,m)},async onProbeRequest({mode:m,force:c}){if(t.current)return;const l=n.current.begin();try{await k.lineRuntime.probeLines({mode:m,force:c,activeLine:k.line,signal:l.signal}),!l.signal.aborted&&e.current===k&&r()}catch(y){if(!(y instanceof Error)||y.name!=="AbortError")throw y}finally{n.current.complete(l)}},onSeek(m){const c=k.engine.video();c&&(c.currentTime=m)},onNext(){o()},onEpisodeChange(m){const c=Xt(k.payload,Cr(m));
25c&&i(c,"parent_episode_change",{position:m.position})},onPanelClose(){s()},onPanelSelect(m){if(m.panel==="line"){if(t.current)return;const c=k.lineRuntime.lines.find(l=>l.playback_source_id===m.id);c&&a(c,"manual_parent");return}if(m.panel==="episode"){const c=Xt(k.payload,Cr(m));c&&f(c,"parent_panel_episode")}}},k.emitter).dispatch(g)}}function ja(){let e;return{begin(){e==null||e.abort();const t=new AbortController;return e=t,t},complete(t){e===t&&(e=void 0)},cancel(){e==null||e.abort(),e=void 0}}}function za(e){return!!(e&&e!=="playing"&&e!=="awaiting_user")}function Ua(e){return e.abortedForHandoff&&e.currentAttemptPhase===void 0}const Ga=260;function Ya({loadingTimerRef:e,loadingClearTimerRef:t,loadingShownAtRef:n,loadingVisibleRef:r,setLoading:o,setLoadingMessage:i,setLoadingHint:s}){const a=()=>{r.current=!1,o(!1),i(void 0),s(void 0)},f=()=>{window.clearTimeout(e.current),e.current=void 0},u=()=>{f(),window.clearTimeout(t.current),t.current=void 0};return{cancelFrameLoadingTimers:u,clearFrameLoading:()=>{if(f(),window.clearTimeout(t.current),t.current=void 0,!r.current)return;const E=window.performance.now()-n.current,m=Ga-E;if(m>0){t.current=window.setTimeout(a,m);return}a()},forceClearFrameLoading:()=>{u(),a()},showFrameLoading:(E,m,c=0)=>{u();const l=()=>{r.current=!0,n.current=window.performance.now(),i(E),s(m),o(!0)};if(c>0){e.current=window.setTimeout(l,c);return}l()}}}function Xa({lineAdmissionStateRef:e,tokenQuotaFallbackDecisionRef:t,setTokenQuotaState:n}){return function(o,i){var a,f;const s=Date.now();return e.current=Hn(e.current,{type:"TOKEN_INSUFFICIENT",auth:Gt(),resetAt:(a=i.tokenQuota)==null?void 0:a.resetAt}),Ki({resetAt:(f=i.tokenQuota)==null?void 0:f.resetAt}),n(u=>{var d,g,k;return zt(u,{type:"TOKEN_INSUFFICIENT",now:s,fallbackDelayMs:_r,resetAt:(d=i.tokenQuota)==null?void 0:d.resetAt,requiredTokens:(g=i.tokenQuota)==null?void 0:g.requiredTokens,remainingTokens:(k=i.tokenQuota)==null?void 0:k.remainingTokens})}),new Promise((u,d)=>{let g=!1;const k=c=>{g||(g=!0,window.clearTimeout(m),o.removeEventListener("abort",E),t.current=void 0,n(l=>zt(l,{type:"RESET"})),c?d(c):u())},E=()=>k(o.reason??new DOMException("播放操作已取消","AbortError")),m=window.setTimeout(()=>k(),_r);t.current=()=>k(),o.addEventListener("abort",E,{once:!0}),o.aborted&&E()})}}const vt={softTimeoutMs:12e3,hardTimeoutMs:32e3,evidenceGraceMs:8e3,pollMs:1e3};function Dr(e){return{readyState:On(e.readyState),networkState:On(e.networkState),durationKnown:Number.isFinite(e.duration)&&e.duration>0,bufferedEnd:ec(e.buffered),currentSrcPresent:!!(e.currentSrc||e.src)}}function Qa(e,t){return{startedAt:t,lastEvidenceAt:t,facts:e}}function Ja(e,t,n){const r=t.readyState>e.facts.readyState||t.bufferedEnd>=e.facts.bufferedEnd+.25||!e.facts.durationKnown&&t.durationKnown||!e.facts.currentSrcPresent&&t.currentSrcPresent;return{...e,lastEvidenceAt:r?n:e.lastEvidenceAt,facts:t}}function Za(e,t,n={}){const r=Math.max(1,Math.round(n.softTimeoutMs??vt.softTimeoutMs)),o=Math.max(r,Math.round(n.hardTimeoutMs??vt.hardTimeoutMs)),i=Math.max(0,Math.round(n.evidenceGraceMs??vt.evidenceGraceMs)),s=Math.max(0,t-e.startedAt);if(s<r)return"wait";if(s>=o)return"timeout";const a=e.facts.networkState===2,f=e.facts.readyState>0||e.facts.durationKnown||e.facts.bufferedEnd>0,u=t-e.lastEvidenceAt<=i;return a||f||u?"wait":"timeout"}function ec(e){if(!e||e.length<=0)return 0;try{return On(e.end(e.length-1))}catch{return 0}}function On(e){return Number.isFinite(e)?Math.max(0,e):0}const tc=.08;function nc({runtimeRef:e,localPlaybackSuspendedRef:t,playbackAttemptManagerRef:n,explicitLineProbeLifecycleRef:r,pendingLineSwitchRef:o,pendingEpisodeSwitchRef:i,autoSwitchGuardRef:s,cardRef:a,setSwitchingLineId:f,setSwitchingEpisodeId:u,isRuntimePlaybackHealthy:d,confirmCurrentLinePlayback:g,handlePlaybackIssue:k}){const E=()=>{const L=n.current.current();L&&n.current.cancelScheduled(L.id,"media-recovery-timeout")},m=()=>{const L=n.current.current();L&&n.current.cancelScheduled(L.id,"playback-start-timeout")},c=()=>{const L=n.current.current();L&&n.current.cancelScheduled(L.id,"recovery-retry")},l=()=>{r.current.cancel()},y=(L,P={})=>(E(),m(),l(),o.current=!1,i.current=!1,f(void 0),u(void 0),n.current.begin({reason:L,phase:P.phase??"resolving",lineId:P.lineId,lineName:P.lineName,lineMode:P.lineMode,episodeId:P.episodeId,retryIndex:P.retryIndex,retryLimit:P.retryLimit,canSwitch:P.canSwitch,errorMessage:P.errorMessage,...P.overlayMode?{overlayMode:P.overlayMode}:{}})),b=(L,P)=>n.current.isCurrent(L)&&(!P||e.current===P),p=()=>
25{E(),m(),l(),n.current.invalidate(),o.current=!1,i.current=!1},h=(L,P,F,R,W=vt.softTimeoutMs)=>{if(t.current)return;const v=P.engine.video();if(!v)return;const B=Math.max(0,Number(v.currentTime||0));let V=Qa(Dr(v),Date.now());const j=()=>{if(t.current)return;const D=e.current;if(!D||D!==P||D.line.playback_source_id!==F.playback_source_id||!b(L,P))return;if(D.line.resolve_mode==="parse"&&Fe(D.line)){n.current.schedule(L,"playback-start-timeout",1e3,j);return}const q=D.engine.video(),J=Number((q==null?void 0:q.currentTime)||0)>=B+tc;if(d(D)||q&&J&&!q.paused&&!q.ended&&q.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA){g("timeupdate");return}if(!q)return;const w=Date.now();if(V=Ja(V,Dr(q),w),Za(V,w,{softTimeoutMs:Math.max(3e3,W)})==="wait"){n.current.schedule(L,"playback-start-timeout",vt.pollMs,j);return}k({line:D.line,kind:"startup_timeout",reason:`${R}_startup_timeout`,canRecoverMedia:!1,payload:{details:"playback_start_timeout",startup_ms:w-V.startedAt,ready_state:q.readyState,network_state:q.networkState,duration:Number.isFinite(q.duration)?q.duration:0,buffered_end:V.facts.bufferedEnd,paused:q.paused,current_time:q.currentTime}})};n.current.schedule(L,"playback-start-timeout",vt.pollMs,j)},T=(L,P,F,R,W)=>{t.current||n.current.schedule(L,"media-recovery-timeout",Math.max(1500,W),()=>{if(t.current)return;const v=e.current;!v||v!==P||v.line.playback_source_id!==F.playback_source_id||!b(L,P)||k({kind:"media_recover_timeout",reason:R,canRecoverMedia:!1,payload:{details:R}})})},S=L=>{const P=L.payload.current_episode;return[a.current.id,L.payload.token,L.payload.episode_id,P==null?void 0:P.episode_id,P==null?void 0:P.token].filter(Boolean).join(":")};return{beginPlaybackAttempt:y,cancelExplicitLineProbe:l,cancelMediaRecoveryTimer:E,cancelPlaybackRecoveryRetry:c,cancelPlaybackStartTimer:m,invalidatePlaybackOperations:p,isPlaybackOperationCurrent:b,reserveAutoLineSwitch:L=>{const P=S(L);s.current.contextKey!==P&&(s.current={contextKey:P,count:0});const F=Math.max(0,L.lineRuntime.lines.length-1);return s.current.count>=F?!1:(s.current={contextKey:P,count:s.current.count+1},!0)},resetAutoSwitchGuard:L=>{s.current={contextKey:S(L),count:0}},scheduleMediaRecoveryTimeout:T,schedulePlaybackStartTimeout:h}}function rc({runtimeRef:e,pendingLineSwitchRef:t,playbackAttemptManagerRef:n,lineAdmissionStateRef:r,setTokenQuotaState:o,card:i,onPlayerStatus:s,markFramePlayable:a,refreshPanels:f}){const u=c=>{const l=n.current.current();if(!(!t.current||!(l!=null&&l.lineId))&&!(l.phase==="awaiting_playback"&&be(c.line)!==l.lineId))return{lineId:l.lineId,lineOperationId:l.id,linePhase:l.phase,lineReason:l.reason}},d=(c,l)=>{var h;const y=c.engine.video(),b=it(c.payload),p=((h=c.payload.episodes)==null?void 0:h.length)??(c.payload.current_episode?1:0);return na({requestId:l,data:c.payload,lines:c.lineRuntime.lines,currentLine:c.line,currentEpisode:c.payload.current_episode,video:y??{},ui:"app",controls:{seek:!0,pause:!0,resume:!0,fullscreen:!0,line:!0,episode:p>1},history:null,hasNextEpisode:!!b})},g=c=>{const l=e.current;if(!l)return;const y=l.emitter.emit("playerstatus",d(l,c));s==null||s(y),In({movie:i,message:y,patch:Cn(l,i.id)})},k=(c,l={})=>{var p;const y=e.current;if(!y)return;const b=y.emitter.emit(c,{...l,history:fo(i,y),episode:y.payload.current_episode??void 0,episode_label:(p=y.payload.current_episode)==null?void 0:p.display_name});return In({movie:i,message:b,patch:Cn(y,i.id)}),b};return{buildStatusPayload:d,confirmCurrentLinePlayback:c=>{const l=e.current;if(!l)return;const y=u(l),b=(y==null?void 0:y.linePhase)==="recovering"||(y==null?void 0:y.linePhase)==="retrying";if(t.current&&(y==null?void 0:y.linePhase)!=="awaiting_playback"&&!b)return;const p=t.current,h=(y==null?void 0:y.lineReason)||"line_switch";a();const T=n.current.current();T&&(n.current.transition(T.id,"playing"),n.current.clearHandledIssues(T.id)),l.lineStateMachine.markPlaying(l.line),l.lineRuntime.markPlayable(l.line),l.line.resolve_mode==="parse"?(r.current=Hn(r.current,{type:"PARSED_LINE_CONFIRMED",auth:Gt()}),ji()):o(S=>S.status==="token_insufficient"?zt(S,{type:"RESET"}):S),p&&(k("linechange",{reason:h,playback_source_id:l.line.playback_source_id,provider_id:l.line.provider_id,play_from:l.line.play_from,line_selection_mode:l.lineSelectionMode}),g(crypto.randomUUID()),f())},currentPendingLineSwitch:u,emitLifecycleMessage:(c,l={})=>{var y;(y=e.current)==null||y.emitter.emit(c,l)},emitRuntimeMessage:k,emitStatus:g}}function oc({runtimeRef:e,pendingEpisodeLineContextKeyRef:t,playbackAttemptManagerRef:n,startupLineExclusionsRef:r,startupLineContextKey:o,explicitLineProbeCancel:i,setRetryNonce:s,switchToLine
25:a}){const f=m=>{var c;return fa({currentLineId:m.line.playback_source_id,activeAttemptLineId:(c=n.current.current())==null?void 0:c.lineId,failedLineIds:m.lineRuntime.failedLineIds(),automaticBlockedLineIds:m.lineRuntime.automaticBlockedLineIds(),confirmedFailedLineIds:m.lineStateMachine.confirmedFailedIds()})};return{isRuntimePlaybackHealthy:m=>{const c=m.engine.video();return!!(c&&!c.paused&&!c.ended&&c.readyState>=HTMLMediaElement.HAVE_FUTURE_DATA)},lineSwitchExcludedIds:f,pauseRuntimePlayback:m=>{i();const c=e.current,l=c==null?void 0:c.engine.video();!l||l.paused||(l.pause(),c==null||c.emitter.emit("pause",{reason:m}))},retryCurrentLine:()=>{const m=e.current;if(!(m!=null&&m.line))return!1;const c=n.current.current();return(c==null?void 0:c.phase)==="failed"&&co(r.current,o),a(m.line,"manual_retry_line"),!0},switchNextLine:()=>{const m=e.current;if(!m||t.current||m.lineRuntime.lines.length<2)return!1;const c=m.lineRuntime.switchToNext({allowUnprobed:!0,excludeIds:f(m)});return!c||c.playback_source_id===m.line.playback_source_id?!1:(a(c,"assistant_next_line",{selectionMode:"manual"}),!0)},switchPlaybackImmediately:()=>{const m=e.current;if(t.current)return;if(!(m!=null&&m.line)){const l=n.current.current();l!=null&&l.canSwitch&&l.lineId&&(An(r.current,o,l.lineId),n.current.abortCurrent("manual_immediate_switch")),s(y=>y+1);return}m.lineRuntime.markFailed(m.line);const c=m.lineRuntime.switchToNext({allowUnprobed:!0,excludeIds:f(m)});c&&a(c,"manual_immediate_switch",{selectionMode:"manual"})}}}async function ic({issue:e,runtime:t,getRuntime:n,onDecision:r,scheduleRetry:o,retryLine:i,switchToLine
25:s,emitRuntimeMessage:a,setError:f,scheduleMediaRecoveryTimeout:u,reserveAutoLineSwitch:d}){var p,h,T,S;const g=e.line??t.line,k=t.lineSelectionMode!=="manual"||li(e),E=Or(t),m=e.kind==="startup_timeout",c={...e,line:g,hasOtherLine:k&&sc(t.lineRuntime.lines,g,E,m)};let l=t.lineStateMachine.handleIssue(c),y=!1;if(l.type==="recover_media"&&(y=t.engine.recoverMediaError(),y||(l=t.lineStateMachine.handleIssue({...c,canRecoverMedia:!1}))),r==null||r({decision:l,line:g}),l.type==="none")return;if(l.type==="recover_media"&&y){u==null||u(g,l.reason||"recover_media",Math.max(2200,l.delayMs??0));return}if(l.type==="retry_current"){const A=g,_=di(c);o(Math.max(0,l.delayMs??0),()=>{const L=n();!L||L.line.playback_source_id!==A.playback_source_id||(_&&Mt(A),i(A,l.reason||"retry_current",{index:Math.max(1,l.attempt??1),limit:Math.max(1,l.retryLimit??1),refreshResolution:_}))});return}if(l.type==="switch_line"&&k){if(d&&!d()){const _="已尝试多条线路仍无法播放,请手动选择线路或稍后重试";t.reporter.reportTerminalFailure(g,{rs:"auto_switch_limit",hi:(p=l.issue)==null?void 0:p.httpStatus,er:(h=l.issue)==null?void 0:h.details}),a("playbackfailed",{reason:"auto_switch_limit",issue:l.issue,message:_}),f(_);return}Mt(g),t.lineRuntime.markFailed(g);const A=t.lineRuntime.switchToNext({allowProbeFailed:m,allowUnprobed:!0,excludeIds:Or(t)});if(A){await s(A,`auto_${l.reason||"switch_line"}`);return}}Mt(g),t.reporter.reportTerminalFailure(g,{rs:l.reason||"confirmed_failure",hi:(T=l.issue)==null?void 0:T.httpStatus,er:(S=l.issue)==null?void 0:S.details});const b="当前线路播放失败,请切换线路或稍后重试";a("playbackfailed",{reason:l.reason||"confirmed_failure",issue:l.issue,message:b}),f(b)}function sc(e,t,n,r){const o=(t==null?void 0:t.playback_source_id)||"";return e.some(i=>!i.playback_source_id||i.playback_source_id===o||n.has(i.playback_source_id)?!1:r||i.probe_status!=="failed")}function Or(e){return new Set([...e.lineRuntime.failedLineIds(),...e.lineRuntime.automaticBlockedLineIds(),...e.lineStateMachine.confirmedFailedIds()])}function ac({externalPlaybackResolutionActive:e,localPlaybackSuspended:t}){return!t||e}function cc({clearPendingLineSwitchLoading:e,currentPendingLineSwitch:t,emitRuntimeMessage:n,externalPlaybackResolutionActiveRef:r,forceClearFrameLoading:o,isRuntimePlaybackHealthy:i,localPlaybackSuspendedRef:s,pendingLineSwitchRef:a,playbackAttemptManagerRef:f,reserveAutoLineSwitch:u,runtimeRef:d,scheduleMediaRecoveryTimeout:g,setError:k,switchToLine
25:E}){async function m(c,l={}){var S,A;if(!ac({localPlaybackSuspended:s.current,externalPlaybackResolutionActive:r.current}))return;const y=d.current;if(!y)return;const b=t(y);if(a.current&&(b==null?void 0:b.linePhase)!=="awaiting_playback"&&!l.allowBeforeSourceAttach)return;const p=(S=c.line)==null?void 0:S.playback_source_id;if(p&&p!==y.line.playback_source_id&&p!==((A=y.lineRuntime.current)==null?void 0:A.playback_source_id))return;const h=f.current.current();if(!h)return;const T=Sa(c,y);f.current.acceptIssue(h.id,T,{allowDuringRecovery:l.allowDuringRecovery===!0||c.kind==="media_recover_timeout"})&&(f.current.transition(h.id,"recovering"),await ic({issue:c,runtime:y,getRuntime:()=>d.current,scheduleRetry:(_,L)=>f.current.schedule(h.id,"recovery-retry",_,L),onDecision:({decision:_,line:L})=>{var F;const P={lineId:be(L),lineName:Se(L),lineMode:L.resolve_mode==="parse"?"parse":"direct",retryIndex:_.attempt,retryLimit:_.retryLimit,canSwitch:et(y,L),errorMessage:(F=_.issue)==null?void 0:F.details};if(_.type==="retry_current"){f.current.transition(h.id,"retrying",P);return}if(_.type==="switch_line"){f.current.transition(h.id,"switching",P);return}_.type==="confirm_failure"&&f.current.transition(h.id,"failed",P)},retryLine:(_,L,P)=>E(_,`auto_retry_${L}`,{automatic:!0,retryAttempt:P,selectionMode:y.lineSelectionMode}
25),switchToLine:(_,L)=>E(_,L,{automatic:!0,selectionMode:"auto"}),emitRuntimeMessage:n,setError:_=>{if(c.kind==="hls_fatal"||!i(y)){e(),o(),k(_);const L=f.current.current();L&&f.current.transition(L.id,"failed",{lineId:be(y.line),lineName:Se(y.line),lineMode:y.line.resolve_mode==="parse"?"parse":"direct",canSwitch:et(y,y.line),errorMessage:_})}},scheduleMediaRecoveryTimeout:(_,L,P)=>{g(h.id,y,_,L,P)},reserveAutoLineSwitch:()=>u(y)}))}return{handlePlaybackIssue:m}}function lc(e){return e instanceof ot&&e.detail==="playback_line_level_required"}function dc({beginPlaybackAttempt:e,clearPendingLineSwitchLoading:t,forceClearFrameLoading:n,handlePlaybackIssue:r,isPlaybackOperationCurrent:o,keepResolvedParseOverlayUntilPlayable:i,localPlaybackSuspendedRef:s,pendingLineSwitchRef:a,playbackAttemptManagerRef:f,refreshPanels:u,resetAutoSwitchGuard:d,runtimeRef:g,schedulePlaybackStartTimeout:k,setError:E,setSwitchingLineId:m,settleSuspendedRuntime:c,showFrameLoading:l,waitForTokenQuotaFallback:y}){async function b(p,h,T={}){var J;const S=g.current;if(!S)return!1;const A=Fa((J=S.engine.video())==null?void 0:J.currentTime,S.confirmedPlaybackPosition),_=T.retryAttempt,L=T.automatic||!!_,P={allowBeforeSourceAttach:!0,allowDuringRecovery:!!_},F=(_==null?void 0:_.refreshResolution)??!_,R=T.selectionMode??S.lineSelectionMode,W=be(p);F&&Mt(p);let v,B=!1,V;T.automatic||d(S);const j=Fe(p),D=e(h,{lineId:W,lineName:Se(p),lineMode:p.resolve_mode==="parse"?"parse":"direct",phase:_?"retrying":j?"resolving":"loading",retryIndex:_==null?void 0:_.index,retryLimit:_==null?void 0:_.limit,canSwitch:et(S,p),overlayMode:L?"blocking":"seamless"});a.current=!0,m(W),E("");const q=Se(p);if(l(T.recoveryNotice??(j?`正在解析 ${q}`:"正在切换播放线路"),j?"高清 · 流畅 · 不卡顿":q,0),v=S.lineRuntime.switchTo(p),!v)return t(),!1;F&&Mt(v),Be(S),V=S.engine.beginLineTransition(Ea(v,{recovering:L})),S.confirmedPlaybackPosition=A,S.line=v,S.lineSelectionMode=R,S.lineStateMachine.beginLine(v,h),Object.assign(S.payload,{playback_source_id:v.playback_source_id,provider_id:v.provider_id,play_from:v.play_from,url:v.url,url_kind:v.url_kind,line_options:S.lineRuntime.lines}),u();try{const w=await S.engine.playLine(v,{autoplay:!s.current,position:A,signal:D.signal,onSourceAttached:()=>{if(!o(D.id,S))throw new DOMException("播放操作已取消","AbortError");const N=f.current.current();if(!N||N.id!==D.id||N.lineId!==W)throw new DOMException("播放操作已取消","AbortError");if(f.current.transition(D.id,"awaiting_playback",{lineId:W,lineName:Se(v),lineMode:v.resolve_mode==="parse"?"parse":"direct",canSwitch:et(S,v)}),Object.assign(S.payload,{url:v.url,url_kind:v.url_kind}),i(v),s.current){Be(S);return}k(D.id,S,v,h)}});return o(D.id,S)?s.current||w==="blocked"?(c(D.id,S),B=!0,!0):w==="failed"?(t(),await r({line:v,kind:"play_start_failed",reason:`${h}_play_rejected`,canRecoverMedia:!1,payload:{details:"media_play_rejected"}},P),!1):(B=!0,!0):!1}catch(w){if(!o(D.id,S)||Ma(w))return!1;if(lc(w)&&R==="manual")return t(),f.current.transition(D.id,"awaiting_user",{lineId:be(v??p),lineName:Se(v??p),canSwitch:et(S,v??p)}),n(),E("等级不足无法使用此线路"),!1;if(uo(w)&&!!Zr(S.lineRuntime.lines,{excludeIds:[...S.lineRuntime.failedLineIds(),...S.lineStateMachine.confirmedFailedIds(),be(v??p)]}))return t(),f.current.transition(D.id,"awaiting_user",{lineId:be(v??p),lineName:Se(v??p),lineMode:"parse",canSwitch:!0}),n(),E(""),await y(D.signal,w),await r({line:v??p,kind:"line_resolution_failed",reason:"token_quota_exhausted",canRecoverMedia:!1,payload:{httpStatus:w.status,details:w.detail}},P),!1;const N=w instanceof Error?w.message:"切换播放线路失败",I=w instanceof ot?w:void 0,$=((v==null?void 0:v.resolve_mode)==="parse"||(v==null?void 0:v.resolve_required)===!0)&&eo(w);return t(),await r({line:v??p,kind:$?"line_resolution_failed":"play_start_failed",reason:`${h}_play_start_failed`,canRecoverMedia:!1,payload:{details:(I==null?void 0:I.detail)||N,httpStatus:I==null?void 0:I.status,error:{message:N,status:I==null?void 0:I.status}}},P),!1}finally{V!==void 0&&S.engine.endLineTransition(V),o(D.id,S)&&(B||t())}}
25return{switchToLine:b}}async function uc({runtime:e,episode:t,catalogEpisodes:n,reason:r,position:o,resolvedPayload:i,loadEpisodePayload:s=_o,setLoading:a,setError:f,emitRuntimeMessage:u,emitStatus:d,schedulePlaybackStartTimeout:g,onPlaybackIssue:k,onLineSelected:E,onSourceAttached:m,shouldAutoPlay:c,signal:l,isOperationCurrent:y,keepLoadingUntilReady:b=!1}){var _;const p=jn(n??[],t),h=()=>!(l!=null&&l.aborted)&&(y?y():!0);if(Ha({sameEpisode:vo(e.payload,t),resolvedPayload:i})){const L=e.engine.video();return L&&Number(o)>0&&(L.currentTime=Math.max(0,Number(o)||0)),u("episodechange",{episode:e.payload.current_episode??t,reason:r,engine:"artplayer",internal:!0,line_selection_mode:e.lineSelectionMode}),d(crypto.randomUUID()),!0}const T=Math.max(0,Number(o)||0);a(!0),f("");let S,A=!1;try{const L=n!=null&&n.length?n:e.payload.episodes??[],P=await mc({runtime:e,episode:p,resolvedPayload:i,loadEpisodePayload:s,signal:l,isCurrent:h}),F=P.payload;if(!h())return!1;fc(e),e.confirmedPlaybackPosition=T;const R=vc(F.current_episode??p,p),W=po(L,F.episodes,R,{catalogAuthoritative:!!(n!=null&&n.length)});Object.assign(e.payload,F,{current_episode:R,episodes:W,episode_id:F.episode_id||R.episode_id||""}),e.lineRuntime.updateLines(F.line_options??[],{playback_source_id:F.playback_source_id||"",provider_id:F.provider_id||"",play_from:F.play_from||""}),e.lineStateMachine.syncLines(e.lineRuntime.lines);const v=e.lineRuntime.lines.find(V=>V.playback_source_id===P.lineId)??await e.lineRuntime.selectInitialLine()??It(e.lineRuntime.lines,F.playback_source_id);if(!v)throw new ot("本集暂无可自动使用的线路,请重试或选择其他线路");e.lineRuntime.switchTo(v),le("react-frame.episode-line-order",{reason:r,previousSelectionMode:e.lineSelectionMode,requestedLineId:P.lineId,payloadSelectedLineId:F.playback_source_id,responseLines:Wr(F.line_options??[]),runtimeLines:Wr(e.lineRuntime.lines),selectedLineId:v.playback_source_id}),e.lineSelectionMode=P.manualLine&&bo(P.manualLine,v)?"manual":"auto",S=v,E==null||E(v),e.line=v,e.lineStateMachine.beginLine(v,r),Object.assign(e.payload,{playback_source_id:v.playback_source_id,provider_id:v.provider_id,play_from:v.play_from,url:v.url,url_kind:v.url_kind,line_options:e.lineRuntime.lines}),A=!0;const B=await e.engine.playLine(v,{autoplay:(c==null?void 0:c())??!0,position:T,signal:l,onSourceAttached:V=>{m==null||m(V),g==null||g(V,r)}});if(!h())return!1;if(B==="failed")throw new Error("media_play_rejected");return P.manualRouteUnavailable&&Jt(e.engine.art,"本集原线路不可用,已为您自动换线"),b||a(!1),u("episodechange",{episode:e.payload.current_episode??t,reason:r,engine:"artplayer",internal:!0,line_selection_mode:e.lineSelectionMode}),u("episodeschange",{current_episode:e.payload.current_episode??null,episode_count:((_=e.payload.episodes)==null?void 0:_.length)??0,engine:"artplayer"}),d(crypto.randomUUID()),!0}
25catch(L){if(!h()||pc(L))return!1;const P=L instanceof Error?L.message:"切换选集失败";return A&&S&&k?(await k({line:S,kind:"play_start_failed",reason:`${r}_play_start_failed`,canRecoverMedia:!1,payload:{details:P,error:{message:P}}}),!1):(a(!1),f(P),u("playererror",{reason:r,error:{message:P}}),u("playbackfailed",{reason:r,message:P,error:{message:P}}),!1)}}function fc(e){const t=e.line;e.lineRuntime.updateLines(e.lineRuntime.lines,{playback_source_id:t.playback_source_id,provider_id:t.provider_id,play_from:t.play_from,source_vod_id:t.source_vod_id})}async function mc(e){var f;const t=e.runtime.lineSelectionMode==="manual"?e.runtime.line:void 0,n=e.resolvedPayload??await e.loadEpisodePayload({episode:e.episode,payload:e.runtime.payload,activeLine:e.runtime.line,line:t,lineSelectionMode:t?"manual":"auto",signal:e.signal});if(!e.isCurrent())throw new Error("播放操作已失效");const r=t?(f=n.line_options)==null?void 0:f.find(u=>bo(u,t)):void 0,o=!!(t&&!r);if(o&&vo(e.runtime.payload,e.episode))throw new ot("所选线路在本集暂不可用,请选择其他线路");const i=n.line_options??[],s=new Set(e.runtime.lineRuntime.automaticBlockedLineIds(i)),a=o?i.find(u=>u.playback_source_id&&u.url&&!s.has(u.playback_source_id)&&u.probe_status!=="failed"):r??yc(n)??i[0];if(o&&!a)throw new ot("本集暂无可自动使用的线路,请重试或选择其他线路");return{payload:n,lineId:(a==null?void 0:a.playback_source_id)||n.playback_source_id||e.runtime.line.playback_source_id,manualLine:r,manualRouteUnavailable:o}}function yc(e){var t,n;return((t=e.line_options)==null?void 0:t.find(r=>r.playback_source_id===e.playback_source_id))??((n=e.line_options)==null?void 0:n.find(r=>r.selected))}function Wr(e){return e.map((t,n)=>({index:n,id:t.playback_source_id,providerId:t.provider_id,playFrom:t.play_from,selected:t.selected===!0,defaultPriority:t.default_priority===!0,preferenceWeight:t.preference_weight,resolveMode:t.resolve_mode,probeStatus:t.probe_status}))}function bo(e,t){return e.playback_source_id&&e.playback_source_id===t.playback_source_id?!0:!e.provider_id||!t.provider_id||!e.play_from||!t.play_from||e.provider_id!==t.provider_id||e.play_from!==t.play_from?!1:!e.source_vod_id||!t.source_vod_id||e.source_vod_id===t.source_vod_id}function pc(e){return e instanceof Error&&e.name==="AbortError"}function vc(e,t){const n=$n(t),r=Kn(t,e);return{...t,...e,selected:!0,...r,display_name:r.display_name||Dn(t)||Dn(e),...n}}const _c=12e3,bc=new Set(["resolving","loading","awaiting_playback"]);function hc(e,t,n=_c){return e.schedule(t,"episode-overlay-timeout",n,()=>gc(e,t))}function gc(e,t){const n=e.current();return!n||n.id!==t||!bc.has(n.phase)?!1:e.transition(t,n.phase,{overlayMode:"blocking"})}function kc({beginEpisodeLineTransition:e,beginPlaybackAttempt:t,clearPendingEpisodeSwitchLoading:n,catalogEpisodesRef:r,emitRuntimeMessage:o,emitStatus:i,finishPendingEpisodeLineTransition:s,handlePlaybackIssue:a,hasNextEpisodeRef:f,isPlaybackOperationCurrent:u,keepResolvedParseOverlayUntilPlayable:d,localPlaybackSuspendedRef:g,mountRef:k,onSourceReady:E,onNextEpisodeRef:m,pendingEpisodeLineContextKeyRef:c,pendingEpisodeRetryRef:l,pendingEpisodeSwitchRef:y,playbackAttemptManagerRef:b,refreshPanels:p,runtimeRef:h,schedulePlaybackStartTimeout:T,setError:S,setLoading:A,setSwitchingEpisodeId:_,settleSuspendedRuntime:L,showFrameLoading:P,skipRuntime:F,takePrewarmedPayload:R}){async function W(D,q,J={}){var Ee;const w=h.current;if(!w)return!1;const N=jn(r.current,D),I=yt(N),$=w.payload.current_episode&&I===yt(w.payload.current_episode);if(!$&&y.current&&c.current===I)return le("react-frame.episode-switch.join-pending",{episodeId:I,reason:q}),!1;le("react-frame.episode-switch.start",{episodeId:I,reason:q,sameEpisode:!!$});const _e=w.line.resolve_mode==="parse"?"parse":"direct",z=t(q,{episodeId:I,lineId:be(w.line),lineName:Se(w.line),lineMode:_e,phase:_e==="parse"?"resolving":"loading",canSwitch:et(w,w.line),overlayMode:"seamless"});hc(b.current,z.id);const de=w.engine.video(),ce=!$&&de?F.preparePlayback({episodeKey:I,episodeTrack:N.episode_track,position:J.position,video:de}):J.position;let ue;if(!$){l.current={episode:N,...ce===void 0?{}:{position:ce}}
25,y.current=!0,c.current=I,e(I,N),_(I);const ie=La(N);P(ie,""),Be(w),ue=w.engine.beginEpisodeTransition(ie)}try{const ie=J.resolvedPayload??await R(N,z.signal),he=await uc({runtime:w,episode:N,catalogEpisodes:r.current,reason:q,resolvedPayload:ie,position:ce,signal:z.signal,isOperationCurrent:()=>u(z.id,w),setLoading:A,setError:S,emitRuntimeMessage:o,emitStatus:i,schedulePlaybackStartTimeout:(U,Te)=>T(z.id,w,U,Te),onPlaybackIssue:U=>a(U,{allowBeforeSourceAttach:!0}),onLineSelected:U=>{var Q;const Te=(Q=l.current)==null?void 0:Q.episode;Te&&yt(Te)===I&&(l.current=null),w.confirmedPlaybackPosition=Yt(ce),s(I);const oe=Fe(U);b.current.transition(z.id,oe?"resolving":"loading",{lineId:be(U),lineName:Se(U),lineMode:U.resolve_mode==="parse"?"parse":"direct",canSwitch:et(w,U)})},onSourceAttached:U=>{b.current.transition(z.id,"awaiting_playback",{lineId:be(U),lineName:Se(U),lineMode:U.resolve_mode==="parse"?"parse":"direct",canSwitch:et(w,U)}),d(U),E(ce),g.current&&Be(w)},shouldAutoPlay:()=>!g.current,keepLoadingUntilReady:!0});if(!u(z.id,w))return!1;if(g.current&&L(z.id,w),he)l.current=null,p(),j();else{const U=(Ee=l.current)==null?void 0:Ee.episode;U&&yt(U)===I&&b.current.transition(z.id,"failed",{canSwitch:!1}),n()}return he}finally{ue!==void 0&&w.engine.endEpisodeTransition(ue),u(z.id,w)&&($||s(I),$&&n())}}async function v(D,q){return W(D,q)}function B(){const D=h.current,q=D?it(D.payload):null;if(!q){if(D&&Fr(r.current,D.payload.current_episode)){Jt(D.engine.art,"没有更多剧集"),j();return}if(f.current&&m.current){D&&(P("正在加载","正在准备播放"),Be(D),D.engine.beginEpisodeTransition("正在加载")),m.current();return}o("next");return}o("next",{episode:q,engine:"artplayer",reason:"manual_next_episode"}),W(q,"manual_next_episode")}function V(){const D=h.current;return D&&Fr(r.current,D.payload.current_episode)?!1:!!(D&&it(D.payload)||f.current)}function j(){Gs(k.current,V())}return{hasRuntimeNextEpisode:V,selectNextEpisode:B,selectPanelEpisode:v,switchToEpisode:W,syncNextEpisodeControl:j}}function wc(e){const t=()=>{const o=e.pendingEpisodeRetryRef.current;return o?(e.switchToEpisode(o.episode,"manual_retry_episode",{...o.position===void 0?{}:{position:o.position}}),!0):!1};return{retry:()=>{t()||e.retryCurrentLine()||(e.clearStartupLineExclusions(),e.setRetryNonce(o=>o+1))},retryOrSwitchNow:()=>{t()||e.switchPlaybackImmediately()}}}function Sc(e,t,n){x.useLayoutEffect(()=>{var o;const r=(o=e.current)==null?void 0:o.closest(".global-player-host, .movie-player-experience");if(r)return()=>{delete r.dataset.playerControlsVisible,delete r.dataset.playerDetailsCollapsed}},[e]),x.useLayoutEffect(()=>{var o;const r=(o=e.current)==null?void 0:o.closest(".global-player-host, .movie-player-experience");r&&(r.dataset.playerControlsVisible=String(t),r.dataset.playerDetailsCollapsed=String(n))},[e,t,n])}function Ec({notice:e,onAction:t}){return e?ve.jsxs("div",{className:"react-player-skip-notice","data-kind":e.kind,role:"status","aria-live":"polite",onPointerDown:n=>n.stopPropagation(),onClick:n=>n.stopPropagation(),children:[ve.jsx("strong",{children:e.title}),e.actionLabel?ve.jsx("button",{type:"button",onClick:t,children:e.actionLabel}):null]}):null}function Pc({collapsed:e,controlsVisible:t,onToggle:n}){return ve.jsx("button",{type:"button",className:"react-player-sidebar-toggle","data-controls-visible":t?"true":"false","data-sidebar-collapsed":e?"true":"false",onClick:n,"aria-label":e?"展开播放详情":"收起播放详情",title:e?"展开详情":"收起详情",children:ve.jsx(ns,{"aria-hidden":"true"})})}function Lc({fillHeight:e,playerOverlayHost:t,loadingProps:n,localPlaybackSuspended:r,mountRef:o,panelsProps:i,sidebarToggleProps:s,skipNoticeProps:a,tokenQuotaProps:f}){const u=n.attempt,d=u?u.overlayMode==="blocking"&&u.phase!=="playing"&&u.phase!=="awaiting_user"&&!(u.reason==="initial_play"&&u.phase==="awaiting_playback"):n.loading||!!n.error,g=d&&(u==null?void 0:u.reason)==="initial_play",k=!!(u&&u.phase!=="playing"&&u.phase!=="awaiting_user"&&u.phase!=="failed"),E=i.controlsVisible||!!i.activePanel||k||!!n.error||d;Sc(o,E,(s==null?void 0:s.collapsed)===!0);const m=ve.jsxs(ve.Fragment,{children:[ve.jsx(Ci,{...n}),f?ve.jsx(zi,{...f}):null,ve.jsx(Ec,{...a}),ve.jsx(Di,{...i,controlsVisible:E}),s?ve.jsx(Pc,{...s}):null]});return ve.jsx("div",{"data-controls-visible":E?"true":"false",className:gr("react-player
25-frame relative flex max-w-full flex-col overflow-hidden rounded-none bg-black",e?"w-full lg:h-full lg:min-h-[16rem]":"w-full"),children:ve.jsxs("div",{"data-player-busy":k||d||n.error?"true":void 0,"data-player-loading-backdrop":g?"true":void 0,className:gr("react-player-frame-stage relative min-h-0 w-full max-w-full overflow-hidden bg-black",e?"aspect-video lg:flex-1 lg:aspect-auto":"aspect-video"),children:[ve.jsx("div",{ref:o,className:"react-player-frame-mount h-full w-full max-w-full bg-black","data-local-playback-suspended":r?"true":void 0}),t?ti.createPortal(m,t):m]})})}function Mc(e){const t=Number(e.get("t"));if(!(!Number.isFinite(t)||t<=0))return Math.floor(t)}async function xc(e,t){return e.kind==="direct"?mi(e.value):Jr({token:e.value,signal:t,...e.selection===void 0?{}:{selection:e.selection}})}function Tc(e,t=window.location.origin){if(e)try{const n=new URL(e,t),r=n.searchParams.get("url")||e,o=ui(n.searchParams),i=Mc(n.searchParams);return/^https?:\/\//iu.test(r)?{kind:"direct",value:r,...i===void 0?{}:{resumePosition:i}}:{kind:"token",value:fi(r),...i===void 0?{}:{resumePosition:i},selection:o}}catch{return}}function Ic({title:e}){return ve.jsxs("div",{className:"flex aspect-video w-full flex-col items-center justify-center rounded-md bg-black px-6 text-center text-[#fff]",children:[ve.jsx("div",{className:"text-sm font-medium",children:"暂时无法直接播放"}),ve.jsxs("div",{className:"mt-2 max-w-sm text-xs leading-5 text-[rgba(255,255,255,0.52)]",children:["《",e,"》这条资源还没有可用播放线路。你可以返回结果列表换一条,或反馈给我们补充片源。"]})]})}function Rc({closeActivePanel:e,emitStatus:t,emitRuntimeMessage:n,mountRef:r,localPlaybackSuspendedRef:o,openActivePanel:i,ref:s,runtimeRef:a,readDanmakuVisibility:f,retryCurrentLine:u,selectPanelEpisode:d,selectPanelLine:g,switchNextLine:k,toggleDanmaku:E,switchToEpisode:m}){x.useImperativeHandle(s,()=>({changeEpisode(c){const l=a.current,y=l?Xt(l.payload,c):null;return y?(m(y,"parent_episode_change",{position:Math.max(0,Number(c.position)||0),resolvedPayload:c.resolvedPayload}),!0):!1},openPanel(c){i(c)},retryCurrentLine:u,switchNextLine:k,seek(c){var y;const l=(y=a.current)==null?void 0:y.engine.video();l&&(l.currentTime=Math.max(0,Number(c)||0))},seekRelative(c){var y;const l=(y=a.current)==null?void 0:y.engine.video();l&&(l.currentTime=Math.max(0,l.currentTime+(Number(c)||0)))},adjustVolume(c){var y;const l=(y=a.current)==null?void 0:y.engine.video();l&&(l.volume=Math.min(1,Math.max(0,l.volume+(Number(c)||0))),l.volume>0&&l.muted&&(l.muted=!1))},readPlaybackClock(){var l;const c=(l=a.current)==null?void 0:l.engine.video();if(c)return{position:Vr(c.currentTime),duration:Vr(c.duration),paused:c.paused,ended:c.ended,rate:Number.isFinite(c.playbackRate)?c.playbackRate:1}},readVideoPresentation(){var b;const c=(b=a.current)==null?void 0:b.engine.video(),l=(c==null?void 0:c.videoWidth)??0,y=(c==null?void 0:c.videoHeight)??0;if(!(l<=0||y<=0))return{width:l,height:y,orientation:y>l?"portrait":"landscape"}},next(){const c=a.current,l=c?it(c.payload):null;l?(n("next",{episode:l,engine:"artplayer"}),m(l,"next_episode")):n("next")},previous(){const c=a.current,l=c?Ba(c.payload):null;l?(n("previous",{episode:l,engine:"artplayer"}),m(l,"previous_episode")):n("previous")},pause(){var c,l;(l=(c=a.current)==null?void 0:c.engine.video())==null||l.pause()},resume(){var c,l;(l=(c=a.current)==null?void 0:c.engine.video())==null||l.play().catch(()=>{})},setLocalPlaybackSuspended(c){var l,y;o.current=c,c&&((y=(l=a.current)==null?void 0:l.engine.video())==null||y.pause())},ownsKeyboardShortcuts(){var c;return((c=a.current)==null?void 0:c.engine.art.isFocus)===!0},setPlaybackRate(c){var b;const l=(b=a.current)==null?void 0:b.engine.video();if(!l)return;const y=Number(c);!Number.isFinite(y)||y<.25||y>2||(l.playbackRate=y)},readDanmakuVisibility:f,toggleDanmaku:E,async togglePictureInPicture(){var l;const c=(l=a.current)==null?void 0:l.engine.video();if(!c||typeof document>"u")return!1;try{return document.pictureInPictureElement===c?(typeof document.exitPictureInPicture=="function"&&await document.exitPictureInPicture(),!1):!document.pictureInPictureEnabled||typeof c.requestPictureInPicture!="function"?!1:(await c.requestPictureInPicture(),document.pictureInPictureElement===c)}catch{return!1}},enterFullscreen(){var l;const c=(l=a.current)==null?void 0:l.engine.art;return c?(Ut(c)||(c.fullscreen=!0),!0):!1},openFullscreenSettings(){var c;return Ut((c=a.current)==null?void 0:c.engine.art,!0)},currentPlaybackSource(){const c=a.current,l=c==null?void 0:c.line;return l?wn(l,!0,"active-native-line",c.lineSelectionMode):void 0},async prepareExternalPlaybackSource(){var y,b,p;const c=(y=a.current)==null?void 0:y.line;if(!c||Fe(c)&&!await g(c,"external_playback"))return;const l=(b=a.current)==null?void 0:b.line;if(!(!l||Fe(l)))return wn(l,!0,"active-native-line",(p=a.current)==null?void 0:p.lineSelectionMode)},currentPlaybackSources(){const c=a.current;return c?c.lineRuntime.lines.flatMap((l,y)=>{var p;const b=wn(l,l===c.line||l.playback_source_id===((p=c.line)==null?void 0:p.playback_source_id),`native-line-${y+1}`,c.lineSelectionMode);return b?[b]:[]}):[]},requestStatus(){const c=crypto.randomUUID();return t(c),c},closePanel(c){e(c)},selectPanelItem(c,l){const y=a.current;if(y){if(c==="line"){const b=y.lineRuntime.lines.find(p=>p.playback_source_id===l.id||p.play_from===l.id||p.provider_id===l.id);b&&g(b,"manual_parent");return}if(c==="episode"){const b=Xt(y.payload,{...l.id===void 0?{}:{id:l.id},...l.token===void 0?{}:{token:l.token}});b&&d(b,"parent_panel_episode")}}}}),[e,t,n,o,r,i,s,f,a,u,d,g,k,E,m])}function wn(e,t,n="active-native-line",r){var s;const o=(s=e.url)==null?void 0:s.trim();if(!o)return;const i=Fe(e);return{url:o,lineId:e.playback_source_id||e.play_from||e.provider_id||n,...e.provider_id?{providerId:e.provider_id}:{},...e.play_from?{playFrom:e.play_from}:{},...e.source_vod_id?{sourceVodId:e.source_vod_id}:{},...r?{selectionMode:r}:{},label:e.display_label||e.label||e.provider_name||"当前线路",...e.url_kind?{urlKind:e.url_kind}:{},...e.headers?{headers:e.headers}:{},...e.userAgent?{userAgent:e.userAgent}:{},...e.mimeType?{mimeType:e.mimeType}:{},...e.provider_name?{providerName:e.provider_name}:{},...e.latency_ms===void 0?{}:{latencyMs:e.latency_ms},...e.probe_status?{probeStatus:e.probe_status}:{},...e.resolve_mode?{resolveMode:e.resolve_mode}:{},...e.resolve_ticket?{resolveTicket:e.resolve_ticket}:{},resolved:!i,requiresResolution:i,...e.expires_at===void 0?{}:{expiresAt:e.expires_at},...e.resolved_at===void 0?{}:{resolvedAt:e.resolved_at},selected:t}}function Vr(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,e):0}function Hr(e,t){return t.type==="close"?null:t.type==="open"?t.panel:e===t.panel?null:t.panel}function Ac({emitRuntimeMessage:e,hostEpisodes:t=[],runtimeRef:n}){const r=x.useRef(t);r.current=t;const o=x.useRef({}),i=x.useCallback(()=>{var A;const h=(A=n.current)==null?void 0:A.payload;if(!h)return;const T=o.current,S=r.current;T.payload===h&&T.episode===h.current_episode&&T.catalog===S||(qa(h,S),o.current={payload:h,episode:h.current_episode,catalog:S})},[n]);x.useEffect(i,[t,i]);
25const[s,a]=x.useState(null),[f,u]=x.useState(0),[d,g]=x.useState(null),k=x.useRef(null),E=x.useMemo(()=>{var A;const h=n.current,T=!!d,S=(A=h==null?void 0:h.payload.episodes)!=null&&A.length?h.payload.episodes:h!=null&&h.payload.current_episode?[h.payload.current_episode]:[];return{currentEpisode:(d==null?void 0:d.episode)??(h==null?void 0:h.payload.current_episode)??null,currentLine:T?null:(h==null?void 0:h.line)??null,lineSelectionMode:T?"auto":(h==null?void 0:h.lineSelectionMode)??"auto",episodes:Nc(S,t,h==null?void 0:h.payload.current_episode),lines:T?[]:(h==null?void 0:h.lineRuntime.lines)??[],linesLoading:T}},[t,f,d,n]);x.useEffect(()=>{k.current=s},[s]);function m(){i(),u(h=>(h+1)%1e6)}function c(h,T){g({episodeKey:h,episode:T})}function l(h){g(T=>(T==null?void 0:T.episodeKey)===h?null:T)}function y(h){const T=Hr(k.current,{type:"open",panel:h});T!==k.current&&(k.current=T,a(T),e("playerpanelopen",{panel:h}))}function b(h){const T=k.current,S=Hr(T,{type:"toggle",panel:h});k.current=S,a(S),e(S?"playerpanelopen":"playerpanelclose",{panel:h})}function p(h){const T=h??k.current;k.current&&(k.current=null,a(null),e("playerpanelclose",{panel:T??""}))}return{activePanel:s,beginEpisodeLineTransition:c,closeActivePanel:p,finishEpisodeLineTransition:l,openPanel:y,panelState:E,refreshPanels:m,togglePanel:b}}function Nc(e,t,n){return t.length<2?e:!n||t.some(r=>Fc(r,n))?t:[n,...t]}function Fc(e,t){return!!(e.token&&e.token===t.token||e.episode_id&&e.episode_id===t.episode_id||e.id&&e.id===t.id)}const Cc=4500;function Dc({settings:e,onAdvance:t,resumePosition:n}){const r=x.useRef(e),o=x.useRef(t),i=x.useRef(mr()),s=x.useRef({episodeKey:"",settingsKey:""}),a=x.useRef(""),f=x.useRef(null),u=x.useRef(void 0),d=x.useRef(mt(n)),g=x.useRef(d.current>0),[k,E]=x.useState(null);x.useEffect(()=>{r.current=e},[e]),x.useEffect(()=>{o.current=t},[t]);const m=x.useCallback(()=>{u.current!==void 0&&(window.clearTimeout(u.current),u.current=void 0)},[]),c=x.useCallback(()=>{m(),E(null)},[m]),l=x.useCallback(A=>{m(),E(A),u.current=window.setTimeout(()=>{u.current=void 0,E(null)},Cc)},[m]);x.useEffect(()=>{const A=mt(n);d.current=A,g.current=A>0,c()},[c,n]),x.useEffect(()=>{e||(i.current=mr(),c())},[c,e]),x.useEffect(()=>()=>{m()},[m]);const y=x.useCallback(()=>{l({kind:"intro-skipped",title:yi,actionLabel:"返回"})},[l]),b=x.useCallback(({episodeKey:A,episodeTrack:_,position:L,video:P})=>{f.current=P;const F=mt(L),R=r.current,W=R?yr(R):"",v=Mn(R,F,{episodeTrack:_,durationSeconds:0});return s.current={episodeKey:A,settingsKey:W,episodeTrack:_,settings:R},a.current=v.skippedIntro?A:"",i.current={episodeKey:A,settingsKey:W,intro:v.skippedIntro?"skipped":R&&_==="main"&&F<R.introEndSeconds-.25?"pending":"suppressed",outro:"pending",introCountdownStartedAt:null,outroCountdownStartedAt:null,warningSecond:null},v.position},[]),p=x.useCallback(()=>i.current.intro==="pending",[]),h=x.useCallback(A=>{const _=s.current,L=i.current;
25if(L.episodeKey!==_.episodeKey||L.intro!=="pending")return A.position;const P=Mn(_.settings,A.position,{episodeTrack:_.episodeTrack,durationSeconds:A.durationSeconds});return L.intro=P.skippedIntro?"skipped":"suppressed",a.current=P.skippedIntro?_.episodeKey:"",P.position},[]),T=x.useCallback(A=>{const _=r.current,{video:L}=A;if(f.current=L,L.paused||L.ended||s.current.episodeKey&&s.current.episodeKey!==A.episodeKey)return;const P=mt(L.currentTime),F=mt(L.duration)||(_==null?void 0:_.durationSeconds)||0;if(A.episodeTrack!=="main"&&i.current.intro!=="suppressed"&&(i.current.intro="suppressed",i.current.introCountdownStartedAt=null,a.current="",c()),_){const V=yr(_),j=i.current;if(j.episodeKey!==A.episodeKey||j.settingsKey!==V){const D=_.introEndSeconds>0&&P>=_.introEndSeconds-.25,q=s.current.episodeKey===A.episodeKey&&s.current.settingsKey===V;i.current={episodeKey:A.episodeKey,settingsKey:V,intro:A.episodeTrack!=="main"||D||!q?"suppressed":"pending",outro:"pending",introCountdownStartedAt:null,outroCountdownStartedAt:null,warningSecond:null},c()}}if(a.current===A.episodeKey&&(a.current="",y()),g.current){const V=d.current;V<=0?g.current=!1:P>=Math.max(.1,V-2)&&(g.current=!1,l({kind:"resume-restored",title:`上次看到 ${Oc(V)}`}))}if(!_)return;const R=i.current,W=R.intro==="pending"||R.intro==="counting"?pi(_,P,{episodeTrack:A.episodeTrack,durationSeconds:F}):void 0;if(W!==void 0){R.intro="skipped",R.introCountdownStartedAt=null,R.warningSecond=null,L.currentTime=W,y();return}if(R.intro==="counting"&&(R.intro=P>=_.introEndSeconds-.25?"suppressed":"pending",R.introCountdownStartedAt=null,R.warningSecond=null,c()),!A.canAdvance||A.episodeTrack!=="main")return;const v=vi(_,F);if(v<=0||R.outro==="suppressed"||R.outro==="triggered")return;if(P<v){R.outro==="counting"&&(R.outro="pending",R.outroCountdownStartedAt=null),R.warningSecond!==null&&(R.warningSecond=null,c());return}R.outro==="pending"&&(R.outro="counting",R.outroCountdownStartedAt=P,R.warningSecond=null),(R.outroCountdownStartedAt===null||P+.25<R.outroCountdownStartedAt)&&(R.outroCountdownStartedAt=P,R.warningSecond=null);const B=_i({currentPosition:P,duration:F,startedAtPosition:R.outroCountdownStartedAt});if(B.shouldFinishNaturally){R.outro="triggered",R.outroCountdownStartedAt=null,R.warningSecond=null,c();return}if(B.shouldSkip){R.outro="triggered",R.outroCountdownStartedAt=null,R.warningSecond=null,l({kind:"outro-skipped",title:"正在播放下一集"}),o.current();return}B.second===null||R.warningSecond===B.second||(R.warningSecond=B.second,m(),E({kind:"outro-warning",title:`即将为您自动跳过片尾 ${B.second}s`,actionLabel:"保留片尾"}))},[c,m,y,l]),S=x.useCallback(()=>{const A=i.current;if((k==null?void 0:k.kind)==="intro-skipped"){A.intro="suppressed",A.introCountdownStartedAt=null;const _=f.current;_&&(_.currentTime=0)}else(k==null?void 0:k.kind)==="outro-warning"&&(A.outro="suppressed",A.outroCountdownStartedAt=null,A.warningSecond=null);c()},[c,k==null?void 0:k.kind]);return{notice:k,onNoticeAction:S,onProgress:T,preparePlayback:b,resolveStartPosition:h,shouldResolveStartPosition:p}}function Oc(e){const t=Math.max(0,Math.floor(mt(e))),n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n>0?`${n}:${String(r).padStart(2,"0")}:${String(o).padStart(2,"0")}`:`${String(r).padStart(2,"0")}:${String(o).padStart(2,"0")}`}const Wc=200,Vc=18,Hc=.72;function qc(e,t){const n=new Set;return t.flatMap((r,o)=>{const i=r.content.slice(0,Wc).trim();if(!i)return[];const s=`${e}:${r.sourceId??`${r.timeMs}:${o}:${i}`}`;if(n.has(s))return[];n.add(s);const a=Math.min(34,Math.max(12,Math.round(r.fontSize*Hc)));return[{id:s,text:i,time:r.timeMs/1e3,mode:Bc(r.sourceMode),color:$c(r.color),border:r.color!==16777215,...a===Vc?{}:{style:{fontSize:`${a}px`}}}]})}function Bc(e){return e===5?1:e===4?2:0}function $c(e){return`#${Math.min(16777215,Math.max(0,Math.trunc(e))).toString(16).padStart(6,"0").toUpperCase()}`}const Kc=8e3,jc=1024;function qr(e,t,n=Kc){const r=new Map(t),o=[];for(const i of e){const s=zc(i.text),a=Math.max(0,Math.round((i.time??0)*1e3)),f=r.get(s);f!==void 0&&Math.abs(a-f)<n||(r.delete(s),r.set(s,a),o.push(i))}return Uc(r),{items:o,state:r}}function zc(e){return e.normalize("NFKC").trim().toLocaleLowerCase("zh-CN").replace(/\s+/gu,"").replace(/([!!??~~。.,,])\1+/gu,"$1").replace(/(.)\1{3,}/gu,"$1$1$1")}function Uc(e){for(;e.size>jc;){const t=e.keys().next().value;if(typeof t!="string")return;e.delete(t)}}const Gc=512,Yc=720;function Br(e){return e.mobileLikeViewport?e.landscapeViewport&&e.playerWidthPx>=Gc:e.playerWidthPx>=Yc}function Xc(e,t,n){var o;if(n.aborted)return;const r=e instanceof HTMLElement&&typeof ResizeObserver<"u"?new ResizeObserver(t):void 0;r==null||r.observe(e),window.addEventListener("resize",t,{passive:!0,signal:n}),window.addEventListener("orientationchange",t,{passive:!0,signal:n}
25),(o=window.visualViewport)==null||o.addEventListener("resize",t,{passive:!0,signal:n}),n.addEventListener("abort",()=>r==null?void 0:r.disconnect(),{once:!0})}const Qc=360,Jc=720,Zc=390,el=1280,tl=.25,nl=1.35,rl=2.4,ol=4.2,il=.9,sl=2,al=2,cl=3.5,ll=2,dl=4,ul=5,fl=8,ml=1e3;function yl(e){const t=e.mobileLikeViewport?Qc:Jc,n=Ze(e.playerHeightPx,t),r=e.mobileLikeViewport?Zc:el,o=Ze(e.playerWidthPx,r),i=Ze(e.fontSizePx,18),s=Ze(e.speedSeconds,10),a=ft(Ze(e.playbackRate,1),.5,4),f=Ze(e.windowDurationMs,6e4)/1e3,u=ft(Ze(e.displayAreaRatio,tl),.1,1),d=n*u,g=Math.max(1,Math.floor(d/(i*nl))),k=typeof e.rowLimit=="number"&&Number.isFinite(e.rowLimit)?Math.max(0,Math.min(g,Math.floor(e.rowLimit))):g,E=ft(o/r,.72,e.mobileLikeViewport?1.5:1.35),m=e.mobileLikeViewport?rl:ol,c=e.mobileLikeViewport?il:al,l=e.mobileLikeViewport?sl:cl,y=ft(Ze(e.densityScale,1),.6,1.5),p=(k===0?0:ft(k*m*E/s,c,l)*y)/a,h=ft(Math.ceil(p*2),e.mobileLikeViewport?ll:ul,e.mobileLikeViewport?dl:fl),T=Math.ceil(f*p+h);return{items:pl({items:e.items,itemTimeMs:e.itemTimeMs,windowStartMs:ho(e.windowStartMs),windowDurationMs:Math.max(1,Math.round(f*1e3)),itemsPerSecond:p,burstLimit:h}),maxItems:T,laneCount:k,itemsPerSecond:p,burstLimit:h}}function pl(e){if(!e.items.length)return[];const t=new Map,n=e.windowStartMs+e.windowDurationMs,r=e.items.map((a,f)=>({item:a,index:f,timeMs:ho(e.itemTimeMs(a))})).filter(({timeMs:a})=>a>=e.windowStartMs&&a<n).sort((a,f)=>a.timeMs-f.timeMs||a.index-f.index);for(const a of r){const f=Math.floor((a.timeMs-e.windowStartMs)/ml),u=t.get(f);u?u.push(a.item):t.set(f,[a.item])}const o=[];let i=Math.min(e.burstLimit,Math.ceil(e.itemsPerSecond)),s=0;for(const[a,f]of t){const u=Math.max(0,a-s);i=Math.min(e.burstLimit,i+u*e.itemsPerSecond);const d=Math.min(f.length,Math.floor(i));o.push(...vl(f,d)),i-=d,s=a}return o}function vl(e,t){if(t<=0)return[];if(e.length<=t)return[...e];const n=e.length/t;return Array.from({length:t},(r,o)=>e[Math.floor(o*n)])}function Ze(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function ho(e){return Number.isFinite(e)?Math.max(0,e):0}function ft(e,t,n){return Math.min(n,Math.max(t,e))}const _l="ai-movie-player-danmaku-presentation:v1";function bl(){try{return hl(window.localStorage.getItem(_l))}catch{return}}function hl(e){if(e)try{const t=JSON.parse(e);return kl(t)?gl(t):void 0}catch{return}}function gl(e){const t=$r(e.speed,1,10),n=$r(e.opacity,.1,1),r=Sn(e.fontSize,10,72,10,200),o=Array.isArray(e.margin)&&e.margin.length===2?[Sn(e.margin[0],0,1e4,0,100),Sn(e.margin[1],0,1e4,0,100)]:void 0,i=Array.isArray(e.modes)?Array.from(new Set(e.modes.filter(s=>s===0||s===1||s===2))):void 0;if(!(t===void 0||n===void 0||r===void 0||(o==null?void 0:o[0])===void 0||o[1]===void 0||!(i!=null&&i.length)))return{speed:t,margin:[o[0],o[1]],opacity:n,fontSize:r,modes:i}}function Sn(e,t,n,r,o){if(typeof e=="number")return e>=t&&e<=n&&Number.isFinite(e)?e:void 0;if(typeof e!="string"||!e.endsWith("%"))return;const i=Number.parseFloat(e.slice(0,-1));return Number.isFinite(i)&&i>=r&&i<=o?`${i}%`:void 0}function $r(e,t,n){return typeof e=="number"&&Number.isFinite(e)&&e>=t&&e<=n?e:void 0}function kl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const go="ai-movie-player-danmaku-settings:v2";function ko(){return{rowLimit:0,fontSize:18,opacity:1,area:.25,speed:10,density:"normal",fontWeight:"normal",modes:[0,1,2],synchronousPlayback:!1}}function Qt(e){const t=ko(),n=(o,i,s,a)=>typeof o=="number"&&Number.isFinite(o)?Math.max(i,Math.min(s,o)):a,r=typeof e.fontSize=="string"&&e.fontSize.endsWith("%")&&Number.isFinite(Number(e.fontSize.slice(0,-1)))?`${n(Number(e.fontSize.slice(0,-1)),10,200,100)}%`:n(e.fontSize,12,72,t.fontSize);return{rowLimit:Math.round(n(e.rowLimit,0,12,0)),fontSize:r,opacity:n(e.opacity,.1,1,1),area:n(e.area,.1,1,.25),speed:n(e.speed,1,10,10),density:e.density==="calm"||e.density==="more"?e.density:"normal",fontWeight:e.fontWeight==="bold"?"bold":"normal",modes:Array.isArray(e.modes)?[...new Set(e.modes.filter(o=>o===0||o===1||o===2))]:t.modes,synchronousPlayback:e.synchronousPlayback===!0,...wl(e.legacyMargin)?{legacyMargin:e.legacyMargin}:{}}}function wl(e){return Array.isArray(e)&&e.length===2&&e.every(t=>typeof t=="number"?Number.isFinite(t)&&t>=0:typeof t=="string"&&t.endsWith("%")&&Number.isFinite(Number(t.slice(0,-1))))}function Sl(){try{const t=window.localStorage.getItem(go),n=t?JSON.parse(t):null;if(n&&typeof n=="object"&&!Array.isArray(n))return Qt(n)}catch{}const e=bl();return Qt(e?{...e,legacyMargin:e.margin}:{})}function El(e){try{window.localStorage.setItem(go,JSON.stringify(Qt(e)))}catch{}}function Kr(e,t){const n=Number.isFinite(t)&&t>0?t:360,r=d=>typeof d=="number"?d:n*Number.parseFloat(d)/100,o=Math.max(12,Math.min(72,r(e.fontSize))),i=Math.ceil(o*1.35),s=Math.min(n,Math.max(0,e.legacyMargin?r(e.legacyMargin[0]):10)),a=Math.max(0,Math.min(n-s-10,e.legacyMargin?n-s-r(e.legacyMargin[1]):n*e.area)),f=Math.max(0,Math.floor(a/i)),u=e.rowLimit?Math.min(e.rowLimit,f):f;return{rows:u,fontSizePx:o,lineHeight:i,margin:[s,Math.max(0,n-s-u*i)],displayAreaRatio:u*i/n}}function Pl(e){const t=document.createElement("label");t.className="apd-config-slider";const n=document.createElement("span");n.className="apd-label",n.textContent=e.label;const r=document.createElement("input");r.className="apd-slider",r.type="range",r.min=String(e.min),r.max=String(e.max),r.step=String(e.step),r.setAttribute("aria-label",e.label);const o=document.createElement("span");o.className="apd-value";function i(){r.value=String(e.read()),o.textContent=e.format(),r.setAttribute("aria-valuetext",e.format()),r.style.setProperty("--apd-progress",`${(Number(r.value)-e.min)/(e.max-e.min)*100}%`)}return r.addEventListener("input",()=>{e.change(Number(r.value),!1),i()}),r.addEventListener("change",()=>{e.change(Number(r.value),!0),i()}),t.append(n,r,o),e.parent.appendChild(t),i(),{element:t,refresh:i}}function Ll(e){const{player:t,trigger:n,viewport:r}=e,o=(t.right-t.left)/e.clientWidth||1,i=(t.bottom-t.top)/e.clientHeight||1,s=Math.max(t.left,r.left),a=Math.min(t.right,r.right),f=Math.max(t.top,r.top),u=Math.min(t.bottom,r.bottom),d=Math.min(e.panelWidth,Math.max(0,a-s)/o);let g=Math.min(u-8*i,n.top-6*i);g-f<48*i&&(g=u-8*i);const k=Math.max(0,(g-f)/i-8),E=(n.left+n.right-d*o)/2;return{left:(Math.max(s,Math.min(a-d*o,E))-t.left)/o,bottom:Math.max(0,(t.bottom-g)/i),width:d,maxHeight:k,visible:d>=48&&k>=44}}function Ml(e){const t=e.player.querySelector(".apd-config");if(!t)return{refresh(){},destroy(){}};const n=document.createElement("section");
25n.className="apd-config-panel yj-danmaku-settings",n.setAttribute("aria-label","弹幕设置"),n.hidden=!0;const r=document.createElement("div");r.className="apd-config-panel-inner",n.appendChild(r),e.player.appendChild(n),t.setAttribute("aria-expanded","false");const o=document.createElement("header"),i=document.createElement("strong");i.textContent="弹幕设置";const s=En("×",()=>p(!1));s.setAttribute("aria-label","关闭弹幕设置"),o.append(i,s),r.appendChild(o);const a=[];function f(v,B,V,j,D,q,J){const w=Pl({parent:r,label:v,min:B,max:V,step:j,read:D,format:J,change:(N,I)=>e.change(q(N),I)});return a.push(w.refresh),w.element}f("显示行数",0,12,1,()=>e.read().rowLimit,v=>({...e.read(),rowLimit:v}),()=>e.read().rowLimit?`${e.read().rowLimit} 行`:"自动"),f("不透明度",10,100,5,()=>Math.round(e.read().opacity*100),v=>({...e.read(),opacity:v/100}),()=>`${Math.round(e.read().opacity*100)}%`),f("弹幕字号",12,36,2,()=>Number.parseFloat(String(e.read().fontSize)),v=>({...e.read(),fontSize:v}),()=>typeof e.read().fontSize=="number"?`${e.read().fontSize}px`:String(e.read().fontSize));const u=document.createElement("p");r.appendChild(u);const d=document.createElement("details"),g=document.createElement("summary");g.textContent="更多设置",d.appendChild(g),r.appendChild(d);const k=["calm","normal","more"];d.appendChild(f("弹幕密度",0,2,1,()=>k.indexOf(e.read().density),v=>({...e.read(),density:k[v]}),()=>({calm:"少量",normal:"标准",more:"更多"})[e.read().density])),d.appendChild(f("显示区域",25,100,25,()=>e.read().area*100,v=>{const B={...e.read(),area:v/100};return delete B.legacyMargin,B},()=>`${Math.round(e.read().area*100)}%`));const E=[10,8,6,4];d.appendChild(f("弹幕速度",0,3,1,()=>Math.max(0,E.indexOf(e.read().speed)),v=>({...e.read(),speed:E[v]}),()=>({10:"标准",8:"较快",6:"快速",4:"极快"})[e.read().speed]??"自定义"));const m=document.createElement("div");m.className="apd-config-mode";for(const[v,B]of["滚动","顶部","底部"].entries()){const V=En(B,()=>{const j=e.read(),D=v;e.change({...j,modes:j.modes.includes(D)?j.modes.filter(q=>q!==D):[...j.modes,D]},!0)});V.setAttribute("aria-label",`${B}弹幕`),m.appendChild(V),a.push(()=>V.setAttribute("aria-pressed",String(e.read().modes.includes(v))))}d.append(m,En("恢复默认设置",()=>e.change(ko(),!0)));let c=!1,l;function y(){if(n.hidden||!t)return;const v=window.visualViewport,B=(v==null?void 0:v.offsetLeft)??0,V=(v==null?void 0:v.offsetTop)??0,j=Ll({player:e.player.getBoundingClientRect(),trigger:t.getBoundingClientRect(),clientWidth:e.player.clientWidth,clientHeight:e.player.clientHeight,panelWidth:320,viewport:{left:B,top:V,right:B+((v==null?void 0:v.width)??window.innerWidth),bottom:V+((v==null?void 0:v.height)??window.innerHeight)}});n.style.bottom=`${j.bottom}px`,n.style.left=`${j.left}px`,n.style.maxHeight=`${j.maxHeight}px`,n.style.maxWidth=`${j.width}px`,n.style.visibility=j.visible?"":"hidden"}function b(){a.forEach(v=>v()),u.textContent=e.read().rowLimit>e.rows()?`当前空间最多 ${e.rows()} 行,横屏后自动适配`:`当前最多 ${e.rows()} 行 · 滚动与固定弹幕共用`,y()}function p(v){clearTimeout(l),n.hidden=!v,t==null||t.setAttribute("aria-expanded",String(v)),v&&b()}const h=v=>{v.stopPropagation(),c?(c=!1,p(!0)):p(!!n.hidden)},T=()=>{clearTimeout(l),n.hidden&&window.matchMedia("(hover: hover) and (pointer: fine)").matches&&(c=!0,p(!0))},S=()=>{c&&(l=setTimeout(()=>{c=!1,p(!1)},160))},A=v=>{v.key==="Escape"&&!n.hidden&&(v.stopPropagation(),c=!1,p(!1),t==null||t.focus())},_=v=>{!n.contains(v.target)&&!(t!=null&&t.contains(v.target))&&(c=!1,p(!1))},L=v=>v.stopPropagation();t.addEventListener("click",h),t.addEventListener("mouseenter",T),t.addEventListener("mouseleave",S),e.player.addEventListener("keydown",A),document.addEventListener("pointerdown",_),n.addEventListener("mouseenter",()=>clearTimeout(l)),n.addEventListener("mouseleave",S),n.addEventListener("click",L),n.addEventListener("dblclick",L),n.addEventListener("keydown",v=>{A(v),v.stopPropagation()});let P;const F=()=>{!n.hidden&&P===void 0&&(P=requestAnimationFrame(()=>{P=void 0,y()}))}
25,R=window.visualViewport;d.addEventListener("toggle",y),window.addEventListener("resize",F);const W=typeof ResizeObserver>"u"?void 0:new ResizeObserver(F);return W==null||W.observe(e.player),document.addEventListener("scroll",F,!0),R==null||R.addEventListener("resize",F),R==null||R.addEventListener("scroll",F),b(),{refresh:b,destroy(){clearTimeout(l),t.removeEventListener("click",h),t.removeEventListener("mouseenter",T),t.removeEventListener("mouseleave",S),e.player.removeEventListener("keydown",A),document.removeEventListener("pointerdown",_),P!==void 0&&cancelAnimationFrame(P),W==null||W.disconnect(),window.removeEventListener("resize",F),document.removeEventListener("scroll",F,!0),R==null||R.removeEventListener("resize",F),R==null||R.removeEventListener("scroll",F),n.remove()}}}function En(e,t){const n=document.createElement("button");return n.type="button",n.textContent=e,n.addEventListener("click",t),n}function xl(e){let t=Sl(),n=t,r,o,i=Kr(t,e.height()),s,a="",f="";function u(){var l,y;i=Kr(t,((l=e.player())==null?void 0:l.clientHeight)||e.height());const m=[t.opacity,i.fontSizePx,i.lineHeight].join("|");if(m===a)return;a=m;const c=(y=e.player())==null?void 0:y.querySelector(".art-danmuku");c==null||c.querySelectorAll("[data-mode]").forEach(b=>{b.style.opacity=String(t.opacity),b.style.fontSize=`${i.fontSizePx}px`,b.style.lineHeight=`${i.lineHeight}px`,b.style.height=`${i.lineHeight}px`})}function d(){if(!r)return;const m=[i.margin[0],i.margin[1],t.opacity,t.speed,t.modes.join(","),t.synchronousPlayback].join("|");m!==f&&(f=m,r.config({margin:i.margin,opacity:t.opacity,speed:t.speed,modes:t.modes,synchronousPlayback:t.synchronousPlayback,antiOverlap:!0}))}function g(m={}){u(),m.syncRenderer!==!1&&d(),m.refreshPanel!==!1&&(o==null||o.refresh())}function k(){s===void 0&&(s=window.requestAnimationFrame(()=>{s=void 0,g({syncRenderer:!1,refreshPanel:!1})}))}function E(m,c){if(t=Qt(m),!c){k();return}El(t),s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),g({refreshPanel:!1});const l=n.rowLimit!==t.rowLimit||n.area!==t.area||String(n.fontSize)!==String(t.fontSize)||JSON.stringify(n.legacyMargin)!==JSON.stringify(t.legacyMargin),y=n.modes.join(",")!==t.modes.join(",");(l||y)&&(r==null||r.reset()),n=t}return g(),{attach(m){r=m,a="",f="";const c=e.player();c&&(o=Ml({player:c,read:()=>t,rows:()=>i.rows,visible:()=>!m.isHide,toggle:()=>m.isHide?m.show():m.hide(),change:E})),g()},beforeVisible(m){return!i.rows||!t.modes.includes(m.mode??0)?!1:(m.style={...m.style,fontSize:`${i.fontSizePx}px`,lineHeight:`${i.lineHeight}px`,height:`${i.lineHeight}px`,padding:"0",border:"none",fontWeight:t.fontWeight,outline:m.border?"1px solid currentColor":"none"},!0)},budget:()=>({fontSizePx:i.fontSizePx,speedSeconds:t.speed,displayAreaRatio:i.displayAreaRatio,rowLimit:i.rows,densityScale:t.density==="calm"?.6:t.density==="more"?1.5:1}),refresh:()=>g({refreshPanel:!1}),refreshVisibility:()=>o==null?void 0:o.refresh(),destroy(){s!==void 0&&window.cancelAnimationFrame(s),s=void 0,o==null||o.destroy(),r=void 0,o=void 0,a="",f=""}}}const Tl=[2e3,8e3,3e4];function Il(e){const t=e.delaysMs??Tl,n=e.setTimer??globalThis.setTimeout,r=e.clearTimer??globalThis.clearTimeout;let o=0,i=0,s;return{cancel:a,isExhausted(){return o>=t.length&&s===void 0},isPending(){return s!==void 0},reset(){a(),o=0},schedule(f){if(s!==void 0)return{scheduled:!0};const u=t[o];if(u===void 0)return{scheduled:!1};o+=1;const d=i;return s=n(()=>{d===i&&(s=void 0,e.onRetry(f))},u),{delayMs:u,scheduled:!0}}};function a(){i+=1,s!==void 0&&(r(s),s=void 0)}}function Rl(e){return e.storedValue==="true"?!0:e.storedValue!=="false"}const wo="ai-movie-player-danmaku-visible:v2";function Al(e){let t;return{resumeAfterSourceReady:n,reset:r};function n(){const o=e.currentEpisodeId();if(e.circuit.allowAttempt(e.readIdentity(o))){e.resume();return}!o||t||(t=e.refreshIdentity(o).then(i=>{if(!(e.destroyed()||e.currentEpisodeId()!==o||!e.circuit.allowAttempt(i)))return e.resume()}).catch(()=>{}).finally(()=>{t=void 0}))}function r(){t=void 0}}function Nl(){let e="";return{allowAttempt:t,clear:r,open:n};function t(o,i="automatic"){return e?o&&e!==o||i==="manual"?(r(),!0):!1:!0}function n(o){e=o}function r(){e=""}}function jr(e){return e instanceof Error&&e.name==="AbortError"}function xe(e,t,n){var o;const r=(o=e.template)==null?void 0:o.$player;r instanceof HTMLElement&&(r.dataset.danmakuState=t,n?r.dataset.danmakuSegment=n:t!=="active"&&delete r.dataset.danmakuSegment)}function zr(e){return`${e.time??0}:${e.mode??0}:${e.color??""}:${e.text}`}function Fl(){let e=null;try{e=window.localStorage.getItem(wo)}catch{}return Rl({storedValue:e,mobileLikeViewport:Pt()})}function Pn(e){try{window.localStorage.setItem(wo,String(e))}catch{}}function Cl(e){const t=()=>{document.visibilityState==="hidden"?e.suspend():e.active()&&e.resume()},n=()=>{e.active()&&e.resume()};return document.addEventListener("visibilitychange",t,{passive:!0}),window.addEventListener("online",n,{passive:!0}),()=>{document.removeEventListener("visibilitychange",t),window.removeEventListener("online",n)}}function Dl(e){if(e.signal.aborted)return;const t=e.window.toMs+1;e.durationMs!==void 0&&t>=e.durationMs||bi({episodeId:e.window.episodeId,timeMs:t,durationMs:e.durationMs,signal:e.signal}).catch(()=>{})}const Ol=1e3,Wl=10,Ur=18,Vl=4,Hl=12;function ql(e){var $e,ge,Re,At,Ke,_t,bt,Nt;const t=e.art,n=new AbortController,r=xl({player:()=>{var O;return((O=t.template)==null?void 0:O.$player)instanceof HTMLElement?t.template.$player:void 0},height:Ee});
25let o=!1,i=Fl(),s,a,f="",u="",d="",g=0,k=0,E="",m=new Set,c=new Map,l=Number.POSITIVE_INFINITY,y=0,b=0,p="",h=!1,T=!1,S,A=!1,_=!1,L=!1,P,F,R;const W=Nl(),v=Al({circuit:W,currentEpisodeId:()=>{var O;return((O=e.danmuContext())==null?void 0:O.episodeId.trim())??""},readIdentity:pn,refreshIdentity:wi,resume:()=>de().then(()=>U(!0)),destroyed:()=>o}),B=Il({onRetry:O=>{const K=e.danmuContext();o||!T||!i||!s||p!==O||(K==null?void 0:K.episodeId)!==O||U(!0)}});xe(t,"waiting-playback");const V=()=>{var K,X;const O=!i;if(i=!0,Pn(!0),r.refreshVisibility(),O){const ye=((K=e.danmuContext())==null?void 0:K.episodeId.trim())??"";pr(ye),W.clear()}s&&h&&!e.video.paused&&!e.video.ended&&!A&&((X=t.emit)==null||X.call(t,"video:playing")),T&&s&&!f&&!u&&U(!0)},j=()=>{i=!1,Pn(!1),r.refreshVisibility(),se(),oe(),xe(t,"disabled")},D=()=>{A=!0},q=()=>{A=!1},J=()=>{!i||performance.now()-b<Ol||(b=performance.now(),U())},w=()=>{i&&(S=void 0,_=!0,L=!0,oe())},N=()=>{i&&U(!0)},I=()=>{T&&i&&U(!0,!0)},$=()=>{o||F!==void 0||(F=window.requestAnimationFrame(()=>{F=void 0,he()}))},_e=Cl({active:()=>!o&&T&&i,suspend:()=>{se(),oe()},resume:()=>{var O;se(),oe(),s&&h&&!e.video.paused&&!e.video.ended&&!A&&((O=t.emit)==null||O.call(t,"video:playing")),U(!0)}}),z=()=>{if(h=!0,!i){xe(t,"disabled");return}if(!s){de();return}U()};return($e=t.on)==null||$e.call(t,"artplayerPluginDanmuku:show",V),(ge=t.on)==null||ge.call(t,"artplayerPluginDanmuku:hide",j),(Re=t.on)==null||Re.call(t,"artplayerPluginDanmuku:start",D),(At=t.on)==null||At.call(t,"artplayerPluginDanmuku:stop",q),e.video.addEventListener("ratechange",r.refresh),(Ke=t.on)==null||Ke.call(t,"resize",$),(_t=t.on)==null||_t.call(t,"fullscreen",$),(bt=t.on)==null||bt.call(t,"fullscreenWeb",$),Xc((Nt=t.template)==null?void 0:Nt.$player,$,n.signal),e.video.addEventListener("timeupdate",J,{passive:!0}),e.video.addEventListener("seeking",w,{passive:!0}),e.video.addEventListener("seeked",N,{passive:!0}),e.video.addEventListener("loadedmetadata",I,{passive:!0}),e.video.addEventListener("playing",z,{passive:!0}),de(),!e.video.paused&&e.video.readyState>=HTMLMediaElement.HAVE_FUTURE_DATA&&z(),{isVisible(){return i},onSourceReady(O){o||(T=!0,S=Number.isFinite(O)?Math.max(0,Math.round(Number(O)*1e3)):Math.max(0,Math.round(e.video.currentTime*1e3)),oe(),i&&v.resumeAfterSourceReady())},toggle(){var K;const O=!i;if(s)O?s.show():s.hide();else{if(i=O,Pn(O),O){const X=((K=e.danmuContext())==null?void 0:K.episodeId.trim())??"";pr(X),W.clear()}xe(t,O?"waiting-playback":"disabled"),O&&T&&de()}return O},destroy(){var O,K,X,ye,ne,Ie,Z;o||(o=!0,y+=1,F!==void 0&&(window.cancelAnimationFrame(F),F=void 0),se(),W.clear(),v.reset(),n.abort(),xe(t,"destroyed"),e.video.removeEventListener("timeupdate",J),e.video.removeEventListener("seeking",w),e.video.removeEventListener("seeked",N),e.video.removeEventListener("loadedmetadata",I),e.video.removeEventListener("playing",z),_e(),r.destroy(),e.video.removeEventListener("ratechange",r.refresh),(O=t.off)==null||O.call(t,"artplayerPluginDanmuku:show",V),(K=t.off)==null||K.call(t,"artplayerPluginDanmuku:hide",j),(X=t.off)==null||X.call(t,"artplayerPluginDanmuku:start",D),(ye=t.off)==null||ye.call(t,"artplayerPluginDanmuku:stop",q),(ne=t.off)==null||ne.call(t,"resize",$),(Ie=t.off)==null||Ie.call(t,"fullscreen",$),(Z=t.off)==null||Z.call(t,"fullscreenWeb",$))}};function de(){if(o||s)return Promise.resolve();if(a)return a;xe(t,"initializing");const O=ce().catch(me).finally(()=>{a===O&&(a=void 0)});return a=O,O}async function ce(){var K;const{default:O}=await rs(async()=>{const{default:X}=await import("./artplayer-plugin-danmuku-GT80qGsj.js");return{default:X}},[]);if(!o&&(await t.plugins.add(O({danmuku:[],visible:i,antiOverlap:!0,synchronousPlayback:!1,speed:Wl,fontSize:Ur,beforeVisible:r.beforeVisible,emitter:Br({mobileLikeViewport:Pt(),landscapeViewport:ie(),playerWidthPx:ue(),playerHeightPx:Ee(),fullscreen:!!t.fullscreen,fullscreenWeb:!!t.fullscreenWeb}),maxLength:120,lockTime:3,beforeEmit:X=>{const ye=e.danmuContext();return ye?(hi(ye,{text:X.text,timeSeconds:X.time??e.video.currentTime,artPlayerMode:X.mode??0,color:X.color??"#FFFFFF",fontSize:Ur}).catch(ne=>Oe(ne)),!0):(Pe("当前剧集信息未就绪,请稍后再发"),!1)}})),!o)){if(s=t.plugins.artplayerPluginDanmuku,!s)throw new Error("弹幕组件初始化失败");r.attach(s),he(),!e.video.paused&&!e.video.ended&&e.video.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&i&&!A&&((K=t.emit)==null||K.call(t,"video:playing")),i?U(!0):xe(t,"disabled")}}function ue(){var K;const O=(K=t.template)==null?void 0:K.$player;return Math.max(O instanceof HTMLElement?O.clientWidth:0,e.video.clientWidth,typeof t.width=="number"&&Number.isFinite(t.width)?t.width:0)}function Ee(){var K,X;const O=(K=t.template)==null?void 0:K.$player;return Math.max(O instanceof HTMLElement?O.clientHeight:0,e.video.clientHeight,((X=e.video.parentElement)==null?void 0:X.clientHeight)??0,typeof t.height=="number"&&Number.isFinite(t.height)?t.height:0)}function ie(){return window.matchMedia("(orientation: landscape)").matches}function he(){if(!s)return;r.refresh();const O={mobileLikeViewport:Pt(),landscapeViewport:ie(),playerWidthPx:ue(),playerHe
25ightPx:Ee(),fullscreen:!!t.fullscreen,fullscreenWeb:!!t.fullscreenWeb},K=Br(O);K!==R&&(R=K,s.config({emitter:K}),s.mount(s.option.mount))}function U(O=!1,K=!1,X="automatic"){var ne;const ye=((ne=e.danmuContext())==null?void 0:ne.episodeId.trim())??"";W.allowAttempt(pn(ye),X)&&(_=!0,L||(L=O),K&&oe(),!(o||!T||!i||!s||P)&&(P=Te().catch(te).finally(()=>{P=void 0,_&&U()})))}async function Te(){for(;!o&&T&&i&&s&&_;){const O=L;_=!1,L=!1,await Q(O)}}function oe(){u&&(y+=1,u="")}async function Q(O=!1){if(o||!T||!i||!s)return;const K=e.danmuContext();if(!K||(p&&p!==K.episodeId&&se(),B.isPending()))return;const X=S??Math.max(0,Math.round(e.video.currentTime*1e3)),ye=performance.now();if(!O&&d===K.episodeId&&X>=g&&X<k&&ye<l)return;const ne=`${K.episodeId}:${Math.floor(X/6e4)}`;if(ne===u)return;const Ie=++y;u=ne,xe(t,"loading"),f||Pe("正在加载弹幕…");try{const Z=await gi({episodeId:K.episodeId,timeMs:X,durationMs:Number.isFinite(e.video.duration)?Math.round(e.video.duration*1e3):void 0,signal:n.signal});if(o||!i||Ie!==y||u!==ne)return;const Ge=r.budget(),Ft=yl({items:qc(`${Z.source}:${Z.episodeId}`,Z.items),itemTimeMs:ke=>typeof ke.time=="number"&&Number.isFinite(ke.time)?Math.max(0,ke.time*1e3):0,playerWidthPx:ue(),playerHeightPx:Ee(),windowStartMs:Z.fromMs,windowDurationMs:Math.max(1,Z.toMs-Z.fromMs),fontSizePx:Ge.fontSizePx,speedSeconds:Ge.speedSeconds,displayAreaRatio:Ge.displayAreaRatio,rowLimit:Ge.rowLimit,densityScale:Ge.densityScale,playbackRate:e.video.playbackRate,mobileLikeViewport:Pt()}),Ce=Ft.items,ae=new Set,ht=Ce.filter(ke=>{const Ye=zr(ke);return m.has(Ye)||ae.has(Ye)?!1:(ae.add(Ye),!0)});if(E!==""&&E!==Z.episodeId||m.size+ae.size>Ft.maxItems*(Pt()?Vl:Hl)){const ke=qr(Ce,new Map);s.config({danmuku:ke.items}),await s.load(),m=new Set(ke.items.map(zr)),c=ke.state}else{const ke=qr(ht,c);ke.items.length&&await s.load(ke.items);for(const Ye of ae)m.add(Ye);c=ke.state}if(o||Ie!==y)return;E=Z.episodeId,f=`${Z.source}:${Z.episodeId}:${Z.fromMs}:${Z.toMs}`,d=Z.episodeId,g=Z.fromMs,k=Z.toMs,S=void 0,l=Z.retryAfterMs?performance.now()+Z.retryAfterMs:Number.POSITIVE_INFINITY,u="",W.clear(),se(),xe(t,Ce.length?"active":"active-empty",f),Dl({window:Z,durationMs:Number.isFinite(e.video.duration)?Math.round(e.video.duration*1e3):void 0,signal:n.signal})}finally{u===ne&&(u="")}}function te(O){var ye;if(o||jr(O))return;u="",_=!1,L=!1;const K=((ye=e.danmuContext())==null?void 0:ye.episodeId.trim())??"";if(ki(O)||vr(O)){K&&W.open(pn(K)),se(),xe(t,"error"),Pe(vr(O)?"弹幕请求未通过验证,请重新打开播放页":"弹幕数据暂不可用,请稍后重试");return}if(!K||!T||!i||!s){xe(t,"error"),Pe("弹幕暂不可用,请稍后重试");return}if(p&&p!==K&&B.reset(),p=K,B.schedule(K).scheduled){xe(t,"loading"),Pe("弹幕加载遇到波动,正在恢复…");return}xe(t,"error"),Pe("弹幕暂不可用,请稍后重试")}function me(O){o||jr(O)||(xe(t,"error"),Pe("弹幕组件暂不可用,请稍后重试"))}function se(){B.reset(),p=""}function Pe(O){var X;const K=(X=t.notice)==null?void 0:X.show;typeof K=="function"?K(O):t.notice&&(t.notice.show=O)}function Oe(O){const K=os(O,"danmu");K.requiresAccount&&si({intent:"comment"}),Pe(K.message)}}function Bl(){return typeof window<"u"}async function $l(e){var S,A;if(!Yr())return;const t=navigator.connection;if(t!=null&&t.saveData||(t==null?void 0:t.effectiveType)==="slow-2g"||(t==null?void 0:t.effectiveType)==="2g")return;const n=e.episode;if(!n.token)return;let r=Wn(e.startPositionSeconds);le("web-prewarm.resolve.start",{token:n.token,startPositionSeconds:r});const o=await _o({episode:n,payload:e.runtime.payload,activeLine:e.runtime.line,line:e.runtime.line,lineSelectionMode:e.runtime.lineSelectionMode,signal:e.signal});if(le("web-prewarm.resolve.done",{token:n.token,selectedLineId:o.playback_source_id}),e.signal.aborted)return;const i=((S=o.line_options)==null?void 0:S.find(_=>_.playback_source_id===e.runtime.line.playback_source_id))??It(o.line_options??[],o.playback_source_id);if(!i)return;const s=Fe(i);s&&le("web-prewarm.line-resolve.start",{token:n.token,lineId:i.playback_source_id});const a=s?await xn({token:n.token,line:i,billingContext:Fn(o),signal:e.signal}):i;if(s&&le("web-prewarm.line-resolve.done",{token:n.token,lineId:a.playback_source_id,expiresAt:a.expires_at}),e.signal.aborted||!a.url||!Yr())return;const f=({durationSeconds:_})=>e.skipSettings?Mn(e.skipSettings,e.startPositionSeconds,{episodeTrack:n.episode_track,durationSeconds:_}).position:r,u=document.createElement("video");let d,g,k=()=>{},E=()=>{},m=!1,c=!1;const l=()=>{m||(m=!0,g!==void 0&&window.clearTimeout(g),g=void 0,E(),e.signal.removeEventListener("abort",l),k(),k=()=>{},d==null||d.stopLoad(),d==null||d.destroy(),d=void 0,u.pause(),u.removeAttribute("src"),u.load(),u.remove())},y=()=>{c||(c=!0,l())},b=()=>{c||l()};
25u.muted=!0,u.playsInline=!0,u.setAttribute("aria-hidden","true"),u.tabIndex=-1,Object.assign(u.style,{position:"fixed",width:"1px",height:"1px",opacity:"0",visibility:"hidden",pointerEvents:"none"}),document.body.appendChild(u),e.signal.addEventListener("abort",l,{once:!0});const p=Zi((A=e.activeVideo)==null?void 0:A.playbackRate),h=a.url_kind==="m3u8"||/\.m3u8(?:$|[?#])/iu.test(a.url),T=qn(a,{hls:lt});if(u.preload="auto",le("web-prewarm.media.start",{token:n.token,kind:T?"hls.js":h?"native-hls":"mp4",startPositionSeconds:r}),T){d=new lt({autoStartLoad:!1,startFragPrefetch:!1,startPosition:r,enableWorker:!0,backBufferLength:0,maxBufferLength:p,maxMaxBufferLength:60,maxBufferSize:ct.maxBytes});let _=0,L=0,P=0;const F=(v,{frag:B})=>{B.type!=="main"||typeof B.sn!="number"||(_+=1,_>=ct.maxFragments&&(d==null||d.pauseBuffering()))},R=(v,{frag:B})=>{var J;if(B.type!=="main"||typeof B.sn!="number")return;L+=1,P+=((J=B.stats)==null?void 0:J.loaded)??0;const V=Gr(u,r);le("web-prewarm.media.fragment",{token:n.token,bufferedFragments:L,bufferedAhead:V,startPositionSeconds:r});const j=Number.isFinite(u.duration)&&u.duration>r?Math.min(p,u.duration-r):p,D=V+.05>=j,q=_>=ct.maxFragments||P>=ct.maxBytes;!D&&!q||(le(D?"web-prewarm.media.ready":"web-prewarm.media.budget-exhausted",{token:n.token,requestedFragments:_,bufferedFragments:L,bufferedAhead:V,loadedBytes:P,startPositionSeconds:r}),l())};d.on(lt.Events.FRAG_LOADING,F),d.on(lt.Events.FRAG_BUFFERED,R),k=()=>{d==null||d.off(lt.Events.FRAG_LOADING,F),d==null||d.off(lt.Events.FRAG_BUFFERED,R)};const W=io({hls:d,video:u,signal:e.signal,position:r,resolvePosition:f,isCurrent:()=>!e.signal.aborted&&!m,allowed:!e.activeVideo,onPosition:v=>{r=v}});d.loadSource(a.url),e.activeVideo&&(E=hr({media:e.activeVideo,endPosition:e.activeEndPosition,onChange:v=>{le("web-prewarm.media.priority",{allowed:v,token:n.token}),W.setAllowed(v)}})),g=window.setTimeout(()=>{le("web-prewarm.media.timeout",{token:n.token,bufferedFragments:L,startPositionSeconds:r}),l()},ct.lifetimeMs)}else{const _=Math.min(2,p);let L=!1;const P=()=>{L=!0,r=f({durationSeconds:u.duration}),Kl(u,r)},F=()=>{const v=Gr(u,r),B=Wn(u.duration)-r,V=Math.min(_,Math.max(0,B));!L||V<=0||v+.05<V||(le("web-prewarm.media.ready",{token:n.token,bufferedAhead:v,targetSeconds:V,startPositionSeconds:r}),l())};u.addEventListener("loadedmetadata",P),u.addEventListener("progress",F),u.addEventListener("canplay",F),k=()=>{u.removeEventListener("loadedmetadata",P),u.removeEventListener("progress",F),u.removeEventListener("canplay",F)};let R=!1;const W=v=>{m||R===v||(R=v,L=!1,v?(u.src=a.url,u.load()):(u.pause(),u.removeAttribute("src"),u.load()))};e.activeVideo?E=hr({media:e.activeVideo,endPosition:e.activeEndPosition,onChange:W}):W(!0),g=window.setTimeout(()=>{le("web-prewarm.media.timeout",{token:n.token,startPositionSeconds:r}),l()},Math.min(5e3,ct.lifetimeMs))}return{token:n.token,payload:{...o,playback_source_id:a.playback_source_id,provider_id:a.provider_id,play_from:a.play_from,url:a.url,url_kind:a.url_kind,line_options:(o.line_options??[]).map(_=>_.playback_source_id===a.playback_source_id?a:_)},dispose:y,handoff:b,get startPositionSeconds(){return r}}}function Kl(e,t){const n=Wn(e.duration),r=n>0?Math.max(0,n-.25):t,o=Math.min(t,r);if(!(o<=0))try{e.currentTime=o}catch{}}function Gr(e,t){for(let n=0;n<e.buffered.length;n+=1){const r=e.buffered.start(n),o=e.buffered.end(n);if(t>=r-.25&&t<=o+.25)return Math.max(0,o-t)}return 0}function Wn(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,e):0}function Yr(){const e=xt();return e.status==="ready"&&e.platform==="browser"&&!e.hasBridge}const jl=60,zl=2;function Xr(e){return e.lineSelectionMode!=="manual"?"auto":["manual",e.line.provider_id,e.line.play_from,e.line.source_vod_id||e.line.playback_source_id].join(`
26`)}function Ul(e){var t;return Si({episodeTrack:e.episodeTrack,introEndSeconds:(t=e.skipSettings)==null?void 0:t.introEndSeconds,durationSeconds:0})}function Gl(e){return e>=zl?"exhausted":"cooldown"}function Yl(e){var i;const t=Tt(e.duration);if(t<=0)return;const n=e.episodeTrack!=="main"?0:Tt((i=e.skipSettings)==null?void 0:i.outroFromEndSeconds),r=M
26ath.max(0,t-n),o=Math.min(4,Math.max(1,Tt(e.playbackRate)||1));return Math.max(0,r-jl*o)}function Xl(e){if(!jt(e.nativeRuntime)||e.paused||e.ended)return!1;const t=Yl(e);if(t===void 0)return!1;const n=Tt(e.currentTime);return n>=t&&n<Tt(e.duration)}function jt(e){return e.status==="ready"&&e.platform==="browser"&&!e.hasBridge}function Tt(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,e):0}function Ql(e,t){return t?t.aborted?Promise.resolve(void 0):new Promise((n,r)=>{const o=()=>n(void 0);t.addEventListener("abort",o,{once:!0}),e.then(i=>{t.removeEventListener("abort",o),n(i)},i=>{t.removeEventListener("abort",o),r(i)})}):e}const Jl=3e4,Zl=12e4;class ed{constructor(t,n=()=>{}){this.isReusable=t,this.onTransition=n}isReusable;onTransition;active;dispose(){this.discard(this.active)}start(t){const n=this.active,r=(n==null?void 0:n.token)===t.token&&n.routeKey===t.routeKey;if(r){if(n.state==="resolving"){n.joinLogged||(n.joinLogged=!0,this.trace("start_join",n));return}if((n.state==="ready"||n.state==="consumed")&&n.result&&this.isReusable(n.result)){n.reuseLogged||(n.reuseLogged=!0,this.trace("start_reuse",n));return}if(n.state==="exhausted"){this.trace("start_skip_exhausted",n);return}if(n.state==="cooldown"&&(t.now??Date.now())<(n.retryAfter??0)){this.trace("start_skip_cooldown",n);return}}const o=r&&(n==null?void 0:n.state)==="cooldown"?n.attempts+1:1;this.discard(n,r?"refresh_stale":"target_changed");const i=new AbortController,s=t.create(i.signal),a={token:t.token,routeKey:t.routeKey,controller:i,state:"resolving",attempts:o,request:s};this.active=a,typeof window<"u"&&(a.expiryTimer=window.setTimeout(()=>{this.active===a&&this.discard(a,"transition_expired")},Zl)),this.trace("resolve_start",a),s.then(f=>this.settle(a,f),()=>this.fail(a))}async take(t){var s,a;const n=this.active;if(!n){this.onTransition("take_miss",{token:t.token,routeKey:t.routeKey,reason:"no_active_transition"});return}if(n.token!==t.token||n.routeKey!==t.routeKey){this.trace("take_miss",n,{requestedToken:t.token,requestedRouteKey:t.routeKey,reason:n.token!==t.token?"token_mismatch":"route_mismatch"}),this.discard(n,"take_mismatch");return}const r=n.result??(n.state==="resolving"?await Ql(n.request,t.signal).catch(()=>{}):void 0);if(this.active!==n||n.controller.signal.aborted){r==null||r.dispose(),this.trace("take_miss",n,{reason:"transition_invalidated"});return}if(!r||(s=t.signal)!=null&&s.aborted){this.trace("take_miss",n,{reason:(a=t.signal)!=null&&a.aborted?"consumer_aborted":"resolve_unavailable"});return}const o=r.token===t.token&&this.isReusable(r),i=n.state==="consumed";return o&&(n.state="consumed",n.consumers=(n.consumers??0)+1),this.trace(o?i?"take_reuse":"take_hit":"take_miss",n,{reason:o?"resolved_payload_reused":"resolved_payload_stale",startPositionSeconds:r.startPositionSeconds,consumers:n.consumers??0}),o?r.handoff():r.dispose(),o?r.payload:void 0}settle(t,n){if(t.controller.signal.aborted||this.active!==t){n==null||n.dispose();return}if(!n)return this.fail(t);t.result=n,t.state="ready",this.trace("resolve_ready",t,{startPositionSeconds:n.startPositionSeconds})}fail(t){this.active===t&&(t.state=Gl(t.attempts),t.retryAfter=t.state==="cooldown"?Date.now()+Jl:void 0,this.trace("resolve_failed",t))}discard(t,n="dispose"){var r;t&&(this.trace("discard",t,{reason:n}),t.expiryTimer!==void 0&&typeof window<"u"&&(window.clearTimeout(t.expiryTimer),t.expiryTimer=void 0),t.controller.abort(),(r=t.result)==null||r.dispose(),this.active===t&&(this.active=void 0))}trace(t,n,r={}){this.onTransition(t,{token:n.token,routeKey:n.routeKey,state:n.state,attempts:n.attempts,...r})}}let Ln;function td(e,t){const n=x.useRef(rd()),r=x.useRef(t);return r.current=t,x.useEffect(()=>{const s=()=>n.current.dispose(),a=()=>{jt(xt())||s()};return window.addEventListener("pagehide",s),window.addEventListener("h5shell:native-bridge-ready",a),()=>{window.removeEventListener("pagehide",s),window.removeEventListener("h5shell:native-bridge-ready",a)}},[]),{startNextEpisodePrewarm:s=>{var c,l,y,b,p;const a=e.current;if(!a)return;const f=xt();if(!jt(f)){(c=n.current)==null||c.dispose();return}if(!Xl({currentTime:s.video.currentTime,duration:s.video.duration,playbackRate:s.video.playbackRate,ended:s.video.ended,episodeTrack:s.episodeTrack,nativeRuntime:f,paused:s.video.paused,skipSettings:r.current}))return;const u=Math.max(0,s.video.duration-(s.episodeTrack!=="main"?0:((l=r.current)==null?void 0:l.outroFromEndSeconds)??0)),d=it(a.payload),g=String((d==null?void 0:d.token)||"").trim(),k=String(((y=Rt(a.payload))==null?void 0:y.token)||"").trim();if(!d||!g||g===k){(b=n.current)==null||b.dispose();return}const E=Xr(a),m=Ul({episodeTrack:d.episode_track,skipSettings:r.current});(p=n.current)==null||p.start({token:g,routeKey:E,create:h=>$l({runtime:a,episode:d,signal:h,startPositionSeconds:m,skipSettings:r.current,activeVideo:s.video,activeEndPosition:u})})},takePrewarmedPayload:async(s,a)=>{var u,d;const f=e.current;if(!s.token||!f||!jt(xt())){(u=n.current)==null||u.dispose();return}return(d=n.current)==null?void 0:d.take({token:s.token,routeKey:Xr(f),signal:a})}}}
26function nd(e){const t=It(e.payload.line_options??[],e.payload.playback_source_id);return!!(t&&!Fe(t))}function rd(){return Ln||(Ln=new ed(nd,(e,t)=>le(`web-prewarm.transition.${e}`,t))),Ln}const Gd=x.forwardRef(function({card:t,src:n,onReady:r,onPlayerMessage:o,onPlayerStatus:i,onFeedback:s,onEnterNativeFullscreen:a,onTogglePictureInPicture:f,fillHeight:u=!1,hasNextEpisode:d=!1,hideEpisodeSwitch:g=!1,hostEpisodes:k=[],operationPanelHostRef:E,externalPlaybackResolutionActive:m=!1,localPlaybackSuspended:c=!1,onNextEpisode:l,onOpenQuickActions:y,onOpenEpisodeList:b,sidebarCollapsed:p=!1,onSidebarCollapsedChange:h,skipSettings:T},S){var nr;const A=x.useRef(null),_=x.useRef(null),L=x.useRef(t),P=x.useRef(o),F=x.useRef(i),R=x.useRef(r),W=x.useRef(y);x.useEffect(()=>{W.current=y},[y]);const v=x.useRef(a),B=x.useRef(f),V=x.useRef(k),j=x.useRef(d),D=x.useRef(l);V.current=k;const q=x.useRef(void 0),J=x.useRef(void 0),w=x.useRef(void 0),N=x.useRef(0),I=x.useRef(!0),[$,_e]=x.useState(!0),[z,de]=x.useState(),[ce,ue]=x.useState(),{cancelFrameLoadingTimers:Ee,clearFrameLoading:ie,forceClearFrameLoading:he,showFrameLoading:U}=Ya({loadingTimerRef:J,loadingClearTimerRef:w,loadingShownAtRef:N,loadingVisibleRef:I,setLoa
26ding:_e,setLoadingMessage:de,setLoadingHint:ue}),[Te,oe]=x.useState(""),[Q,te]=x.useState(vn),me=x.useRef(void 0),se=x.useRef(void 0);se.current||(se.current=Ui({auth:Gt(),preferDirect:Gi()}));const Pe=Xa({lineAdmissionStateRef:se,tokenQuotaFallbackDecisionRef:me,setTokenQuotaState:te}),[Oe,$e]=x.useState(0),[ge,Re]=x.useState(void 0),[At,Ke]=x.useState(void 0),[_t,bt]=x.useState(!0),[Nt,O]=x.useState(null),[K,X]=x.useState(!1),ye=x.useRef(!1),ne=x.useRef(!1),Ie=x.useRef(!1),Z=x.useRef(""),Ge=x.useRef(null),Ft=x.useRef({contextKey:"",count:0}),Ce=x.useRef(ua()),ae=x.useRef(ca()),ht=x.useRef(!1),Un=x.useSyncExternalStore(ae.current.subscribe,ae.current.getSnapshot,ae.current.getSnapshot),ke=x.useRef(ja()),Ye=x.useRef(m),Le=x.useRef(c),Ae=x.useRef(void 0),je=x.useRef(void 0),Ct=x.useRef(void 0),{startNextEpisodePrewarm:So,takePrewarmedPayload:Eo}=td(_,T),we=x.useMemo(()=>Tc(n),[n]),Xe=we?`${t.id}:${we.kind}:${we.value}`:`${t.id}:missing`,{buildStatusPayload:Po,confirmCurrentLinePlayback:Dt,currentPendingLineSwitch:Zt,emitLifecycleMessage:en,emitRuntimeMessage:tt,emitStatus:Ot}=rc({runtimeRef:_,pendingLineSwitchRef:ne,playbackAttemptManagerRef:ae,lineAdmissionStateRef:se,setTokenQuotaState:te,card:t,onPlayerStatus:i,markFramePlayable:zo,refreshPanels:()=>{var C;return(C=Ct.current)==null?void 0:C.call(Ct)}}),{activePanel:Gn,beginEpisodeLineTransition:Lo,closeActivePanel:gt,finishEpisodeLineTransition:Mo,openPanel:tn,panelState:We,refreshPanels:st,togglePanel:xo}=Ac({runtimeRef:_,emitRuntimeMessage:tt,hostEpisodes:k});Ct.current=st,Ia({runtimeRef:_,lines:We.lines,currentLine:We.currentLine,linesLoading:We.linesLoading,switchingLineId:ge,onOpenLinePanel:()=>{Ht(),tn("line")}});const nt=Dc({settings:T,onAdvance:cn,resumePosition:we==null?void 0:we.resumePosition}),rt=(...C)=>Co(...C),nn=(...C)=>Do(...C),{isRuntimePlaybackHealthy:Yn,pauseRuntimePlayback:Xn,retryCurrentLine:Qn,switchNextLine:To,switchPlaybackImmediately:Io}=oc({runtimeRef:_,pendingEpisodeLineContextKeyRef:Z,playbackAttemptManagerRef:ae,startupLineExclusionsRef:Ce,startupLineContextKey:Xe,explicitLineProbeCancel:()=>
26ke.current.cancel(),setRetryNonce:$e,switchToLine:nn}),{beginPlaybackAttempt:rn,cancelExplicitLineProbe:kt,cancelMediaRecoveryTimer:Wt,cancelPlaybackRecoveryRetry:Ro,cancelPlaybackStartTimer:Qe,invalidatePlaybackOperations:Jn,isPlaybackOperationCurrent:Je,reserveAutoLineSwitch:Ao,resetAutoSwitchGuard:No,scheduleMediaRecoveryTimeout:Fo,schedulePlaybackStartTimeout:on}=nc({runtimeRef:_,localPlaybackSuspendedRef:Le,playbackAttemptManagerRef:ae,explicitLineProbeLifecycleRef:ke,pendingLineSwitchRef:ne,pendingEpisodeSwitchRef:Ie,autoSwitchGuardRef:Ft,cardRef:L,setSwitchingLineId:Re,setSwitchingEpisodeId:Ke,isRuntimePlaybackHealthy:Yn,confirmCurrentLinePlayback:Dt,handlePlaybackIssue:rt}),{handlePlaybackIssue:Co}=cc({clearPendingLineSwitchLoading:tr,currentPendingLineSwitch:Zt,emitRuntimeMessage:tt,externalPlaybackResolutionActiveRef:Ye,forceClearFrameLoading:he,isRuntimePlaybackHealthy:Yn,localPlaybackSuspendedRef:Le,pendingLineSwitchRef:ne,playbackAttemptManagerRef:ae,reserveAutoLineSwitch:Ao,runtimeRef:_,scheduleMediaRecoveryTimeout:Fo,setError:oe,switchToLine
26:nn}),{switchToLine:Do}=dc({beginPlaybackAttempt:rn,clearPendingLineSwitchLoading:tr,forceClearFrameLoading:he,handlePlaybackIssue:rt,isPlaybackOperationCurrent:Je,keepResolvedParseOverlayUntilPlayable:dn,localPlaybackSuspendedRef:Le,pendingLineSwitchRef:ne,playbackAttemptManagerRef:ae,refreshPanels:st,resetAutoSwitchGuard:No,runtimeRef:_,schedulePlaybackStartTimeout:on,setError:oe,setSwitchingLineId:Re,settleSuspendedRuntime:ln,showFrameLoading:U,waitForTokenQuotaFallback:Pe}),{hasRuntimeNextEpisode:Oo,selectNextEpisode:Wo,selectPanelEpisode:Vo,switchToEpisode:Ho,syncNextEpisodeControl:qo}=kc({beginEpisodeLineTransition:Lo,beginPlaybackAttempt:rn,catalogEpisodesRef:V,clearPendingEpisodeSwitchLoading:jo,emitRuntimeMessage:tt,emitStatus:Ot,finishPendingEpisodeLineTransition:er,handlePlaybackIssue:rt,hasNextEpisodeRef:j,isPlaybackOperationCurrent:Je,keepResolvedParseOverlayUntilPlayable:dn,localPlaybackSuspendedRef:Le,mountRef:A,onSourceReady:C=>{var ee;return(ee=je.current)==null?void 0:ee.onSourceReady(C)},onNextEpisodeRef:D,pendingEpisodeLineContextKeyRef:Z,pendingEpisodeRetryRef:Ge,pendingEpisodeSwitchRef:Ie,playbackAttemptManagerRef:ae,refreshPanels:st,runtimeRef:_,schedulePlaybackStartTimeout:on,setError:oe,setLoading:_e,setSwitchingEpisodeId:Ke,settleSuspendedRuntime:ln,showFrameLoading:U,skipRuntime:nt,takePrewarmedPayload:Eo});Rc({closeActivePanel:gt,emitStatus:Ot,emitRuntimeMessage:tt,localPlaybackSuspendedRef:Le,mountRef:A,openActivePanel:tn,ref:S,runtimeRef:_,retryCurrentLine:Qn,selectPanelEpisode:an,selectPanelLine:sn,switchNextLine:To,readDanmakuVisibility:()=>{var C;return((C=je.current)==null?void 0:C.isVisible())??!1},toggleDanmaku:()=>{var C;return((C=je.current)==null?void 0:C.toggle())??!1},switchToEpisode:Vt}),x.useEffect(()=>
26{L.current=t,P.current=o,F.current=i,R.current=r,v.current=a,B.current=f},[t,o,i,r,a,f]),x.useEffect(()=>{j.current=d,D.current=l,Zn()},[d,l]),x.useEffect(()=>{var G;if(Ye.current=m,Le.current=c,!c){const pe=Ua({abortedForHandoff:ht.current,currentAttemptPhase:(G=ae.current.current())==null?void 0:G.phase});ht.current=!1,pe&&(he(),$e(qt=>qt+1));return}Wt(),Qe(),kt();const C=ae.current.current();za(C==null?void 0:C.phase)&&(le("react-frame.native-handoff-abort",{attemptId:C==null?void 0:C.id,phase:C==null?void 0:C.phase,reason:C==null?void 0:C.reason}),ht.current=!0,Jn(),Re(void 0),Ke(void 0));const ee=_.current;ee&&Be(ee)},[m,c]);const Bo=Ka({runtimeRef:_,pendingEpisodeLineContextKeyRef:Z,explicitLineProbeLifecycleRef:ke,refreshPanels:st,selectNextEpisode:cn,switchToEpisode:Vt,closeActivePanel:gt,selectPanelLine:sn,selectPanelEpisode:an,buildStatusPayload:Po});x.useEffect(()=>{q.current=Bo}),x.useEffect(()=>{const C=ee=>{var pe;const G=$a(ee.data);G&&((pe=q.current)==null||pe.call(q,G))};return window.addEventListener("message",C),()=>window.removeEventListener("message",C)},[]),x.useEffect(()=>{const C=()=>{document.hidden&&kt(),en("visibilitychange",{hidden:document.hidden})},ee=()=>{en("fullscreenchange",{fullscreen:!!document.fullscreenElement})},G=()=>{Xn("page_lifecycle")};return document.addEventListener("visibilitychange",C),document.addEventListener("fullscreenchange",ee),window.addEventListener("pagehide",G),window.addEventListener("beforeunload",G),()=>{document.removeEventListener("visibilitychange",C),document.removeEventListener("fullscreenchange",ee),window.removeEventListener("pagehide",G),window.removeEventListener("beforeunload",G)}},[]),x.useEffect(()=>{const C=()=>{const ee=se.current;ee&&(se.current=Hn(ee,{type:"AUTH_CONTEXT_CHANGED",auth:Gt()}))};return window.addEventListener(fr,C),()=>window.removeEventListener(fr,C)},[]),x.useEffect(()=>{var qt,rr,or;if(!we)return;let C=!1;const ee=A.current;if(!ee)return;U("正在初始化播放器","正在连接播放线路"),bt(!0),O(null),X(!1),oe(""),te(vn()),Re(void 0),er(Z.current),gt(),ye.current=!1,(qt=Ae.current)==null||qt.call(Ae),Ae.current=void 0,(rr=je.current)==null||rr.destroy(),je.current=void 0,(or=_.current)==null||or.engine.destroy(),_.current=null,Qe(),st(),ee.replaceChildren(),Ei(void 0,ee);const G=rn("initial_play");let pe="payload_resolving";return le("react-frame.mount",{cardId:t.id,title:t.title,targetKind:we.kind,fillHeight:u}),xc(we,G.signal).then(async Y=>{var cr,lr,dr,ur;if(C||!Je(G.id))return;pe="payload_resolved";const Me=Pi(Y.line_options??[]);le("react-frame.initial-line-order",{selectedLineId:Y.playback_source_id,lines:Me.map((M,H)=>({index:H,id:M.playback_source_id,providerId:M.provider_id,playFrom:M.play_from,selected:M.selected===!0,defaultPriority:M.default_priority===!0,preferenceWeight:M.preference_weight,resolveMode:M.resolve_mode}))});const Ve=async(M,H)=>{var wt,St;Fe(M)&&U(`正在解析 ${Se(M)}`,"高清 · 流畅 · 不卡顿");const re=((wt=_.current)==null?void 0:wt.payload)??Y,fe=((St=re.current_episode)==null?void 0:St.token)||re.token||we.value,yn=await xn({token:fe,line:M,billingContext:Fn(re),signal:H});return Object.assign(M,yn),re.playback_source_id===M.playback_source_id&&Object.assign(re,{url:M.url,url_kind:M.url_kind}),M},ze=gn(Me,Ce.current,Xe),un=Li(ze),Bt=un?[un,...Mi(ze,un)]:ze;let De,fn;for(const M of Bt)if(br(se.current,M)&&gn(Me,Ce.current,Xe).some(H=>H.playback_source_id===M.playback_source_id)){if(!Fe(M)){De=M;break}ae.current.transition(G.id,"resolving",{lineId:be(M),lineName:Se(M),lineMode:"parse",canSwitch:Bt.length>1}),U(`正在解析 ${Se(M)}`,"高清 · 流畅 · 不卡顿",0);try{pe="line_resolving";const H=((cr=Y.current_episode)==null?void 0:cr.token)||Y.token||we.value;Object.assign(M,await xn({token:H,line:M,billingContext:Fn(Y),signal:G.signal})),De=M;break}catch(H){if(!eo(H))throw H;if(uo(H)){const re=Zr(Bt,{excludeIds:[be(M)]});if(!re)throw H;pe="token_quota_fallback_wait",ae.current.transition(G.id,"awaiting_user",{lineId:be(M),lineName:Se(M),lineMode:"parse",canSwitch:!0}),he(),oe(""),await Pe(G.signal,H),M.probe_status="failed";for(const fe of Tn(Me,M))An(Ce.current,Xe,fe);fn=H,De=re;break}M.probe_status="failed";for(const re of Tn(Me,M))An(Ce.current,Xe,re);fn=H}}if(!De)throw fn||new Error("没有可用播放线路");const Yo="auto";ae.current.transition(G.id,"loading",{lineId:be(De),lineName:Se(De),lineMode:De.resolve_mode==="parse"?"parse":"direct",canSwitch:Bt.length>1});const at=Oi({lines:Me,selection:{playback_source_id:De.playback_source_id,provider_id:De.provider_id,play_from:De.play_from},resolveLine:Ve,isAutomaticLineAvailable:M=>br(se.current,M)}),Xo=new Set(gn(Me,Ce.current,Xe).map(M=>M.playback_source_id));for(const M of at.lines)Xo.has(M.playback_source_id)||at.markFailed(M);const Ne=It(at.lines,De.playback_source_id);if(!Ne)throw new Error("没有可用播放线路");pe="line_selected";const mn=xi(Ti);mn.syncLines(at.lines),mn.beginLine(Ne,"initial_play"),Object.assign(Y,{playback_source_id:Ne.playback_source_id,provider_id:Ne.provider_id,play_from:Ne.play_from,url:Ne.url,url_kind:Ne.url_kind,line_options:at.lines});const Qo=B.current;pe="engine_creating";const Ue=await Zs({container:ee,line:Ne,resolveLine:Ve,events:{resolveStartPosition:nt.resolveStartPosition,shouldResolveStartPosition:nt.shouldResolveStartPosition,onPlaybackStarted(M){const H=_.current;if(!(!H||H.line.playback_source_id!==M.playback_source_id)){if(Le.current){Be(H);return}Dt("playing")}},onHlsFatalError(M){le("react-frame.hls-error",{cardId:t.id,title:t.title,line:M.line.playback_source_id,details:M.payload.details,fatal:M.payload.fatal}),rt({line:M.line,kind:"hls_fatal",reason:"hls_fatal",payload:M.payload,canRecoverMedia:M.canRecoverMedia})},onNativeMediaError(M){le("react-frame.native-media-error",{cardId:t.id,title:t.title,line:M.line.playback_source_id,error:M.payload.error}),tt("playererror",M.payload),rt({line:M.line,kind:"video_error",reason:"video_error",payload:M.payload,canRecoverMedia:!1})},onCleanHls(M,H){le("react-frame.hls-clean",{cardId:t.id,line:M.playback_source_id,removedBlocks:H.removedBlocks,removedSeconds:Math.round(H.removedSeconds)})}},options:Na({title:t.title,hasNextEpisode:Ko,onNextEpisode:cn,root:()=>A.current,onOpenQuickActions:W.current?()=>{var M;return(M=W.current)==null?void 0:M.call(W)}:void 0})});if(pe="engine_created",C||!Je(G.id)){Ue.destroy();return}(lr=Ae.current)==null||lr.call(Ae);const ir=(dr=Ue.art.template)==null?void 0:dr.$player;O(ir instanceof HTMLElement?ir:null);const Jo=zs(Ue.art,{shouldInterceptFullscreen:()=>!!v.current,onEnterFullscreen:()=>{var M;return((M=v.current)==null?void 0:M.call(v))??!1},onTogglePictureInPicture:Qo,onControlsVisibilityChange:bt,onArtPlayerEvent(M,H){if(M==="fullscreen"||M==="fullscreenWeb"){const re=Ue.art.fullscreen===!0||Ue.art.fullscreenWeb===!0;X(re)}en(M,{state:H,engine:"artplayer"})}});Ae.current=Jo;const He=Ue.video();pe="video_resolved";const Zo=ea({data:Y,targetUrl:we.value,video:He??{},onMessage:M=>{var H;return(H=P.current)==null?void 0:H.call(P,M)}}),ei=ba({data:Y,targetUrl:we.value,video:He??{}});_.current={payload:Y,line:Ne,lineSelectionMode:Yo,confirmedPlaybackPosition:0,engine:Ue,lineRuntime:at,lineStateMachine:mn,emitter:Zo,reporter:ei},He&&Bl()&&(je.current=ql({art:Ue.art,video:He,danmuContext:()=>{var fe;const M=(fe=_.current)==null?void 0:fe.payload,H=M==null?void 0:M.current_episode,re=wa(M);if(re)return{variantId:L.current.id,episodeId:re,...H!=null&&H.token||M!=null&&M.token?{episodeToken:(H==null?void 0:H.token)||(M==null?void 0:M.token)}:{},episodeTitle:Ii(L.current.title,Dn(H)),...Number.isFinite(He.duration)&&He.duration>0?{durationMs:Math.round(He.duration*1e3)}:{}}}})),pe="runtime_bound",st(),Zn(),_.current.removeVideoListeners=Ca({video:He,card:L.current,runtime:_.current,onPlayable:ie,onPlayerStatus:M=>{var H;return(H=F.current)==null?void 0:H.call(F,M)},onPlaying:()=>{if(Le.current){const M=_.current;M&&Be(M);return}Dt("playing")},onPause:kt,onProgress:()=>{var wt,St;if(Wt(),Le.current)return;const M=_.current;if(!M)return;const H=M.engine.video();H&&(So({video:H,episodeTrack:(wt=M.payload.current_episode)==null?void 0:wt.episode_track}),nt.onProgress({canAdvance:!!(it(M.payload)||j.current),episode
26Key:yt(M.payload.current_episode??{}),episodeTrack:(St=M.payload.current_episode)==null?void 0:St.episode_track,video:H}));const re=Zt(M),fe=ae.current.current(),yn=(fe==null?void 0:fe.phase)==="recovering"||(fe==null?void 0:fe.phase)==="retrying";ne.current&&(re==null?void 0:re.linePhase)!=="awaiting_playback"&&!yn||(M.lineStateMachine.markProgress(M.line),ne.current||oe(""),(ne.current||(fe==null?void 0:fe.phase)==="awaiting_playback"||(fe==null?void 0:fe.phase)==="recovering"||(fe==null?void 0:fe.phase)==="retrying")&&Dt("timeupdate"))},onPositionConfirmed:M=>{const H=_.current;!H||ne.current||Ie.current||(H.confirmedPlaybackPosition=Yt(M))},onIssue:M=>{if(Le.current)return;const H=_.current,re=H?Zt(H):void 0;ne.current&&(re==null?void 0:re.linePhase)!=="awaiting_playback"||rt(M)},onEnded:()=>{if(Le.current)return;const M=_.current,H=M?it(M.payload):null;H&&(tt("next",{episode:H,engine:"artplayer",reason:"auto_ended"}),Vt(H,"auto_next_episode"))}}),pe="source_attaching";const sr=He?nt.preparePlayback({episodeKey:yt(Y.current_episode??{}),episodeTrack:(ur=Y.current_episode)==null?void 0:ur.episode_track,position:we.resumePosition,video:He}):we.resumePosition,ar=await Ue.playLine(Ne,{autoplay:!Le.current,position:sr,signal:G.signal,onSourceAttached:M=>{var H;if(!Je(G.id,_.current??void 0))throw new DOMException("播放操作已取消","AbortError");if(ae.current.transition(G.id,"awaiting_playback",{lineId:be(M)}),dn(M),(H=je.current)==null||H.onSourceReady(sr),Le.current){const re=_.current;re&&Be(re);return}on(G.id,_.current,M,"initial_play")}});if(Je(G.id,_.current??void 0)){if(Le.current){ln(G.id,_.current);return}if(ar==="blocked"){Qe(),ae.current.transition(G.id,"awaiting_user"),le("react-frame.autoplay-blocked",{cardId:t.id,line:Ne.playback_source_id}),ie();return}ar==="failed"&&rt({line:Ne,kind:"play_start_failed",reason:"initial_play_rejected",canRecoverMedia:!1,payload:{details:"media_play_rejected"}}),Ot(crypto.randomUUID())}}).catch(Y=>{if(C||!Je(G.id)||Y instanceof Error&&Y.name==="AbortError")return;const Me=Y instanceof Error?Y.name:"UnknownError",Ve=Y instanceof Error?Y.message:String(Y);le("react-frame.init-error",{cardId:t.id,stage:pe,errorName:Me,errorMessage:Ve}),ae.current.transition(G.id,"failed",{errorMessage:Ve,canSwitch:!1}),console.error(`[ai-movie:react-player-init] stage=${pe} ${Me}: ${Ve}`,Y),he();const ze=Y instanceof Error?Y.message:"播放初始化失败";oe(ze),tt("playbackfailed",{reason:"initialization_failed",message:ze,error:{name:Me,message:Ve}})}),()=>{var Me,Ve,ze;C=!0,Jn(),Ee(),Qe(),kt(),(Me=Ae.current)==null||Me.call(Ae),Ae.current=void 0,(Ve=je.current)==null||Ve.destroy(),je.current=void 0;const Y=_.current;Xn("react_unmount"),(ze=Y==null?void 0:Y.removeVideoListeners)==null||ze.call(Y),Y==null||Y.engine.destroy(),_.current=null,me.current=void 0,te(vn()),ee.replaceChildren()}},[t.id,Oe,Xe,we]);const $o=ka(_,p,h,gt);if(!we)return ve.jsx(Ic,{title:t.title});async function sn(C,ee){const G=_.current;return Z.current||!G?!1:be(C)===be(G.line)?!0:nn(C,ee,{selectionMode:"manual"})}async function Vt(C,ee,G={}){return Ho(C,ee,G)}async function an(C,ee){return Vo(C,ee)}function cn(){Wo()}function Ko(){return Oo()}function Zn(){qo()}function jo(){Ie.current&&(Ie.current=!1,Qe(),ie(),Ke(void 0))}function er(C){!C||Z.current!==C||(Z.current="",Mo(C))}function tr(){ne.current&&(ne.current=!1,Qe(),ie(),Re(void 0))}function zo(){var C;Wt(),Ro(),Qe(),oe(""),ne.current=!1,Ie.current=!1,Re(void 0),Ke(void 0),ie(),!ye.current&&(ye.current=!0,(C=R.current)==null||C.call(R))}function ln(C,ee){var G;Je(C,ee)&&(Be(ee),Wt(),Qe(),kt(),ae.current.transition(C,"awaiting_user"),oe(""),ne.current=!1,Ie.current=!1,Re(void 0),Ke(void 0),ee.line.resolve_mode!=="parse"&&te(pe=>pe.status==="token_insufficient"?zt(pe,{type:"RESET"}):pe),he(),Ot(crypto.randomUUID()),!ye.current&&(ye.current=!0,(G=R.current)==null||G.call(R)))}function dn(C){C.resolve_mode!=="parse"||Fe(C)||U("正在准备播放",`正在连接 ${Se(C)}`)}const Ht=()=>{var C;return ri((C=_.current)==null?void 0:C.engine.art,p,h)},{retry:Uo,retryOrSwitchNow:Go}=wc({clearStartupLineExclusions:()=>co(Ce.current,Xe),pendingEpisodeRetryRef:Ge,retryCurrentLine:Qn,setRetryNonce:$e,switchPlaybackImmediately:Io,switchToEpisode:Vt});return ve.jsx(Lc,{fillHeight:u,playerOverlayHost:Nt,loadingProps:{loading:$,error:Te,message:z,hint:ce,onRetry:Uo,onSwitchNow:Go,onChooseEpisode:()=>{if(Ht(),b){b();return}tn("episode")},onFeedback:s,canChooseEpisode:!g&&We.episodes.length>1,panelOpen:!!Gn,attempt:Un},localPlaybackSuspended:c,mountRef:A,panelsProps:{activePanel:Gn,controlsVisible:_t,currentEpisode:We.currentEpisode,currentLine:We.currentLine,lineSelectionMode:We.lineSelectionMode,episodes:We.episodes,hideEpisodeSwitch:K?!1:g,lines:We.lines,linesLoading:We.linesLoading,operationPanelHostRef:K?void 0:E,onClose:()=>
26gt(),onOpenEpisodeList:b?()=>{Ht(),b()}:void 0,onToggle:C=>{Ht(),xo(C)},onSelectEpisode:C=>{an(C,"manual_panel_episode")},onSelectLine:C=>{sn(C,"manual_panel_line")},switchingLineId:ge,switchingEpisodeId:At},sidebarToggleProps:!((nr=_.current)!=null&&nr.engine.art.fullscreen)&&h?{collapsed:p,controlsVisible:_t,onToggle:$o}:void 0,skipNoticeProps:{notice:nt.notice,onAction:nt.onNoticeAction},tokenQuotaProps:Q.status==="token_insufficient"?{state:Q,onSwitchNow:()=>{var C;return(C=me.current)==null?void 0:C.call(me)}}:void 0})});export{Gd as ReactPlayerFrame};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.