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>
AntennaPod's GpodnetEpisodeActionPostResponse expects update_urls
in the episode upload response, not just timestamp.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
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>
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>
- 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>