The player now takes any RSS feed URL as well as a podsteadr server, and plays podsteadr feeds hosted on the FIPS mesh. A browser can't speak FIPS, and an HTTPS page can't fetch or play http:// URLs, so .fips URLs are routed one of two ways (src/lib/net.ts): - served over the mesh (http://<npub>.fips:8097/), the page fetches .fips URLs directly over the device's own FIPS connection; - served over HTTPS (player.atobitcoin.io), .fips URLs are rewritten to the host's /fips/<host>/<port>/<path> gateway, which relays only podsteadr feeds (8095) and blossom blobs (8098) over the host's FIPS link (deploy/player-domain.conf). Also: - "Add" accepts a feed, an OPML catalog, or a server address and works out which; old saved servers migrate to the new subscription format - PWA: manifest, icons, service worker caching only the app shell (never feeds, audio or the gateway), install button, safe areas - lock-screen controls and artwork via the Media Session API - artwork, dates and durations in the episode list - no secure-context-only APIs on the mesh copy (randomUUID, clipboard) - buying episodes over FIPS is refused with a clear message: NIP-98 signs the server's public URL, which a .fips address never matches Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
898 B
HTML
21 lines
898 B
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
<meta name="theme-color" content="#000000" />
|
|
<meta name="description" content="Play any podcast RSS feed, including podsteadr servers on the FIPS mesh." />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
<meta name="apple-mobile-web-app-title" content="podsteadr" />
|
|
<link rel="manifest" href="/manifest.webmanifest" />
|
|
<link rel="icon" type="image/svg+xml" href="/icons/icon.svg" />
|
|
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
|
|
<title>podsteadr player</title>
|
|
</head>
|
|
<body>
|
|
<div id="app"></div>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
</body>
|
|
</html>
|