You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
2.1 KiB
1 lines
2.1 KiB
(()=>{"use strict";var t,e={9612:(t,e,n)=>{function r(t,e){const n=t.lastIndexOf(".");let r=e;return-1!==n&&(r=t.substring(n+1)),r}n.d(e,{YU:()=>r})}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var s=n[t]={exports:{}};return e[t](s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),t=r(9612),setTimeout((()=>{let e,n,r,o;const s=JSON.stringify;JSON.stringify=function(a){const i=s.apply(this,arguments);var c,l;return"string"==typeof a?.content_eab_id&&"object"==typeof a?.playback&&null!==a?.playback&&(c=i,e?.abort(),r=new Promise(((n,r)=>{setTimeout((()=>{e?.abort(),e=new AbortController,fetch("https://play.hulu.com/v6/playlist",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:c,signal:e.signal}).then((t=>t.json())).then((e=>n(function(e){const n=[];if(r=e.transcripts_urls?.webvtt,"object"==typeof r&&!Array.isArray(r)&&null!==r){const r=e.transcripts_urls.webvtt;for(const e of Object.keys(r)){const o=r[e];"string"==typeof o&&void 0===n.find((t=>t.label===t.language))&&n.push({label:e,language:e.toLowerCase(),url:o,extension:(0,t.YU)(o,"vtt")})}}var r;return n}(e)))).catch(r)}),0)})),l=a.content_eab_id,n?.abort(),o=new Promise(((t,e)=>{setTimeout((()=>{n?.abort(),n=new AbortController,fetch(`https://discover.hulu.com/content/v3/browse/upnext?current_eab=${encodeURIComponent(l)}&referral_host=www.hulu.com&schema=4`,{signal:n.signal}).then((t=>t.json())).then((e=>t(function(t){if(t?.items instanceof Array&&t.items.length>0){const e=t.items[0];return e.series_name&&e.season_short_display_name&&e.number&&e.name?`${e.series_name}.${e.season_short_display_name}.E${e.number} - ${e.name}`:e.name??""}return""}(e)))).catch(e)}),0)}))),i},document.addEventListener("asbplayer-get-synced-data",(async()=>{let t="",e=[],n="";try{void 0!==o&&(t=await o,o=void 0),void 0!==r&&(e=await r,r=void 0)}catch(t){n=t instanceof Error?t.message:String(t)}const s={error:n,basename:t,subtitles:e};document.dispatchEvent(new CustomEvent("asbplayer-synced-data",{detail:s}))}),!1)}),0)})();
|