All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 43s
The player now holds a queue instead of a single item, so albums play through and single tracks share the same code path. Adds a "stream" item kind for expiring, remotely-hosted sources: Bandcamp signs its mp3 URLs for ~24h, so an item carries the page it came from and re-resolves itself on error or on a stale restored session, falling back to the iframe embed if that fails too. Gated behind GERBEUR_BANDCAMP_PLAYER (default "embed"), injected into a meta tag the same way as site-name/site-emoji. Also: player header gains artwork and a subtitle, volume persists across queue advances and reloads, and cross-origin streams get a plain seek bar rather than a waveform that can never decode. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SbtjNsT5wvuABnfqhegZEJ
30 lines
1.9 KiB
HTML
30 lines
1.9 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=__ICON_VERSION__" />
|
|
<link rel="icon" href="/favicon.ico?v=__ICON_VERSION__" sizes="any" />
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=__ICON_VERSION__" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=__ICON_VERSION__" />
|
|
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png?v=__ICON_VERSION__" />
|
|
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192.png?v=__ICON_VERSION__" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Saira:ital,wght@0,100..900;1,100..900&family=Space+Grotesk:wght@400;700;900&display=swap" rel="stylesheet">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="theme-color" content="#111827" />
|
|
<meta name="site-name" content="__SITE_NAME__" />
|
|
<meta name="site-emoji" content="__SITE_EMOJI__" />
|
|
<meta name="bandcamp-player" content="__BANDCAMP_PLAYER__" />
|
|
<link rel="manifest" href="/manifest.webmanifest?v=__ICON_VERSION__" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png?v=__ICON_VERSION__" />
|
|
<title>__SITE_NAME__</title>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script>(function(){var s=localStorage.getItem("style"),c=localStorage.getItem("color-scheme");if(s&&s!=="smooth"&&s!=="default")document.documentElement.setAttribute("data-style",s);if(c&&c!=="auto")document.documentElement.setAttribute("data-color-scheme",c);})();</script>
|
|
<script>if ('serviceWorker' in navigator) navigator.serviceWorker.register('/sw.js');</script>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|