Commit graph

8 commits

Author SHA1 Message Date
5a2841e7a6 AntennaPod-Import und automatischer Download pro Podcast
- Neuer Befehl `manage.py import_antennapod <backup.db> --user <name> [--dry-run]
  [--global-auto-download on|off] [--backup-date ...]`: übernimmt aus einer
  AntennaPod-Datenbanksicherung die Abos (Abgleich über normalisierte URL,
  fehlende werden angelegt, lokale übersprungen), die Podcast-Einstellungen
  (Tempo, Intro/Outro, Lautstärke, Filter mit Phrasen in Anführungszeichen,
  Mindestlänge, neue Folgen, „nicht aktualisieren“ -> ignorieren, automatischer
  Download), den Zustand jeder Folge mit Zustand (gehört, neu, Position,
  Favorit, Zeitpunkt), die Warteschlange (AntennaPods Reihenfolge zuerst) und
  nimmt bekannte, dort nicht neue Folgen aus „Neu“. Neuere Änderungen in diora
  bleiben, Favoriten werden vereinigt. Alles in einer Transaktion; ein zweiter
  Lauf ändert nichts mehr.
- PodcastFeed.auto_download (Einstellung pro Podcast, in feeds/, state/ und
  feeds/<id>/settings/) und PodcastSettings.auto_download_default (in settings/
  und state/), mit dem neue Abos (Hinzufügen, OPML, gpodder, Import) starten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 11:41:04 +02:00
f9b3a0ce04 Podcasts: Inbox und Gehört wie in AntennaPod
Some checks failed
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Failing after 28s
- Eingereihte und angefangene Folgen verlassen die Inbox (ausgeblendet,
  nicht gehört), statt dort neben der Warteschlange zu stehen.
- Gehört heißt: höchstens 30 s vor dem Ende, wie in den Apps, statt bei
  90 % (bei 2 h waren das 12 Minuten vor Schluss). Gilt auch für den
  gPodder-Sync.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 08:26:28 +02:00
c335ab4094 gPodder-Sync: Hörstelle auf die eigene Folge schreiben
Some checks failed
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Failing after 28s
Die Folge wurde nur über die Audio-Adresse gesucht, über alle Nutzer
hinweg. Haben zwei Nutzer denselben Podcast, landete die Stelle bei der
Folgen-Zeile des anderen (der eigene Fortschritt, aber an der falschen
Folge) und kam beim eigenen Abo nie an. Jetzt nur unter den eigenen
Abos gesucht; mit Test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 08:18:23 +02:00
marwin
44d51d3a7f Fix gpodder: add update_urls to episode actions POST response
All checks were successful
Build and push Docker image / build (push) Successful in 13s
Test / test (push) Successful in 16s
AntennaPod's GpodnetEpisodeActionPostResponse expects update_urls
in the episode upload response, not just timestamp.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 19:08:46 +01:00
marwin
a205eafd79 Fix gpodder sync: return update_urls in subscription GET response
All checks were successful
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Successful in 15s
AntennaPod throws JSONException when update_urls is missing from the
subscription list response. Return the change-format object instead
of a plain array for GET requests without a since parameter.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 17:15:36 +01:00
Marwin Schulz
bb78afc569 Fix gPodder sync timeout: don't refresh feeds on subscription import
All checks were successful
Build and push Docker image / build (push) Successful in 13s
Test / test (push) Successful in 16s
With 400 subscriptions, the initial sync POST was triggering 400
sequential RSS fetches in one request, causing a timeout/sync failure.
Feed metadata is populated by the cron job instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 13:20:34 +01:00
Marwin Schulz
dcef4736e6 Fix gPodder sync: add missing update_urls to subscription change responses
All checks were successful
Build and push Docker image / build (push) Successful in 11s
Test / test (push) Successful in 14s
AntennaPod throws JSONException when update_urls is absent from the
GET ?since=... subscription response. Added update_urls: [] to both
subscriptions_by_device and subscriptions_all delta responses.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 11:50:24 +01:00
marwin
824b77a033 Add gPodder sync API and bump SW cache to v5
All checks were successful
Build and push Docker image / build (push) Successful in 15s
Test / test (push) Successful in 17s
- Implement gPodder API v2 compatible endpoints at /api/2/:
  - Auth: login/logout via HTTP Basic Auth or session
  - Devices: list and register sync devices
  - Subscriptions: get/add/remove per device, delta sync with ?since=
  - Episode actions: upload play/position events, syncs to EpisodeProgress
- Server URL for AntennaPod: https://diora.creamfresh.xyz/api/2/
- Bump SW cache diora-v4 → v5 to force re-fetch of updated app.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 06:36:41 +01:00