From 0355f4a555e851006f2a8b26d1cd3197ae688bd5 Mon Sep 17 00:00:00 2001 From: Terranom674 Date: Tue, 18 Aug 2026 22:47:44 +0200 Subject: [PATCH] Use precached WebDAV previews for derivatives --- include/webdav_image_runtime.inc.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/include/webdav_image_runtime.inc.php b/include/webdav_image_runtime.inc.php index fb5beb1..f1ef201 100644 --- a/include/webdav_image_runtime.inc.php +++ b/include/webdav_image_runtime.inc.php @@ -97,25 +97,35 @@ function bratonien_tools_webdav_image_source_info($image_id) ); } -function bratonien_tools_webdav_image_url($image_id) +function bratonien_tools_webdav_image_url($image_id, $preview=false) { $info = bratonien_tools_webdav_image_source_info($image_id); if (!$info) return null; $url = get_root_url().'plugins/'.BRATONIEN_TOOLS_ID.'/webdav-image.php?id='.(int)$image_id; + if ($preview) $url .= '&preview=1'; if ($info['etag'] !== '') $url .= '&v='.rawurlencode(substr(sha1($info['etag']), 0, 12)); return $url; } +function bratonien_tools_webdav_preview_path(array $info) +{ + $connection_id = (int)($info['connection_id'] ?? 0); + $webdav_path = trim((string)($info['webdav_path'] ?? ''), '/'); + if ($connection_id < 1 || $webdav_path === '') return null; + $path = PHPWG_ROOT_PATH.'_data/bratonien-tools/nc-webdav-preview/connection-'.$connection_id.'/'.sha1($webdav_path).'.webp'; + return is_file($path) && is_readable($path) ? $path : null; +} + function bratonien_tools_filter_webdav_src_url($url, $src_image) { if (!is_object($src_image) || empty($src_image->id)) return $url; - $webdav_url = bratonien_tools_webdav_image_url((int)$src_image->id); + $webdav_url = bratonien_tools_webdav_image_url((int)$src_image->id, false); return $webdav_url ?: $url; } function bratonien_tools_filter_webdav_derivative_url($url, $params, $src_image, $rel_url) { if (!is_object($src_image) || empty($src_image->id)) return $url; - $webdav_url = bratonien_tools_webdav_image_url((int)$src_image->id); + $webdav_url = bratonien_tools_webdav_image_url((int)$src_image->id, true); return $webdav_url ?: $url; }