var cgGcfmAudioLoaded=!1,cgGcfmLoadAttempts=0,cgGcfmPlayAttemptInterval=null,cgGcfmPositionTrackerInterval=null,cgGcfmTimeWritten=!1,cgGcfmMetaFetched=!1,cgGcfmXDown=null,cgGcfmYDown=null,cgGcfmPlayerUrl="https://player.godcaster.fm",cgGcfmAssetsUrl="https://assets.godcaster.fm",cgGcfmApiUrl="https://api.godcaster.fm";let gcfmSearchForPrograms=gcfmDebounce(()=>gcfmSearchPrograms()),gcfmFilterBodyList=gcfmDebounce(()=>gcfmFilterBodyListItems()),gcfmResizeHandler=gcfmDebounce(()=>gcfmResizeViewportHandler(),100),gcfmPlayerContainer=null,gcfmHiddenElements=null,gcfmAudioBar=null,gcfmInsertSliderContainer=gcfmFindElementsByQuery("#gcfm-insert-slider"),gcfmInsertSliderCurrentIndex=0;function gcfmLoadPlayer(){var e=gcfmFindElementById("gcfm-player-container");e?gcfmFindElementById("gcfm-player")?(console.log("GCFM: Player already loaded. Quitting observer."),gcfmDocumentObserver.disconnect()):(e.setAttribute("style","width:100%;height:100%;z-index:99996"),e.classList.contains("gcfm-player-2b1bb1b2-iso")||e.classList.add("class","gcfm-player-2b1bb1b2-iso"),(lgPlayer=document.createElement("div")).setAttribute("id","gcfm-player"),e.appendChild(lgPlayer),gcfmIsolate(e),(gcfmPlayerContainer=gcfmFindElementById("gcfm-player-container")).addEventListener("click",gcfmHandlePlayerClick),gcfmPlayerContainer.addEventListener("change",gcfmHandlePlayerChange),gcfmPlayerContainer.addEventListener("keydown",gcfmHandlePlayerKeyDown),gcfmPlayerContainer.addEventListener("input",gcfmHandleSliderClick),gcfmPlayerContainer.addEventListener("error",gcfmHandlePlayerError,!0),gcfmPlayerContainer.addEventListener("touchstart",gcfmHandleTouchStart,!1),gcfmPlayerContainer.addEventListener("touchmove",gcfmHandleTouchMove,!1),gcfmPlayerInit()):console.log("GCFM: Player container not in DOM yet...")}function gcfmPlayerInit(){var e=gcfmGetPlayerStyleFromUrl(),t=gcfmGetPwaStatus();(url=new URL(cgGcfmPlayerUrl+"/publicplayer/init")).searchParams.append("pid",gcfmGetPlayerId()),url.searchParams.append("did",gcfmGetPlayerDid()),url.searchParams.append("eid",gcfmGetEpisodeIdFromUrl()),url.searchParams.append("page",gcfmGetPageNumberFromUrl()),url.searchParams.append("fid",gcfmGetFeedIdFromUrl()),url.searchParams.append("shared",gcfmEpisodeWasShared(!1)),null!==e&&url.searchParams.append("style",e),t&&url.searchParams.append("pwa",1),fetch(url.href).then(e=>e.text()).then(e=>{(lgPlayer=gcfmFindElementById("gcfm-player")).outerHTML=e,gcfmPlayerEnvironmentInit(),gcfmPlayerBodyInit()}).catch(e=>{console.error("Failed to load the player: ",e)})}function gcfmPlayerEnvironmentInit(){2!=(controlsPosition=gcfmGetControlsPosition())||gcfmFindElementsByQuery("body > #gcfm-audio-bar")||(e=gcfmFindElementById("gcfm-audio-bar"))&&(document.body.appendChild(e),gcfmIsolateAudioBar(gcfmAudioBar=e),gcfmAudioBar.addEventListener("click",gcfmHandlePlayerClick),gcfmAudioBar.addEventListener("change",gcfmHandlePlayerChange),gcfmAudioBar.addEventListener("keydown",gcfmHandlePlayerKeyDown),gcfmAudioBar.addEventListener("input",gcfmHandleSliderClick),gcfmAudioBar.addEventListener("error",gcfmHandlePlayerError,!0),gcfmAudioBar.addEventListener("touchstart",gcfmHandleTouchStart,!1),gcfmAudioBar.addEventListener("touchmove",gcfmHandleTouchMove,!1));var e=gcfmFindElementById("gcfm-hidden-elements");e&&!gcfmFindElementsByQuery("body > #gcfm-hidden-elements")&&(document.body.appendChild(e),gcfmIsolateHidden(gcfmHiddenElements=e),gcfmHiddenElements.addEventListener("click",gcfmHandlePlayerClick),gcfmHiddenElements.addEventListener("change",gcfmHandlePlayerChange),gcfmHiddenElements.addEventListener("keydown",gcfmHandlePlayerKeyDown),gcfmHiddenElements.addEventListener("input",gcfmHandleSliderClick),gcfmHiddenElements.addEventListener("error",gcfmHandlePlayerError,!0),gcfmHiddenElements.addEventListener("touchstart",gcfmHandleTouchStart,!1),gcfmHiddenElements.addEventListener("touchmove",gcfmHandleTouchMove,!1))}function gcfmGetControlsPosition(){return lgPlayer=gcfmFindElementById("gcfm-player"),controlsPosition=lgPlayer.getAttribute("data-controlsposition")}function gcfmPlayerBodyInit(){gcfmPlayerBodyChange(gcfmGetFeedIdFromUrl(),gcfmGetPageNumberFromUrl(),gcfmGetPlayerStyle(),gcfmEpisodeWasShared(),gcfmGetEpisodeIdFromUrl())}function gcfmSetCurrentUrl(e){var t=window.location.href,e=(e&&(t=gcfmGetCleanUrl()),new URL(t));new URLSearchParams(e.search);e.hash="gcfm-isolator",window.history.replaceState({},"",e.toString())}function gcfmPlayerBodyChange(e,t,a,n,d,i){0==t&&(t=1);var r=new URL(cgGcfmPlayerUrl+"/publicplayer/body"),d=(r.searchParams.append("pid",gcfmGetPlayerId()),r.searchParams.append("did",gcfmGetPlayerDid()),r.searchParams.append("page",t),e&&r.searchParams.append("fid",e),d&&"null"!==d&&r.searchParams.append("eid",d),r.searchParams.append("shared",n),null!==a&&r.searchParams.append("style",a),i?r.searchParams.append("collection",i):(e=gcfmGetPlayerCollection())&&"null"!==e&&r.searchParams.append("collection",e),gcfmFindElementById("gcfm-program-header-panel")),n=(d&&d.remove(),gcfmFindElementById("gcfm-hidden-body-elements"));n&&n.remove(),gcfmBodyIsLoading(!0),fetch(r.href).then(e=>e.text()).then(e=>{(lgPlayerBody=gcfmFindElementById("gcfm-body-wrapper")).outerHTML=e,gcfmBodyIsLoading(!1),gcfmSetPlayerStyle(a),gcfmSetPaginationStates(t),gcfmToggleProgramHeaderPanel(),gcfmResizeViewportHandler()}).catch(e=>{console.error("Failed to load player content: ",e)})}function gcfmSearchPrograms(){if(""==(queryText=gcfmFindElementById("gcfm-search-input").value).trim()||queryText.trim().length<3)return!1;var e=new URL(cgGcfmPlayerUrl+"/publicplayer/search"),t=(e.searchParams.append("pid",gcfmGetPlayerId()),e.searchParams.append("did",gcfmGetPlayerDid()),e.searchParams.append("query",queryText),gcfmFindElementById("gcfm-program-header-panel")),t=(t&&t.remove(),gcfmFindElementById("gcfm-hidden-body-elements"));t&&t.remove(),gcfmBodyIsLoading(!0),fetch(e.href).then(e=>e.text()).then(e=>{(lgPlayerBody=gcfmFindElementById("gcfm-body-wrapper")).outerHTML=e,gcfmBodyIsLoading(!1),gcfmSetPaginationStates(0)}).catch(e=>{console.error("Failed to load player content: ",e)})}function gcfmFilterBodyListItems(){var e,t=gcfmFindElementById("gcfm-filter-input").value.trim().toLowerCase();for(e of gcfmFindElementsByQuery("#gcfm-body li.gcfm-body-list-item",!0)){var a=e.textContent.toLowerCase();""===t||a.includes(t)?e.classList.remove("hidden"):e.classList.add("hidden")}}function gcfmToggleProgramHeaderPanel(){var e=gcfmFindElementById("gcfm-program-header-panel");e&&(gcfmFindElementById("gcfm-program-page-active")?e.classList.remove("hidden"):e.classList.add("hidden"))}function gcfmGetPageNumberFromUrl(){return new URL(window.location.href).searchParams.get("gcfm-page")||0}function gcfmGetPlayerStyleFromUrl(){return new URL(window.location.href).searchParams.get("gcfm-style")||null}function gcfmGetPlayerStyle(){var e=gcfmFindElementById("gcfm-player").querySelector("#gcfm-body-style-toggle");return e?e.getAttribute("data-style"):0}function gcfmGetOriginalPlayerStyle(){var e=gcfmFindElementById("gcfm-player");return e?e.getAttribute("data-orgplayerstyle"):gcfmGetOriginalPlayerStyle()}function gcfmGetPwaStatus(){var e=gcfmPlayerContainer;if(e){e=e.getAttribute("data-pwa");if(e&&"true"==e)return!0}return!1}function gcfmGetPlayerTitle(){var e=gcfmFindElementById("gcfm-player-title");return e?e.innerText:""}function gcfmGetPlayerCollection(){var e=gcfmFindElementById("gcfm-collections");if(e){e=e.getAttribute("data-collectionid");if(e)return e}return null}function gcfmSetPlayerCollection(e){var t=gcfmFindElementById("gcfm-collections");t&&t.setAttribute("data-collectionid",e)}function gcfmGetPlatform(){var e=gcfmFindElementById("gcfm-player").getAttribute("data-platform").trim().toLowerCase();return e=e.indexOf("ios")<0&&e.indexOf("android")<0?"web":e}function gcfmSetPlayerStyle(e){var t=gcfmFindElementById("gcfm-body-style-toggle");if(!t)return!1;t.setAttribute("data-style",e);for(var a=gcfmFindElementsByClassName("gcfm-body-style-toggle-icon"),n=0;n{gcfmFindElementById("gcfm-share-modal-to-mobile").setAttribute("data-shareurl",e),gcfmFindElementById("gcfm-share-modal-to-mobile").setAttribute("data-sharetext",e),gcfmFindElementById("gcfm-share-modal-to-link").setAttribute("data-shareurl",e),gcfmFindElementById("gcfm-share-modal-to-facebook").setAttribute("href","https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(e)),gcfmFindElementById("gcfm-share-modal-to-x").setAttribute("href","https://twitter.com/intent/tweet?url="+encodeURIComponent(e)+"&text="+encodeURIComponent(n)+"&hashtags=godcaster");var t=d+' shared "'+i+'"',a=(d.trim()||(t='Sharing "'+i+'" with you...'),d+' wrote: "'+n+'"');n.trim()||d.trim()?n.trim()?d.trim()||(a='The sharer wrote: "'+n+'"'):a=d+' shared "'+i+'" with you...':a='Someone shared "'+i+'" with you...',gcfmFindElementById("gcfm-share-modal-to-email").setAttribute("href","mailto:?subject="+encodeURIComponent(t)+"&body="+encodeURIComponent(a)+"%0D%0A%0D%0A"+encodeURIComponent(e)),gcfmFindElementById("gcfm-share-modal-destinations").classList.remove("hidden"),gcfmFindElementById("gcfm-share-modal-submit").classList.add("hidden"),gcfmFindElementById("gcfm-share-modal-name-section").classList.add("hidden"),gcfmFindElementById("gcfm-share-modal-message-section").classList.add("hidden"),gcfmFindElementById("gcfm-share-modal-timestamp-section").classList.add("hidden")})}if("gcfm-share-modal-to-link"===e.id)return gcfmCopyHrefToClipboard("gcfm-share-modal-to-link"),!1;if("gcfm-share-modal-to-mobile"===e.id)return i=gcfmFindElementById("gcfm-share-modal-to-mobile").getAttribute("data-shareurl"),c=gcfmFindElementById("gcfm-share-modal-to-mobile").getAttribute("data-sharetext"),navigator.share({url:i,text:c}),!1;if(e.classList.contains("gcfm-button-episode-share"))return r=e,i=gcfmFindElementById("gcfm-share-modal-timestamp"),(a=gcfmFindElementById("gcfm-share-modal")).setAttribute("data-share-trigger-node-id",r.id),i.disabled=!0,0',a.pause(),a.classList.add("hidden"),n.setAttribute("src",""),n.setAttribute("type",""),d.classList.remove("hidden"),gcfmPauseMedia(),2==gcfmGetControlsPosition()&&gcfmHideAudioBar(),i.classList.remove("hidden"),!1):(gcfmCloseVideo(),-1 div");return 0Math.abs(t)&&(0String.fromCharCode(e)).join("")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function gcfmGetCleanUrl(e){let t=new URL(window.location.href);var a=new URLSearchParams(t.search);return"dashboard.godcaster.fm"==(t="dashboard.lightfeed.org"==t.hostname&&e?new URL("https://player.lightfeed.org/pwa/"+gcfmGetPlayerId()):t).hostname&&e&&(t=new URL("https://player.godcaster.fm/pwa/"+gcfmGetPlayerId())),a.delete("gcfm-shared"),a.delete("gcfm-style"),a.delete("gcfm-page"),a.delete("gcfm-did"),a.delete("gcfm-pid"),a.delete("gcfm-fid"),a.delete("gcfm-eid"),a.delete("gcfm-pwa"),a.delete("pwa"),t.hash="",t.search=a.toString(),t.toString()}function gcfmGetCleanMediaUrl(e){var e=new URL(e),t=new URLSearchParams(e.search);return t.delete("_from"),t.delete("_ulid"),e.search=t.toString(),e.toString()}function gcfmCopyHrefToClipboard(e){e=gcfmFindElementById(e);if(!e)return!1;let t=e.getAttribute("data-shareurl");navigator.clipboard.writeText(t).then(()=>{alert("Link copied to your clipboard.")}).catch(e=>{console.error("Failed to copy link to clipboard: ",e),window.open(t,"_blank")})}function gcfmDebounce(t,a=500){let n;return(...e)=>{clearTimeout(n),n=setTimeout(()=>{t.apply(this,e)},a)}}function gcfmBodyIsLoading(e){var t=gcfmFindElementById("gcfm-body-loading-panel");e?(e=gcfmFindElementById("gcfm-body-wrapper"),t.style.height=e.offsetHeight+"px",t.style.width=e.offsetWidth+"px",t.classList.remove("hidden")):t.classList.add("hidden")}-1!==document.currentScript.src.indexOf("lightfeed.org")&&(cgGcfmPlayerUrl="https://player.lightfeed.org",cgGcfmAssetsUrl="https://assets.lightfeed.org",cgGcfmApiUrl="https://api.lightfeed.org"),document.addEventListener("click",gcfmHandlePlayerClick),document.addEventListener("change",gcfmHandlePlayerChange),document.addEventListener("keydown",gcfmHandlePlayerKeyDown),document.addEventListener("input",gcfmHandleSliderClick),document.addEventListener("error",gcfmHandlePlayerError,!0),document.addEventListener("touchstart",gcfmHandleTouchStart,!1),document.addEventListener("touchmove",gcfmHandleTouchMove,!1),window.addEventListener("resize",gcfmResizeHandler);let gcfmInsertSliderAdvance=e=>{var t=gcfmFindElementsByClassName("gcfm-insert-slider-slide");if(0==t.length)return!1;for(let e=0;en.abort(),a);try{var i=await fetch(e,t);if(clearTimeout(d),i.ok)return await i.json();throw new Error("HTTP error! Status: "+i.status)}catch(e){if("AbortError"===e.name)throw new Error("Request timed out");throw e}return e}async function gcfmApiGetShortShareLink(e){var t=cgGcfmApiUrl+"/api/shortlink/"+gcfmGetPlayerId(),a=gcfmGetPlayerDid(),n=gcfmGenerateSha1Hash(a+encodeURIComponent(e)),d=encodeURIComponent(e);try{return(await gcfmFetchJson(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:d,did:a,secval:n})},2e3)).link}catch(e){console.error("Error:",e.message)}return e}function gcfmCreateShareLink(e,t,a){var n=e.getAttribute("data-episodetitle"),d=e.getAttribute("data-episodeid"),i=e.getAttribute("data-gcepisodeid"),r=new URL(gcfmGetCleanUrl(!0)),c=(r.searchParams.append("gcfm-fid",e.getAttribute("data-feedid")),d&&""!==d&&r.searchParams.append("gcfm-eid",d),r.searchParams.append("gcfm-shared","true"),gcfmFindElementById("gcfm-share-modal-timestamp").checked&&(c=Math.floor(gcfmFindElementById("gcfm-player-audio").currentTime),r.searchParams.append("gcfm-ts",c),gcfmFindElementById("gcfm-share-modal-timeshow").value=gcfmFormatCurrentSecondsAsTime(Math.floor(c))),r.hash="gcfm-isolator",gcfmFindElementById("gcfm-share-modal").getAttribute("data-shareurl")),l=new URL(c);return l.searchParams.append("dest_url",r.href),l.searchParams.append("pid",e.getAttribute("data-playerid")),l.searchParams.append("fid",e.getAttribute("data-feedid")),i&&""!==i&&l.searchParams.append("eid",i),d&&""!==d?l.searchParams.append("title",n):l.searchParams.append("title","n/a"),t.trim()&&l.searchParams.append("message",t),a.trim()&&l.searchParams.append("name",a),gcfmFindElementById("gcfm-share-modal-timestamp").checked&&(r=Math.floor(gcfmFindElementById("gcfm-player-audio").currentTime),l.searchParams.append("ts",r)),c+"/"+gcfmBase64urlEncode(l.href)}function gcfmResizeViewportHandler(){var e=gcfmFindElementById("gcfm-audio-bar-wrapper"),t=gcfmFindElementById("gcfm-audio-control-display"),a=(gcfmAudioBarSizeHandler(),e.querySelector("#gcfm-audio-control-playhead")),n=e.querySelector("#gcfm-audio-control-art"),e=Math.floor(e.offsetWidth-a.offsetWidth-n.offsetWidth-20);t.style.maxWidth=0>>32-t}var a=(t=unescape(encodeURIComponent(t))).length,d=[];for(let e=0;e>2]|=t.charCodeAt(e)<<24-e%4*8;d[a>>2]|=128<<24-a%4*8,d[15+(a+8>>6<<4)]=8*a;var i=new Array(80);let r=1732584193,c=4023233417,l=2562383102,m=271733878,o=3285377520;for(let a=0;a>>4*e&15,a+=n.toString(16);return a}).join("")}async function gcfmUpdateLiveMetadata(){var e="https://metaproxy.godcaster.fm/metadata?url="+gcfmGetCleanMediaUrl(gcfmFindElementById("gcfm-player-audio-source").getAttribute("src"));try{var t=await gcfmFetchJson(e,{},2e3);t.StreamTitle&&""!==t.StreamTitle&&gcfmSetPlayerTitle(t.StreamTitle.replace(/\[[0-9]+.*?\]/g,"").trim())}catch(e){return void console.error("Error:",e.message)}}gcfmDocumentObserver.observe(document,{subtree:!0,childList:!0}),document.addEventListener("readystatechange",function(){gcfmLoadGodcasterWhenDOMReady()});