Update gallery cache if image count changes
This commit is contained in:
@@ -16,6 +16,13 @@ $cache_file = $CONFIG['cache_file'];
|
|||||||
// Serve cached gallery JSON if fresh
|
// Serve cached gallery JSON if fresh
|
||||||
if (file_exists($cache_file)) {
|
if (file_exists($cache_file)) {
|
||||||
$data = json_decode(file_get_contents($cache_file), true);
|
$data = json_decode(file_get_contents($cache_file), true);
|
||||||
|
$count = count_all_images($CONFIG);
|
||||||
|
if ($count !== $data['countall']) {
|
||||||
|
unlink($cache_file);
|
||||||
|
$data = buildGalleryCache($CONFIG);
|
||||||
|
if (!is_dir(dirname($cache_file))) @mkdir(dirname($cache_file), 0775, true);
|
||||||
|
file_put_contents($cache_file, json_encode($data, JSON_PRETTY_PRINT));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$data = buildGalleryCache($CONFIG);
|
$data = buildGalleryCache($CONFIG);
|
||||||
if (!is_dir(dirname($cache_file))) @mkdir(dirname($cache_file), 0775, true);
|
if (!is_dir(dirname($cache_file))) @mkdir(dirname($cache_file), 0775, true);
|
||||||
@@ -37,6 +44,30 @@ echo json_encode([
|
|||||||
|
|
||||||
// --- FUNCTIONS ---
|
// --- FUNCTIONS ---
|
||||||
|
|
||||||
|
function count_all_images($CONFIG) {
|
||||||
|
$dir = $CONFIG['sorted_img_dir'];
|
||||||
|
if (!is_dir($dir)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$count = 0;
|
||||||
|
$iterator = new RecursiveIteratorIterator(
|
||||||
|
new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($iterator as $file) {
|
||||||
|
if ($file->isFile()) {
|
||||||
|
$ext = strtolower($file->getExtension());
|
||||||
|
if ($ext === 'arw' || $ext === 'raw' ||
|
||||||
|
$ext === 'jpg' || $ext === 'png' ) {
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $count;
|
||||||
|
}
|
||||||
|
|
||||||
function count_raw_files($CONFIG) {
|
function count_raw_files($CONFIG) {
|
||||||
$dir = $CONFIG['sorted_img_dir'].'/arw';
|
$dir = $CONFIG['sorted_img_dir'].'/arw';
|
||||||
if (!is_dir($dir)) {
|
if (!is_dir($dir)) {
|
||||||
@@ -101,6 +132,7 @@ function buildGalleryCache($CONFIG) {
|
|||||||
'generated' => date('c'),
|
'generated' => date('c'),
|
||||||
'countjpg' => count($images),
|
'countjpg' => count($images),
|
||||||
'countraw' => count_raw_files($CONFIG),
|
'countraw' => count_raw_files($CONFIG),
|
||||||
|
'countall' => count_all_images($CONFIG),
|
||||||
'images' => $images
|
'images' => $images
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user