fix: suppression de dest_filename du fichier d'organisation qui est faux et ne sert à rien

This commit is contained in:
MasutaYunikon committed 2026-04-14 18:37:54 +02:00
1 parent e41edd2f5e
commit 5e79699ed9
2 files changed
+23 -19

No files matched your search

+22 -14
View File
@@ -795,19 +795,21 @@ app.post('/api/rename-episode', requireAuth, async (req, res) => {
if (!orgEntry) { res.status(404).json({ error: 'Épisode non importé' }); return }
// Calculer le nouveau nom selon le mode actuel
const srcExt = path.extname(orgEntry.dest_filename)
// Le nom actuel réel = basename du dest_path (plus fiable que dest_filename)
const currentName = orgEntry.dest_path ? path.basename(orgEntry.dest_path) : orgEntry.dest_filename
const srcExt = path.extname(currentName)
let newName: string
if (nfoSupport) {
newName = ep.nfo_filename
? ep.nfo_filename.replace(/\.[^.]+$/, '') + srcExt
: orgEntry.dest_filename
: currentName
} else {
newName = ep.formatted_name?.trim()
? ep.formatted_name.replace(/[<>:"/\\|?*]/g, '').trim() + srcExt
: orgEntry.dest_filename
: currentName
}
if (newName === orgEntry.dest_filename) {
if (newName === currentName) {
res.json({ ok: true, renamed: false, message: 'Nom déjà correct' })
return
}
@@ -900,26 +902,31 @@ app.get('/api/organized-summary', requireAuth, async (_req, res) => {
}
if (!orgEntry) continue
// Nom réel sur disque = basename du dest_path (plus fiable que dest_filename)
const currentName = orgEntry.dest_path
? path.basename(orgEntry.dest_path)
: orgEntry.dest_filename
const srcExt = path.extname(currentName)
// Calculer le nom attendu selon nfoSupport actuel
const srcExt = path.extname(orgEntry.dest_filename)
let expectedName: string
if (nfoSupport) {
expectedName = ep.nfo_filename
? ep.nfo_filename.replace(/\.[^.]+$/, '') + srcExt
: orgEntry.dest_filename
: currentName
} else {
expectedName = ep.formatted_name?.trim()
? ep.formatted_name.replace(/[<>:"/\\|?*]/g, '').trim() + srcExt
: orgEntry.dest_filename
: currentName
}
const needsRename = expectedName !== orgEntry.dest_filename
const needsRename = expectedName !== currentName
episodes.push({
episode_id : ep.id,
episode_number: ep.episode_number,
season_number : season.season_number,
title : ep.title,
current_name : orgEntry.dest_filename,
current_name : currentName,
expected_name : expectedName,
dest_path : orgEntry.dest_path,
torrent_hash : orgHash,
@@ -972,19 +979,20 @@ app.post('/api/rename-all', requireAuth, async (req, res) => {
}
if (!orgEntry || !orgHash) continue
const srcExt = path.extname(orgEntry.dest_filename)
const currentName = orgEntry.dest_path ? path.basename(orgEntry.dest_path) : orgEntry.dest_filename
const srcExt = path.extname(currentName)
let expectedName: string
if (nfoSupport) {
expectedName = ep.nfo_filename
? ep.nfo_filename.replace(/\.[^.]+$/, '') + srcExt
: orgEntry.dest_filename
: currentName
} else {
expectedName = ep.formatted_name?.trim()
? ep.formatted_name.replace(/[<>:"/\\|?*]/g, '').trim() + srcExt
: orgEntry.dest_filename
: currentName
}
if (expectedName === orgEntry.dest_filename) continue
if (expectedName === currentName) continue
const oldPath = orgEntry.dest_path
const newPath = path.join(path.dirname(oldPath), expectedName)
@@ -997,7 +1005,7 @@ app.post('/api/rename-all', requireAuth, async (req, res) => {
...orgEntry, dest_filename: expectedName, dest_path: newPath, at: new Date().toISOString()
}
done.push(ep.id)
logger.info('api', `Rename masse : "${orgEntry.dest_filename}" → "${expectedName}"`)
logger.info('api', `Rename masse : "${currentName}" → "${expectedName}"`)
} catch (err) {
const msg = err instanceof Error ? err.message : 'Erreur'
errors.push({ episode_id: ep.id, error: msg })
+1 -5
View File
@@ -160,10 +160,6 @@ export async function scanMediaPath(
}
const { hash, srcFilename, episodeId, season, episode } = match
// Le destFilename prend l'extension réelle du fichier sur le disque
const realExt = path.extname(entry.name)
const destBase = match.destFilename.replace(/\.[^.]+$/, '')
const destFilename = destBase + realExt
presentFiles.add(`${hash}:${episodeId}`)
if (organized[hash]?.[String(episodeId)]) continue
@@ -175,7 +171,7 @@ export async function scanMediaPath(
episode,
episode_id : episodeId,
src_filename : srcFilename,
dest_filename: destFilename,
dest_filename: entry.name, // vrai nom sur disque
dest_path : full,
}
result.added++