diff options
Diffstat (limited to 'aero.js')
| -rw-r--r-- | aero.js | 25 |
1 files changed, 24 insertions, 1 deletions
@@ -176,4 +176,27 @@ async function fetchVisitorCount() { return j.count; } -window.Aero = { spawnBubbles, makeClouds, sparkleCursor, makeDraggable, counterHTML, nowPlayingHTML, animateEq, musicToggleHTML, bindMusicToggle, fetchLastFm, fetchFilms, fetchVisitorCount }; +async function fetchReelMouthFeed(limit = 6) { + const url = `https://itunes.apple.com/lookup?id=1709836497&entity=podcastEpisode&limit=${limit + 1}`; + const r = await fetch(url); + if (!r.ok) throw new Error('itunes ' + r.status); + const j = await r.json(); + const podcast = j.results.find(x => x.kind === 'podcast'); + const episodes = j.results.filter(x => x.kind === 'podcast-episode').slice(0, limit); + return { + art: podcast ? podcast.artworkUrl600 : null, + episodes: episodes.map(e => { + const ms = e.trackTimeMillis || 0; + const mins = Math.floor(ms / 60000); + const h = Math.floor(mins / 60); + const m = mins % 60; + return { + title: e.trackName, + url: e.trackViewUrl, + duration: h ? `${h}:${m.toString().padStart(2, '0')}` : `${m}m`, + }; + }), + }; +} + +window.Aero = { spawnBubbles, makeClouds, sparkleCursor, makeDraggable, counterHTML, nowPlayingHTML, animateEq, musicToggleHTML, bindMusicToggle, fetchLastFm, fetchFilms, fetchVisitorCount, fetchReelMouthFeed }; |
