fix(organize): sanitisation des caractères spéciaux dans les noms de dossiers

Le titre "Kaguya-sama : Love is War Henshū" contenait un ":" qui causait
une troncation du nom de dossier sur certains systèmes de fichiers.
sanitizeDirName() remplace ":" par " -" et supprime les autres caractères
interdits (<>"/\|?*).

feat(settings): option titres optimisés Plex (title_for_plex)

Nouveau toggle "Noms de dossiers" dans les paramètres. Quand activé,
utilise le champ title_for_plex de l'API Fankai pour les noms de dossiers
au lieu du titre brut — évite les caractères spéciaux incompatibles avec
Plex et les systèmes de fichiers Windows/NTFS.

enrichSeriesDataWithOriginalFilenames fetche maintenant /series/{id} pour
injecter title_for_plex dans chaque serieData avant de passer au worker.

fix(organize): retry sur les erreurs réseau dans enrichSeriesDataWithOriginalFilenames

2 tentatives avec 500ms d'attente entre les deux pour les erreurs réseau
ponctuelles sur /seasons/{id}/episodes — évite que formatted_name soit null
à cause d'un timeout isolé au démarrage.

fix(catalogue): activeTorrents filtre désormais uniquement state=downloading

Les torrents en seeding étaient inclus dans activeTorrents, forçant
computeSerieDownloadState à retourner "downloading" même pour les séries
entièrement importées. Les badges affichaient "EN COURS" au lieu de "IMPORTÉ".
This commit is contained in:
MasutaYunikon committed 2026-03-24 19:18:51 +01:00
1 parent 82a9d51731
commit c374ceb0a7
4 files changed
+64 -12

No files matched your search

+20
View File
@@ -154,6 +154,25 @@
</p>
</div>
<!-- Titres Plex -->
<div>
<label class="text-[10px] text-[#5a7a94] tracking-widest block mb-2">NOMS DE DOSSIERS</label>
<div class="flex items-center gap-3">
<button @click="form.usePlexTitles = !form.usePlexTitles"
class="relative shrink-0 w-11 h-6 rounded-full transition-colors cursor-pointer"
:class="form.usePlexTitles ? 'bg-[#e8513a]' : 'bg-[#1e2d3d]'">
<span class="absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform duration-200"
:class="form.usePlexTitles ? 'translate-x-5' : 'translate-x-0'" />
</button>
<span class="text-xs text-[#c8d8e8]">Utiliser les titres optimisés Plex</span>
</div>
<p class="text-[10px] text-[#5a7a94] mt-1.5">
Utilise <span class="text-white">title_for_plex</span> pour les noms de dossiers —
évite les caractères spéciaux (ex: <span class="text-white">Kaguya-sama - Love is War Henshū</span>
au lieu de <span class="text-white">Kaguya-sama : Love is War Henshū</span>)
</p>
</div>
<!-- Support NFO -->
<div>
<label class="text-[10px] text-[#5a7a94] tracking-widest block mb-2">NFO / MÉTADONNÉES</label>
@@ -277,6 +296,7 @@ const form = ref({
organizeMode: 'hardlink' as 'hardlink' | 'move',
nfoSupport : false,
autoImport : true,
usePlexTitles: false,
})
const saving = ref(false)