mirror of
https://github.com/R0m1k3/podcastic.git
synced 2026-10-24 07:28:04 +02:00
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>
This commit is contained in:
1 parent
00d92fc668
commit
c7a5c171d1
8 files changed
+68
-51
No files matched your search
@@ -12,8 +12,8 @@ const subscribeSchema = z.object({
|
||||
|
||||
const searchSchema = z.object({
|
||||
q: z.string().min(2, 'Query must be at least 2 characters'),
|
||||
limit: z.number().int().min(1).max(50).optional().default(20),
|
||||
offset: z.number().int().min(0).optional().default(0),
|
||||
limit: z.coerce.number().int().min(1).max(50).optional().default(20),
|
||||
offset: z.coerce.number().int().min(0).optional().default(0),
|
||||
});
|
||||
|
||||
export const getUserSubscriptions = async (req: Request, res: Response) => {
|
||||
@@ -49,11 +49,28 @@ export const subscribe = async (req: Request, res: Response) => {
|
||||
let podcast = await Podcast.findOne({ rssUrl });
|
||||
|
||||
if (!podcast) {
|
||||
// For now, create a basic podcast entry
|
||||
// In production, you'd fetch from PodcastIndex API or parse the RSS feed
|
||||
return res.status(400).json({
|
||||
message: 'Podcast not found. Please use a valid RSS URL.',
|
||||
});
|
||||
try {
|
||||
const result = await rssParserService.createPodcastFromRss(rssUrl, {
|
||||
title: 'Unknown Podcast',
|
||||
description: '',
|
||||
author: '',
|
||||
imageUrl: undefined,
|
||||
episodes: [],
|
||||
});
|
||||
podcast = result.podcast;
|
||||
} catch (error: any) {
|
||||
if (error.message.includes('already in database')) {
|
||||
podcast = await Podcast.findOne({ rssUrl });
|
||||
} else {
|
||||
return res.status(400).json({
|
||||
message: `Impossible de récupérer le podcast : ${error.message}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!podcast) {
|
||||
return res.status(400).json({ message: 'Impossible d\'ajouter le podcast' });
|
||||
}
|
||||
|
||||
// Check if already subscribed
|
||||
|
||||
Reference in new issue
Block a user