From b1dd38f880d843dad92f0d76838edd40f1bf687b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 13 Aug 2019 12:39:21 +0300 Subject: add DiskCache.getUrl() and use it in a bunch of places --- classes/handler/public.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes/handler/public.php') diff --git a/classes/handler/public.php b/classes/handler/public.php index 0e990bec7..97c61cfd3 100755 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -1202,7 +1202,7 @@ class Handler_Public extends Handler { } function cached_url() { - @$req_filename = basename($_GET['hash']); + @$req_filename = basename($_GET['file']); // we don't need an extension to find the file, hash is a complete URL $hash = preg_replace("/\.[^\.]*$/", "", $req_filename); -- cgit v1.2.3 From 133c2b482b8097e4912281cf15d39048c1c49bd5 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 13 Aug 2019 12:46:57 +0300 Subject: move rewrite_cached_urls to DiskCache::rewriteUrls() --- classes/handler/public.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes/handler/public.php') diff --git a/classes/handler/public.php b/classes/handler/public.php index 97c61cfd3..27e984be9 100755 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -382,7 +382,7 @@ class Handler_Public extends Handler { $line = $p->hook_render_article($line); } - $line['content'] = rewrite_cached_urls($line['content']); + $line['content'] = DiskCache::rewriteUrls($line['content']); $enclosures = Article::get_article_enclosures($line["id"]); -- cgit v1.2.3 From fdb6066bf67751ebb388a3de082d80f5444e3681 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 13 Aug 2019 16:40:21 +0300 Subject: * HOOK_ENCLOSURE_ENTRY: pass article_id to handler * DiskCache: multiple fixes; support isWritable() for cache entries, set content-disposition for send() * public/cached_url: allow selecting files from sub-caches other than images * plugins/Cache_Starred_Images: rework to use DiskCache, can be enabled per-user, properly handles article enclosures, etc --- classes/handler/public.php | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'classes/handler/public.php') diff --git a/classes/handler/public.php b/classes/handler/public.php index 27e984be9..901844e36 100755 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -1202,24 +1202,21 @@ class Handler_Public extends Handler { } function cached_url() { - @$req_filename = basename($_GET['file']); + $filename = $_GET['file']; - // we don't need an extension to find the file, hash is a complete URL - $hash = preg_replace("/\.[^\.]*$/", "", $req_filename); - - if ($hash) { - - $filename = CACHE_DIR . '/images/' . $hash; - - if (file_exists($filename)) { - header("Content-Disposition: inline; filename=\"$req_filename\""); + if (strpos($filename, "/") !== FALSE) { + list ($cache_dir, $filename) = explode("/", $filename, 2); + } else { + $cache_dir = "images"; + } - send_local_file($filename); + $cache = new DiskCache($cache_dir); - } else { - header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); - echo "File not found."; - } + if ($cache->exists($filename)) { + $cache->send($filename); + } else { + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); + echo "File not found."; } } -- cgit v1.2.3