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>
- 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>
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>
- 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>
- Remove separate backend/ and frontend/ Dockerfiles
- Add root Dockerfile (3-stage: frontend build → backend build → runtime)
- Frontend static files served by Express from /public
- Simplify docker-compose to 3 services: mongodb, redis, app (port 3579)
- Fix vite proxy not to strip /api prefix from paths
- Default API URL to relative /api instead of hardcoded localhost
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>