Django internet radio player
Find a file
mrwnslz 76a164709d Podcasts im Browser: die Podcast-Seite der App statt des alten Podcast-Tabs
Der Podcast-Tab der Web-App zeigt jetzt dieselbe Oberfläche wie die
Android-App: native-podcast.js aus diora-android, unverändert kopiert nach
static/podcasts/ (tools/sync_podcast_ui.py, mit Quell-Commit im Kopf),
dazu die Podcast-Teile von native.css.

static/js/podcasts-web.js spielt im Browser die Rolle der App
(window.DioraPodcastHost statt DioraNative):
- Zustand aus /podcasts/state/, in localStorage für einen schnellen Start;
  Änderungen sofort lokal und der Reihe nach an den Server (Outbox, übersteht
  Neuladen und Offline), wie Podcasts.kt, inkl. „immer sortiert halten“
- eigener Player (nicht das Radio-Audio-Element), Warteschlange = Playlist,
  wie RadioService.EpisodeTracker: Stelle fortsetzen, Intro/Outro, Fortschritt
  alle 10 s und bei Pause, „gehört“ kurz vor Schluss (auch bei „nächste“),
  automatisch weiter, nach Pause etwas zurück (0,8/3/10/20 s), Tempo und
  Lautstärke (bis 1) pro Podcast, Sleep-Timer nur während des Abspielens mit
  Ausblenden
- Sperrbildschirm und Medientasten über navigator.mediaSession
- Abspiel-Einstellungen dieses Geräts in localStorage (wie PlaybackPrefs)
- keine Downloads (die Oberfläche blendet sie aus)
- Radio und Podcast nie gleichzeitig: eine Folge stoppt das Radio, ein Sender
  legt die Folge weg
- Bottom-Sheet und Mini-Player-Dock über der Radio-Leiste; auf breiten
  Bildschirmen eine mittige Spalte (760 px)

In der App und der Desktop-App (window.DioraNative vorhanden) tut
podcasts-web.js nichts.

Entfernt: der alte Podcast-Tab (Markup, ~1000 Zeilen in app.js, CSS), die
Podcast-Leiste im Player, INITIAL_PODCAST_FEEDS und das Herunterladen von
Folgen in den Browser-Cache (der Service Worker räumt diora-podcast-v1 ab).
Service-Worker-Cache auf v52, neue Dateien im App-Shell.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 10:26:32 +02:00
.forgejo/workflows CI: auf Python 3.12 heben, damit gegen das getestet wird, was ausgeliefert wird 2026-08-28 08:56:37 +00:00
accounts API-Token: Anfragen mit Bearer-Token brauchen kein CSRF-Token 2026-09-29 19:33:18 +02:00
books Bücher: Cloud-Import aus WebDAV/Nextcloud (SW v41) 2026-08-28 08:26:22 +00:00
diora Default-Lautstärke auf 40% senken 2026-09-04 12:30:58 +02:00
e2e Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
gpodder Podcasts: Inbox und Gehört wie in AntennaPod 2026-10-02 08:26:28 +02:00
podcasts Merge: Podcast-Einstellungen pro Podcast und robusteres Feed-Laden 2026-10-02 09:52:31 +02:00
radio Podcasts im Browser: die Podcast-Seite der App statt des alten Podcast-Tabs 2026-10-02 10:26:32 +02:00
static Podcasts im Browser: die Podcast-Seite der App statt des alten Podcast-Tabs 2026-10-02 10:26:32 +02:00
templates Podcasts im Browser: die Podcast-Seite der App statt des alten Podcast-Tabs 2026-10-02 10:26:32 +02:00
tools Podcasts im Browser: die Podcast-Seite der App statt des alten Podcast-Tabs 2026-10-02 10:26:32 +02:00
tts Vorlesen: Sprachauswahl DE/EN mit englischer Piper-Stimme (SW v43) 2026-09-01 07:04:27 +02:00
.env.example Bücher: Cloud-Import aus WebDAV/Nextcloud (SW v41) 2026-08-28 08:26:22 +00:00
.gitignore Vorlesen-Funktion im Reader: Piper/Thorsten-TTS (SW v42) 2026-08-31 22:29:13 +02:00
docker-compose.yml Add podcast feature with feed management, Docker cron, and ebook reader assets 2026-03-19 13:39:59 +01:00
Dockerfile Vorlesen: Sprachauswahl DE/EN mit englischer Piper-Stimme (SW v43) 2026-09-01 07:04:27 +02:00
Dockerfile.cron Fix cron container: switch dcron→cron, export env vars for cron jobs 2026-03-20 09:16:29 +01:00
manage.py Initial commit 2026-03-16 19:19:22 +01:00
package-lock.json Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
package.json Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
playwright.config.js Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
requirements.txt Vorlesen-Funktion im Reader: Piper/Thorsten-TTS (SW v42) 2026-08-31 22:29:13 +02:00