diff --git a/admin.php b/admin.php index c4deae9..69e096a 100644 --- a/admin.php +++ b/admin.php @@ -909,12 +909,20 @@ function regenerate_input_dir_maps($dir, $config){ } } function cached_video_metadata($output, $fallback){ - $meta = ['title'=>$fallback['title'] ?? '', 'date'=>$fallback['date'] ?? '', 'location'=>$fallback['place'] ?? '', 'quote_da'=>$fallback['quote_da'] ?? '', 'description'=>$fallback['description'] ?? '']; + $meta = [ + 'title'=>$fallback['title'] ?? '', + 'teaser'=>$fallback['teaser'] ?? '', + 'date'=>$fallback['date'] ?? '', + 'sort_date'=>$fallback['date'] ?? '', + 'location'=>$fallback['place'] ?? '', + 'quote_da'=>$fallback['quote_da'] ?? '', + 'description'=>$fallback['description'] ?? '' + ]; $cacheFile = __DIR__ . '/cache/videos.json'; $cache = is_file($cacheFile) ? json_decode((string)file_get_contents($cacheFile), true) : []; $cached = $cache['items'][$output]['metadata'] ?? null; if (is_array($cached)) { - foreach (['title','date','location','quote_da','description'] as $k) if (!empty($cached[$k])) $meta[$k] = $cached[$k]; + foreach (['title','teaser','date','sort_date','location','quote_da','description'] as $k) if (!empty($cached[$k])) $meta[$k] = $cached[$k]; } return $meta; } @@ -1308,6 +1316,8 @@ if ($keywordValue !== '' || $statusFilterActive) { $hasFullVideo = $fullOutput !== '' && is_file($config['videos_dir'].'/'.$fullOutput); $hasPreviewVideo = $previewOutput !== '' && is_file($config['videos_dir'].'/'.$previewOutput); $preview = input_dir_preview($dir); + $displayOutput = ($preview && $hasPreviewVideo) ? $previewOutput : ($hasFullVideo ? $fullOutput : ($hasPreviewVideo ? $previewOutput : '')); + $hasVideo = $displayOutput !== ''; $enabled = input_dir_enabled($dir); $canShow = $hasFullVideo && !$preview; $visible = $canShow && input_dir_visible($dir); @@ -1323,12 +1333,13 @@ if ($keywordValue !== '' || $statusFilterActive) { if ($keywordValue === '') return true; - $title = (string)(($data['title'] ?? '') !== '' ? $data['title'] : basename($dir)); - $teaser = (string)($data['teaser'] ?? ''); - $description = (string)($data['description'] ?? ''); - $quoteDa = (string)($data['quote_da'] ?? ''); - $date = (string)($data['date'] ?? ''); - $location = (string)($data['place'] ?? ''); + $meta = $hasVideo ? cached_video_metadata($displayOutput, $data) : ['title'=>(string)($data['title'] ?? ''),'teaser'=>(string)($data['teaser'] ?? ''),'date'=>(string)($data['date'] ?? ''),'location'=>(string)($data['place'] ?? ''),'quote_da'=>(string)($data['quote_da'] ?? ''),'description'=>(string)($data['description'] ?? '')]; + $title = (string)(($meta['title'] ?? '') !== '' ? $meta['title'] : basename($dir)); + $teaser = (string)($meta['teaser'] ?? ''); + $description = (string)($meta['description'] ?? ''); + $quoteDa = (string)($meta['quote_da'] ?? ''); + $date = (string)($meta['date'] ?? ''); + $location = (string)($meta['location'] ?? ''); if ($keywordType === 'date') return ci_contains($date, $keywordValue); if ($keywordType === 'location') return ci_contains($location, $keywordValue); @@ -1345,13 +1356,13 @@ $editDir = null; $editStatus = ''; $editRunning = false; $editData = ['title'=>' if ($editName !== '' || $editId !== '') { try { $editDir = resolve_input_dir_from_request($config['uploads_dir'], $editId, $editName, $articleIndex); $editStatus = input_dir_status($editDir); $editRunning = input_dir_running($editDir); if (!$editRunning) { $editData = read_data($editDir); $editFiles = media_sort_files($editDir, list_files($editDir)); } } catch (Throwable $e) { $err = $e->getMessage(); } } $runningJobs = active_worker_jobs($config); ?> -MVLog Admin +MVLog Admin

Videos without input dir

No orphan videos.


MB
-

No input directories yet.

(string)($data['title'] ?? ''),'teaser'=>(string)($data['teaser'] ?? ''),'date'=>(string)($data['date'] ?? ''),'location'=>(string)($data['place'] ?? ''),'quote_da'=>(string)($data['quote_da'] ?? ''),'description'=>(string)($data['description'] ?? '')]; $currentSignature=$info['signature'] ?? ''; $fullFingerprint=is_array($state)?(string)($state['fingerprint'] ?? ''):''; $previewFingerprint=is_array($state)?(string)($state['preview_fingerprint'] ?? ''):''; $editedSinceRender=$hasFullVideo && $currentSignature !== '' && $fullFingerprint !== '' && $currentSignature !== $fullFingerprint; $editedSincePreview=!$hasFullVideo && $previewVideo && $currentSignature !== '' && $previewFingerprint !== '' && $currentSignature !== $previewFingerprint; $staleLabel=$editedSinceRender ? 'Edited since render' : ($editedSincePreview ? 'Edited since preview' : ''); ?>
Map
No video yet
Map

Thumb source:

+

No input directories yet.

(string)($data['title'] ?? ''),'teaser'=>(string)($data['teaser'] ?? ''),'date'=>(string)($data['date'] ?? ''),'location'=>(string)($data['place'] ?? ''),'quote_da'=>(string)($data['quote_da'] ?? ''),'description'=>(string)($data['description'] ?? '')]; $currentSignature=$info['signature'] ?? ''; $fullFingerprint=is_array($state)?(string)($state['fingerprint'] ?? ''):''; $previewFingerprint=is_array($state)?(string)($state['preview_fingerprint'] ?? ''):''; $editedSinceRender=$hasFullVideo && $currentSignature !== '' && $fullFingerprint !== '' && $currentSignature !== $fullFingerprint; $editedSincePreview=!$hasFullVideo && $previewVideo && $currentSignature !== '' && $previewFingerprint !== '' && $currentSignature !== $previewFingerprint; $staleLabel=$editedSinceRender ? 'Edited since render' : ($editedSincePreview ? 'Edited since preview' : ''); ?>
Map
No video yet
Map

Thumb source:

@@ -1403,7 +1414,7 @@ $runningJobs = active_worker_jobs($config);
-
RenderingEdit

No videoPreview video

โ€œโ€

ยท files

+
RenderingEdit

โ€œโ€

Edit input dir

in-dir/

This input directory is . Editing is disabled until the job completes.

Edit input dir

in-dir/

Files and captions

No caption for audio files

Add new movie input