mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 18:06:02 +00:00
rework image caching to work without permanent article content rewriting (refs #582)
This commit is contained in:
21
image.php
21
image.php
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
require_once "config.php";
|
require_once "config.php";
|
||||||
|
|
||||||
|
// backwards compatible wrapper for old-style image caching
|
||||||
|
/* if (isset($_GET['url'])) {
|
||||||
$url = base64_decode($_GET['url']);
|
$url = base64_decode($_GET['url']);
|
||||||
|
|
||||||
$filename = CACHE_DIR . '/images/' . sha1($url) . '.png';
|
$filename = CACHE_DIR . '/images/' . sha1($url) . '.png';
|
||||||
@@ -14,4 +16,23 @@
|
|||||||
} else {
|
} else {
|
||||||
header("Location: $url");
|
header("Location: $url");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
} */
|
||||||
|
|
||||||
|
@$hash = basename($_GET['hash']);
|
||||||
|
|
||||||
|
if ($hash) {
|
||||||
|
|
||||||
|
$filename = CACHE_DIR . '/images/' . $hash . '.png';
|
||||||
|
|
||||||
|
if (file_exists($filename)) {
|
||||||
|
header("Content-type: image/png");
|
||||||
|
echo file_get_contents($filename);
|
||||||
|
} else {
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
|
||||||
|
echo "File not found.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -2590,10 +2590,17 @@
|
|||||||
$entry->setAttribute('href',
|
$entry->setAttribute('href',
|
||||||
rewrite_relative_url($site_url, $entry->getAttribute('href')));
|
rewrite_relative_url($site_url, $entry->getAttribute('href')));
|
||||||
|
|
||||||
if ($entry->hasAttribute('src'))
|
if ($entry->hasAttribute('src')) {
|
||||||
if (preg_match('/^image.php\?i=[a-z0-9]+$/', $entry->getAttribute('src')) == 0)
|
$src = rewrite_relative_url($site_url, $entry->getAttribute('src'));
|
||||||
$entry->setAttribute('src',
|
|
||||||
rewrite_relative_url($site_url, $entry->getAttribute('src')));
|
$cached_filename = CACHE_DIR . '/images/' . sha1($src) . '.png';
|
||||||
|
|
||||||
|
if (file_exists($cached_filename)) {
|
||||||
|
$src = SELF_URL_PATH . '/image.php?hash=' . sha1($src);
|
||||||
|
}
|
||||||
|
|
||||||
|
$entry->setAttribute('src', $src);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strtolower($entry->nodeName) == "a") {
|
if (strtolower($entry->nodeName) == "a") {
|
||||||
|
|||||||
@@ -581,7 +581,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($cache_images && is_writable(CACHE_DIR . '/images'))
|
if ($cache_images && is_writable(CACHE_DIR . '/images'))
|
||||||
$entry_content = cache_images($entry_content, $site_url, $debug_enabled);
|
cache_images($entry_content, $site_url, $debug_enabled);
|
||||||
|
|
||||||
$entry_content = db_escape_string($entry_content, false);
|
$entry_content = db_escape_string($entry_content, false);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user