PageSourceSearch

https://portfolio.gateaux-09suntan.workers.dev/now-playing.js?v=4

js portfolio.gateaux-09suntan.workers.dev collected 2026-10-03 08:09:25 UTC 2,942 bytes, 1 lines download raw bytes

1(function(){"use strict";var h="/api/now-playing.json",d=15e3,y="now-playing-cache",A=Math.ceil(300*1e3/d),l=null,a=null;function _(e){return e?e.title+"|"+e.artist:null}var b=120*1e3,g=document.getElementById("avatar-pill"),R=document.getElementById("now-playing-audio"),o=null,v=null,n=null;window.__nowPlaying={status:null,track:null};var c=null,w=!1,f=!1,t=null,S=5e3;function k(e,r){r.artwork_url?(n||(n=document.createElement("img"),n.className="vinyl-cover",n.alt="",n.decoding="async",n.setAttribute("aria-hidden","true"),n.onerror=function(){n.style.display="none"},e.insertBefore(n,e.firstChild)),n.src!==r.artwork_url&&(n.style.display="",n.src=r.artwork_url)):n&&(n.remove(),n=null)}function I(e){var r=document.createElement("div");r.className="now-playing";var u=document.createElement("div");return u.className="vinyl-disc is-playing",r.appendChild(u),v=u,k(r,e),r}function s(){if(v){var e=w?f:c==="playing";v.className=e?"vinyl-disc is-playing":"vinyl-disc is-paused"}}function P(e,r){c=r,o?k(o,e):(o=I(e),g.appendChild(o)),s()}function C(){o&&o.parentNode===g&&(o.remove(),o=null,v=null,n=null)}function T(){try{var e=localStorage.getItem(y);return e?JSON.parse(e):null}catch{return null}}function L(e){try{e.track?localStorage.setItem(y,JSON.stringify(e)):localStorage.removeItem(y)}catch{}}function m(e,r){L({status:e,track:r,lastPlayingTrack:l,baselineScrobble:a,cachedAt:Date.now()})}var p=0;function E(){fetch(h).then(function(e){if(!e.ok)throw new Error("API error");return e.json()}).then(function(e){if(e.status==="error")throw new Error("API returned error");if(p=0,e.track){var r;if(e.status==="playing")l=e.track,a=null,r=e.track;else{if(l){var u=_(e.track);a?a!==u&&(l=null,a=null):a=u}l&&e.track&&!f&&_(e.track)===_(l)&&(e.track.preview_url&&(l.preview_url=e.track.preview_url),e.track.artwork_url&&(l.artwork_url=e.track.artwork_url)),r=l||e.track}P(r,e.status)}else l=null,a=null,C();window.__nowPlaying={status:e.status||"stopped",track:e.track?l||e.track:null},m(window.__nowPlaying.status,window.__nowPlaying.track),window.__aboutCard&&window.__aboutCard.refreshIfOpen()}).catch(function(){p++,c==="playing"&&p>=A&&(c="stopped",window.__nowPlaying={status:"stopped",track:window.__nowPlaying.track},m("stopped",window.__nowPlaying.track),s(),window.__aboutCard&&window.__aboutCard.refreshIfOpen())})}function N(e){if(e)t&&(clearTimeout(t),t=null),c!=="playing"&&(w=!0),f=!0,s();else{if(f=!1,!w)return;s(),t&&clearTimeout(t),t=setTimeout(function(){w=!1,t=null,s()},S)}}function O(){t&&(clearTimeout(t),t=null),w=!1,f=!1,s()}window.__nowPlayingSetPreviewPlaying=N,window.__nowPlayingReleasePreviewOverride=O;var i=T();i&&i.track&&(P(i.track,"paused"),window.__nowPlaying={status:i.status,track:i.track},i.lastPlayingTrack&&i.baselineScrobble?(l=i.lastPlayingTrack,a=i.baselineScrobble):i.status==="playing"&&i.lastPlayingTrack&&Date.now()-(i.cachedAt||0)<b&&(l=i.lastPlayingTrack)),E(),setInterval(E,d)})();

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.