PageSourceSearch

https://www.hometech.fm/_app/immutable/chunks/mlvzNgAW.js

js hometech.fm collected 2026-10-02 15:08:40 UTC 4,475 bytes, 1 lines download raw bytes

1import{U as e,at as t,it as n,o as r,s as i}from"./DYgQ03Et.js";import"./xihTtKlq.js";import{t as a}from"./2F0PAS5g.js";var o=new Set([`$$slots`,`$$events`,`$$legacy`]);function s(e,t){let n=r(t,o),s=[[`path`,{d:`M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z`}],[`circle`,{cx:`12`,cy:`12`,r:`10`}]];a(e,i({name:`circle-play`},()=>n,{get iconNode(){return s}}))}var c=[1,1.25,1.5,1.75,2];function l(e){return Number.isFinite(e)?c.reduce((t,n)=>Math.abs(n-e)<Math.abs(t-e)?n:t,c[0]):1}var u=`htfm:player:v1`,d=5e3;function f(e){return{episode:e.episode,position:Number.isFinite(e.currentTime)?e.currentTime:0,volume:m(e.volume,0,1),playbackRate:m(e.playbackRate,.5,4)}}function p(e){if(!e)return null;try{let t=JSON.parse(e),n=t.episode??null;return n&&(typeof n.audioUrl!=`string`||typeof n.number!=`number`)?null:{episode:n,position:typeof t.position==`number`?t.position:0,volume:typeof t.volume==`number`?m(t.volume,0,1):1,playbackRate:typeof t.playbackRate==`number`?m(t.playbackRate,.5,4):1}}catch{return null}}function m(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):t}function h(e){if(!Number.isFinite(e)||e<0)return`0:00`;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=String(i).padStart(2,`0`);return n>0?`${n}:${String(r).padStart(2,`0`)}:${a}`:`${r}:${a}`}var g=typeof window<`u`,_=new class{#e=t(null);get episode(){return e(this.#e)}set episode(e){n(this.#e,e,!0)}#t=t(!1);get isPlaying(){return e(this.#t)}set isPlaying(e){n(this.#t,e,!0)}#n=t(0);get currentTime(){return e(this.#n)}set currentTime(e){n(this.#n,e,!0)}#r=t(0);get duration(){return e(this.#r)}set duration(e){n(this.#r,e,!0)}#i=t(1);get volume(){return e(this.#i)}set volume(e){n(this.#i,e,!0)}#a=t(1);get playbackRate(){return e(this.#a)}set playbackRate(e){n(this.#a,e,!0)}#o=t(`idle`);get status(){return e(this.#o)}set status(e){n(this.#o,e,!0)}#s=t(null);get errorMessage(){return e(this.#s)}set errorMessage(e){n(this.#s,e,!0)}#c=null;#l=0;#u=null;constructor(){g&&this.#h()}get progress(){return this.duration>0?this.currentTime/this.duration:0}get hasEpisode(){return this.episode!==null}attach(e){this.#c=e,e.volume=this.volume,e.playbackRate=this.playbackRate}detach(){this.#c=null}#d(e){let t=this.episode?.audioUrl;return t?e.getAttribute(`src`)===t||e.currentSrc===t:!1}load(e,t=!0){let n=this.episode?.audioUrl===e.audioUrl;this.episode=e,n?t&&this.status===`error`&&(this.status=`loading`,this.errorMessage=null,this.#c?.load()):(this.currentTime=0,this.duration=0,this.status=`loading`,this.errorMessage=null,this.#u=null),t&&this.play()}play(){this.isPlaying=!0;let e=this.#c;e&&this.#d(e)&&e.readyState>=2&&this.#f(e)}#f(e){let t=e.play();t&&typeof t.catch==`function`&&t.catch(()=>{this.isPlaying=!1})}pause(){this.isPlaying=!1,this.#c?.pause()}toggle(){this.isPlaying?this.pause():this.play()}seek(e){let t=m(e,0,this.duration||2**53-1);this.currentTime=t,this.#c?this.#c.currentTime=t:this.#u=t,this.#m(!0)}skip(e){this.seek(this.currentTime+e)}setVolume(e){this.volume=m(e,0,1),this.#c&&(this.#c.volume=this.volume),this.#m(!0)}setPlaybackRate(e){this.playbackRate=m(e,.5,4),this.#c&&(this.#c.playbackRate=this.playbackRate),this.#m(!0)}onLoadedMetadata(e){this.duration=Number.isFinite(e)?e:0,this.isPlaying||(this.status=`ready`),this.#p()}onCanPlay(){this.#p();let e=this.#c;e&&this.isPlaying&&e.paused&&this.#f(e)}#p(){this.#u!=null&&this.#c&&(this.#c.currentTime=m(this.#u,0,this.duration||2**53-1),this.#u=null)}onTimeUpdate(e){this.currentTime=e,this.#m(!1)}onPlay(){this.isPlaying=!0,this.status=`playing`}onPause(){this.isPlaying=!1,this.status===`playing`&&(this.status=`ready`)}onEnded(){this.isPlaying=!1,this.status=`ready`,this.currentTime=0,this.#u=null,this.#m(!0)}onWaiting(){this.status!==`error`&&this.status!==`playing`&&(this.status=`loading`)}onPlaying(){this.status=`playing`}onError(e=`Unable to load this audio.`){this.status=`error`,this.isPlaying=!1,this.errorMessage=e}#m(e){if(!g)return;let t=Date.now();if(!(!e&&t-this.#l<d)){this.#l=t;try{let e=f({episode:this.episode,currentTime:this.currentTime,volume:this.volume,playbackRate:this.playbackRate});window.localStorage.setItem(u,JSON.stringify(e))}catch{}}}#h(){let e=p(window.localStorage.getItem(u));e&&(this.volume=e.volume,this.playbackRate=l(e.playbackRate),e.episode&&(this.episode=e.episode,this.currentTime=e.position,this.#u=e.position,this.status=`ready`))}};export{s as i,_ as n,h as r,c as t};

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.