Commit Graph
14 Commits
Author SHA1 Message Date
Michael b2d0af639f feat: implement audio player component with progress tracking and add library page for managing subscriptions 2026-04-16 13:13:12 +02:00
Michael 872ef5c31a feat: implement backend podcast subscription controllers and frontend library page with optimistic updates 2026-04-16 13:07:46 +02:00
Michael 38521c45dc feat: add AddPodcast and Trending pages for podcast discovery and subscription management 2026-04-16 13:01:53 +02:00
Michael f50d1072a9 feat: add Library page to manage and unsubscribe from podcast subscriptions 2026-04-16 13:00:10 +02:00
Michael 2b971f97b3 feat: implement main navigation component and integrate protected routing in App structure 2026-04-16 12:57:37 +02:00
Michael 2c2d7501e6 feat: add Discover page component and define image tag in docker-compose 2026-04-16 12:39:33 +02:00
Michael 2d5e90a441 feat: add Trending and AddPodcast pages for podcast discovery and subscription management 2026-04-16 12:35:52 +02:00
Michael f48789dfde feat: implement application routing with protected routes and sidebar navigation component 2026-04-16 12:27:58 +02:00
MichaelandClaude Sonnet 4.6 a8cef14226 Rend l'abonnement idempotent (409 → 200)
Abonner deux fois au même podcast retourne 200 au lieu de 409.
Tous les messages d'erreur traduits en français.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 11:40:22 +02:00
MichaelandClaude Sonnet 4.6 59144e9ce6 Remplace PodcastIndex par iTunes Search API (gratuit, sans clé)
- Réécriture complète de podcastIndexService avec l'API iTunes d'Apple
- Recherche de podcasts : itunes.apple.com/search (gratuit, pas d'auth)
- Tendances : top podcasts France via rss.applemarketingtools.com + lookup RSS URLs
- Suppression des vérifications isConfigured() dans le contrôleur

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 11:21:26 +02:00
MichaelandClaude Sonnet 4.6 9a3171f640 Ajoute un champ RSS URL dans la page Découvrir
Permet d'abonner un podcast directement par son URL de flux RSS, sans passer par la recherche PodcastIndex.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 11:19:40 +02:00
MichaelandClaude Sonnet 4.6 c7a5c171d1 Traduit l'UI en français et corrige les bugs de recherche/abonnement
- Traduit toutes les pages et composants en français (Dashboard, Login, Discover, Navigation, Header, EpisodeCard, AudioPlayer)
- Corrige l'erreur 500 sur /api/podcasts/discover : z.coerce.number() au lieu de z.number() pour limit/offset (paramètres query string)
- Corrige l'abonnement manuel via URL RSS : crée le podcast depuis le flux RSS au lieu de renvoyer 400

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 11:15:42 +02:00
Michael 9bb61cc8a7 feat: implement podcast discovery with PodcastIndex API integration and Discover page 2026-04-16 10:01:05 +02:00
Michael 068f4e7ef7 feat: implement React components - dashboard, auth pages, audio player UI 2026-04-16 09:56:17 +02:00