From 770b8aa964613624a5df225c6bc5a0370a1ec6be Mon Sep 17 00:00:00 2001 From: hbrain Date: Mon, 25 May 2026 21:34:30 +0200 Subject: [PATCH] Use state file only for orphan videos --- new.php | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/new.php b/new.php index 9737244..0126d39 100644 --- a/new.php +++ b/new.php @@ -45,32 +45,15 @@ function write_data($dir, $post){ file_put_contents($dir . '/data.txt', implode("\n", $lines) . "\n"); } function list_files($dir){ $files = array_values(array_filter(scandir($dir), fn($f)=>$f!=='.' && $f!=='..' && is_file($dir.'/'.$f) && $f !== 'data.txt')); natcasesort($files); return $files; } -function video_title($path){ - $ffprobe = trim((string)shell_exec('command -v ffprobe 2>/dev/null')); - if ($ffprobe === '') return ''; - $json = shell_exec(escapeshellarg($ffprobe).' -v quiet -print_format json -show_entries format_tags=title '.escapeshellarg($path).' 2>/dev/null'); - $data = json_decode((string)$json, true); - $tags = $data['format']['tags'] ?? []; - foreach ($tags as $k => $v) if (strtolower($k) === 'title') return trim((string)$v); - return ''; -} function orphan_videos($config){ $referenced = []; - $sourceTitles = []; foreach (input_dirs($config['uploads_dir']) as $dir) { $stateFile = $dir . '/.movmaker-state.json'; $state = is_file($stateFile) ? json_decode((string)file_get_contents($stateFile), true) : []; if (is_array($state) && !empty($state['output'])) $referenced[basename((string)$state['output'])] = true; - $data = read_data($dir); - if (!empty($data['title'])) $sourceTitles[strtolower($data['title'])] = true; } $videos = glob($config['videos_dir'].'/*.{mp4,webm,mov,m4v}', GLOB_BRACE) ?: []; - return array_values(array_filter($videos, function($v) use ($referenced, $sourceTitles) { - if (!empty($referenced[basename($v)])) return false; - $title = video_title($v); - if ($title !== '' && !empty($sourceTitles[strtolower($title)])) return false; - return true; - })); + return array_values(array_filter($videos, fn($v)=>empty($referenced[basename($v)]))); } function save_uploads($field, $dest, $allowed){ if (empty($_FILES[$field])) return [];