0.14.0 BluRay Series Flow

This commit is contained in:
2026-04-20 08:41:48 +00:00
parent 010c96461c
commit 9890971ff3
23 changed files with 2282 additions and 310 deletions
+16 -4
View File
@@ -65,9 +65,11 @@ const PROFILED_SETTINGS = {
audiobook: 'raw_dir_audiobook_owner'
},
series_raw_dir: {
bluray: 'raw_dir_bluray_series',
dvd: 'raw_dir_dvd_series'
},
series_raw_dir_owner: {
bluray: 'raw_dir_bluray_series_owner',
dvd: 'raw_dir_dvd_series_owner'
},
movie_dir: {
@@ -77,6 +79,7 @@ const PROFILED_SETTINGS = {
audiobook: 'movie_dir_audiobook'
},
series_dir: {
bluray: 'series_dir_bluray',
dvd: 'series_dir_dvd'
},
movie_dir_owner: {
@@ -86,6 +89,7 @@ const PROFILED_SETTINGS = {
audiobook: 'movie_dir_audiobook_owner'
},
series_dir_owner: {
bluray: 'series_dir_bluray_owner',
dvd: 'series_dir_dvd_owner'
},
mediainfo_extra_args: {
@@ -877,7 +881,12 @@ class SettingsService {
const cd = this.resolveEffectiveToolSettings(map, 'cd');
const audiobook = this.resolveEffectiveToolSettings(map, 'audiobook');
return {
bluray: { raw: bluray.raw_dir, movies: bluray.movie_dir },
bluray: {
raw: bluray.raw_dir,
seriesRaw: bluray.series_raw_dir || bluray.raw_dir,
movies: bluray.movie_dir,
series: bluray.series_dir
},
dvd: { raw: dvd.raw_dir, seriesRaw: dvd.series_raw_dir || dvd.raw_dir, movies: dvd.movie_dir, series: dvd.series_dir },
cd: { raw: cd.raw_dir, movies: cd.movie_dir },
audiobook: { raw: audiobook.raw_dir, movies: audiobook.movie_dir },
@@ -1086,16 +1095,17 @@ class SettingsService {
);
const cmd = map.makemkv_command;
const extraArgs = splitArgs(map.makemkv_analyze_extra_args);
const disableMinLengthFilter = Boolean(options?.disableMinLengthFilter);
const hasExplicitMinLength = extraArgs.some((arg) => /^--minlength(?:=|$)/i.test(String(arg || '').trim()));
const minLengthMinutes = Number(map.makemkv_min_length_minutes || 0);
const minLengthSeconds = Number.isFinite(minLengthMinutes) && minLengthMinutes > 0
? Math.round(minLengthMinutes * 60)
: 0;
const minLengthArgs = (!hasExplicitMinLength && minLengthSeconds > 0)
const minLengthArgs = (!disableMinLengthFilter && !hasExplicitMinLength && minLengthSeconds > 0)
? [`--minlength=${minLengthSeconds}`]
: [];
const args = ['-r', ...minLengthArgs, ...extraArgs, 'info', this.resolveSourceArg(map, deviceInfo)];
logger.debug('cli:makemkv:analyze', { cmd, args, deviceInfo });
logger.debug('cli:makemkv:analyze', { cmd, args, deviceInfo, disableMinLengthFilter });
return { cmd, args };
}
@@ -1105,12 +1115,13 @@ class SettingsService {
const cmd = map.makemkv_command;
const sourceArg = `file:${sourcePath}`;
const extraArgs = splitArgs(map.makemkv_analyze_extra_args);
const disableMinLengthFilter = Boolean(options?.disableMinLengthFilter);
const hasExplicitMinLength = extraArgs.some((arg) => /^--minlength(?:=|$)/i.test(String(arg || '').trim()));
const minLengthMinutes = Number(map.makemkv_min_length_minutes || 0);
const minLengthSeconds = Number.isFinite(minLengthMinutes) && minLengthMinutes > 0
? Math.round(minLengthMinutes * 60)
: 0;
const minLengthArgs = (!hasExplicitMinLength && minLengthSeconds > 0)
const minLengthArgs = (!disableMinLengthFilter && !hasExplicitMinLength && minLengthSeconds > 0)
? [`--minlength=${minLengthSeconds}`]
: [];
const args = ['-r', ...minLengthArgs, ...extraArgs, 'info', sourceArg];
@@ -1120,6 +1131,7 @@ class SettingsService {
cmd,
args,
sourcePath,
disableMinLengthFilter,
requestedTitleId: Number.isFinite(titleIdRaw) && titleIdRaw >= 0 ? Math.trunc(titleIdRaw) : null
});
return { cmd, args, sourceArg };