- $urlhash = 'pic:' . sha1($_REQUEST['url']);
- // Double encoded url - happens with Diaspora
- $urlhash2 = 'pic:' . sha1(urldecode($_REQUEST['url']));
-
- $cachefile = get_cachefile(hash("md5", $_REQUEST['url']));
- if ($cachefile != '') {
- if (file_exists($cachefile)) {
- $img_str = file_get_contents($cachefile);
-
- $mime = image_type_to_mime_type(exif_imagetype($cachefile));
-
- header("Content-type: $mime");
- header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT");
- header('Etag: "'.md5($img_str).'"');
- header("Expires: " . gmdate("D, d M Y H:i:s", time() + (31536000)) . " GMT");
- header("Cache-Control: max-age=31536000");
-
- echo $img_str;
+ $thumb = false;
+ $size = 1024;
+
+ // If the cache path isn't there, try to create it
+ if (!is_dir($_SERVER["DOCUMENT_ROOT"]."/privacy_image_cache"))
+ if (is_writable($_SERVER["DOCUMENT_ROOT"]))
+ mkdir($_SERVER["DOCUMENT_ROOT"]."/privacy_image_cache");
+
+ // Checking if caching into a folder in the webroot is activated and working
+ $direct_cache = (is_dir($_SERVER["DOCUMENT_ROOT"]."/privacy_image_cache") AND is_writable($_SERVER["DOCUMENT_ROOT"]."/privacy_image_cache"));
+
+ // Look for filename in the arguments
+ if (isset($a->argv[1]) OR isset($a->argv[2]) OR isset($a->argv[3])) {
+ if (isset($a->argv[3]))
+ $url = $a->argv[3];
+ elseif (isset($a->argv[2]))
+ $url = $a->argv[2];
+ else
+ $url = $a->argv[1];
+
+ //$thumb = (isset($a->argv[3]) and ($a->argv[3] == "thumb"));
+ if (isset($a->argv[3]) and ($a->argv[3] == "thumb"))
+ $size = 200;
+
+ // thumb, small, medium and large.
+ if (substr($url, -6) == ":thumb")
+ $size = 150;
+ if (substr($url, -6) == ":small")
+ $size = 340;
+ if (substr($url, -7) == ":medium")
+ $size = 600;
+ if (substr($url, -6) == ":large")
+ $size = 1024;
+
+ $pos = strrpos($url, "=.");
+ if ($pos)
+ $url = substr($url, 0, $pos+1);
+
+ $url = str_replace(array(".jpg", ".jpeg", ".gif", ".png"), array("","","",""), $url);
+
+ $url = base64_decode(strtr($url, '-_', '+/'), true);
+
+ if ($url)
+ $_REQUEST['url'] = $url;
+ }