summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-03-23 14:55:40 +0300
committerAndrew Dolgov <[email protected]>2017-03-23 14:55:40 +0300
commit41bead9baa6ae6fa84834ec291167fdc780b1e63 (patch)
tree309fea4ed8ee1439b02b79a1f6011a82f29da289
parent63f0ed3d9c9cd73f9cc63f08e88b8cfbfe254793 (diff)
remove local file extensions and generalize some method names for cached media
file extensions may still be present in urls, but are ignored by the backend MIGRATION (if you have any cached data worth keeping, not required): in cache/images run "rename 's/\..*$//' *" i.e. strip file extensions
-rw-r--r--classes/handler/public.php5
-rw-r--r--include/functions2.php4
-rw-r--r--include/rssfuncs.php13
-rw-r--r--plugins/af_zz_imgproxy/init.php16
4 files changed, 19 insertions, 19 deletions
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 35f677f94..a6bc3ff6f 100644
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -1046,9 +1046,12 @@ class Handler_Public extends Handler {
<?php
}
- function cached_image() {
+ function cached_url() {
@$hash = basename($_GET['hash']);
+ // we don't need an extension to find the file, hash is a complete URL
+ $hash = preg_replace("/\.[^\.]*$/", "", $hash);
+
if ($hash) {
$filename = CACHE_DIR . '/images/' . $hash;
diff --git a/include/functions2.php b/include/functions2.php
index 34f027a55..39c7f746b 100644
--- a/include/functions2.php
+++ b/include/functions2.php
@@ -913,11 +913,11 @@
// check cache only for video and images for the time being
if ($entry->nodeName == 'img' || ($entry->parentNode && $entry->parentNode->nodeName == "video")) {
+ $cached_filename = CACHE_DIR . '/images/' . sha1($src);
$extension = $entry->tagName == 'source' ? '.mp4' : '.png';
- $cached_filename = CACHE_DIR . '/images/' . sha1($src) . $extension;
if (file_exists($cached_filename)) {
- $src = get_self_url_prefix() . '/public.php?op=cached_image&hash=' . sha1($src) . $extension;
+ $src = get_self_url_prefix() . '/public.php?op=cached_url&hash=' . sha1($src) . $extension;
if ($entry->hasAttribute('srcset')) {
$entry->removeAttribute('srcset');
diff --git a/include/rssfuncs.php b/include/rssfuncs.php
index e26fc38be..997ea4594 100644
--- a/include/rssfuncs.php
+++ b/include/rssfuncs.php
@@ -2,7 +2,7 @@
define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
define_default('DAEMON_FEED_LIMIT', 500);
define_default('DAEMON_SLEEP_INTERVAL', 120);
- define_default('_MIN_CACHE_IMAGE_SIZE', 1024);
+ define_default('_MIN_CACHE_FILE_SIZE', 1024);
function calculate_article_hash($article, $pluginhost) {
$tmp = "";
@@ -864,7 +864,7 @@
_debug("force catchup: $entry_force_catchup");
if ($cache_images && is_writable(CACHE_DIR . '/images'))
- cache_images($entry_content, $site_url, $debug_enabled);
+ cache_media($entry_content, $site_url, $debug_enabled);
$entry_content = db_escape_string($entry_content, false);
@@ -1227,7 +1227,7 @@
return $rss;
}
- function cache_images($html, $site_url, $debug) {
+ function cache_media($html, $site_url, $debug) {
libxml_use_internal_errors(true);
$charset_hack = '<head>
@@ -1244,15 +1244,14 @@
if ($entry->hasAttribute('src') && strpos($entry->getAttribute('src'), "data:") !== 0) {
$src = rewrite_relative_url($site_url, $entry->getAttribute('src'));
- $extension = $entry->tagName == 'source' ? '.mp4' : '.png';
- $local_filename = CACHE_DIR . "/images/" . sha1($src) . $extension;
+ $local_filename = CACHE_DIR . "/images/" . sha1($src);
- if ($debug) _debug("cache_images: downloading: $src to $local_filename");
+ if ($debug) _debug("cache_media: downloading: $src to $local_filename");
if (!file_exists($local_filename)) {
$file_content = fetch_file_contents($src);
- if ($file_content && strlen($file_content) > _MIN_CACHE_IMAGE_SIZE) {
+ if ($file_content && strlen($file_content) > _MIN_CACHE_FILE_SIZE) {
file_put_contents($local_filename, $file_content);
}
} else {
diff --git a/plugins/af_zz_imgproxy/init.php b/plugins/af_zz_imgproxy/init.php
index f326b8e07..e0ec2f174 100644
--- a/plugins/af_zz_imgproxy/init.php
+++ b/plugins/af_zz_imgproxy/init.php
@@ -26,7 +26,7 @@ class Af_Zz_ImgProxy extends Plugin {
if (preg_match("/image/", $enc["content_type"]) || preg_match("/\.(jpe?g|png|gif|bmp)$/i", $enc["filename"])) {
$proxy_all = $this->host->get($this, "proxy_all");
- $enc["content_url"] = $this->rewrite_url_if_needed($enc["content_url"], 0, $proxy_all);
+ $enc["content_url"] = $this->rewrite_url_if_needed($enc["content_url"], $proxy_all);
}
return $enc;
@@ -39,7 +39,6 @@ class Af_Zz_ImgProxy extends Plugin {
public function imgproxy() {
$url = rewrite_relative_url(SELF_URL_PATH, $_REQUEST["url"]);
- $kind = (int) $_REQUEST["kind"]; // 1 = video
// called without user context, let's just redirect to original URL
if (!$_SESSION["uid"]) {
@@ -47,8 +46,7 @@ class Af_Zz_ImgProxy extends Plugin {
return;
}
- $extension = $kind == 1 ? '.mp4' : '.png';
- $local_filename = CACHE_DIR . "/images/" . sha1($url) . $extension;
+ $local_filename = CACHE_DIR . "/images/" . sha1($url);
if ($_REQUEST["debug"] == "1") { print $url . "\n" . $local_filename; die; }
@@ -107,7 +105,7 @@ class Af_Zz_ImgProxy extends Plugin {
}
}
- function rewrite_url_if_needed($url, $kind, $all_remote = false) {
+ function rewrite_url_if_needed($url, $all_remote = false) {
$scheme = parse_url($url, PHP_URL_SCHEME);
if ($all_remote) {
@@ -121,7 +119,7 @@ class Af_Zz_ImgProxy extends Plugin {
if (($scheme != 'https' && $scheme != "") || $is_remote) {
if (strpos($url, "data:") !== 0) {
- $url = get_self_url_prefix() . "/public.php?op=pluginhandler&plugin=af_zz_imgproxy&pmethod=imgproxy&kind=$kind&url=" .
+ $url = get_self_url_prefix() . "/public.php?op=pluginhandler&plugin=af_zz_imgproxy&pmethod=imgproxy&url=" .
urlencode($url);
}
}
@@ -140,7 +138,7 @@ class Af_Zz_ImgProxy extends Plugin {
$imgs = $xpath->query("//img[@src]");
foreach ($imgs as $img) {
- $new_src = $this->rewrite_url_if_needed($img->getAttribute("src"), 0, $proxy_all);
+ $new_src = $this->rewrite_url_if_needed($img->getAttribute("src"), $proxy_all);
if ($new_src != $img->getAttribute("src")) {
$img->setAttribute("src", $new_src);
@@ -154,7 +152,7 @@ class Af_Zz_ImgProxy extends Plugin {
foreach ($vids as $vid) {
if ($vid->hasAttribute("poster")) {
- $new_src = $this->rewrite_url_if_needed($vid->getAttribute("poster"), 0, $proxy_all);
+ $new_src = $this->rewrite_url_if_needed($vid->getAttribute("poster"), $proxy_all);
if ($new_src != $vid->getAttribute("poster")) {
$vid->setAttribute("poster", $new_src);
@@ -166,7 +164,7 @@ class Af_Zz_ImgProxy extends Plugin {
$vsrcs = $xpath->query("source", $vid);
foreach ($vsrcs as $vsrc) {
- $new_src = $this->rewrite_url_if_needed($vsrc->getAttribute("src"), 1, $proxy_all);
+ $new_src = $this->rewrite_url_if_needed($vsrc->getAttribute("src"), $proxy_all);
if ($new_src != $vsrc->getAttribute("src")) {
$vid->setAttribute("src", $new_src);