Increased readability

This commit is contained in:
Martin Trobäck 2015-09-28 16:46:34 +02:00
parent 65113d7131
commit 8aeda2e482

84
api.php
View File

@ -6,63 +6,74 @@ $js = $_GET['js'];
$resizewidth = $_GET['width']; $resizewidth = $_GET['width'];
$cache = preg_replace("/[^A-Za-z0-9 ]/", '', $_GET['cache']); $cache = preg_replace("/[^A-Za-z0-9 ]/", '', $_GET['cache']);
$onfail = rawurldecode($_GET['onfail']); $onfail = rawurldecode($_GET['onfail']);
if(!$onfail)
if (!$onfail) {
$onfail = 'https://http2pic.haschek.at/img/failed.jpg'; $onfail = 'https://http2pic.haschek.at/img/failed.jpg';
}
$url = rawurldecode($_GET['url']); $url = rawurldecode($_GET['url']);
if(isBase64($url)) if (isBase64($url)) {
$url = base64_decode($url); $url = base64_decode($url);
}
if(!$timeout || !is_numeric($timeout) || ($timeout>30 || $timeout<1)) if (!$timeout || !is_numeric($timeout) || ($timeout>30 || $timeout<1)) {
$timeout = 10; $timeout = 10;
}
if($viewport) if ($viewport) {
{ $a = explode('x', $viewport);
$a=explode('x', $viewport); $width = $a[0];
$w = $a[0]; $height = $a[1];
$h = $a[1]; if ($width) {
if($w) $vp = "--width $width ";
$vp = "--width $w "; }
if($h) if ($height) {
$vp.= "--height $h "; $vp.= "--height $height ";
}
} }
if($js=='no') if ($js == 'no') {
$jsp = '-n '; $jsp = '-n ';
}
switch ($type) { switch ($type) {
case 'png': case 'png':
$ft = $type; $fileType = $type;
header('Content-Type: image/png'); header('Content-Type: image/png');
break; break;
case 'jpg': case 'jpg':
case 'jpeg': case 'jpeg':
default: default:
$ft = 'jpg'; $fileType = 'jpg';
header('Content-Type: image/jpeg'); header('Content-Type: image/jpeg');
} }
$hash = $cache.'-'.preg_replace("/[^A-Za-z0-9 ]/", '', $url).'.'.$ft; $hash = $cache.'-'.preg_replace("/[^A-Za-z0-9 ]/", '', $url).'.'.$fileType;
if(!$cache)
if (!$cache) {
$hash = md5(time().rand(1,2000)).$hash; $hash = md5(time().rand(1,2000)).$hash;
}
if(!is_dir(__DIR__.'/cache/')) if (!is_dir(__DIR__.'/cache/')) {
mkdir(__DIR__.'/cache/'); mkdir(__DIR__.'/cache/');
}
$file = __DIR__.'/cache/'.$hash; $file = __DIR__.'/cache/'.$hash;
if(!file_exists($file))
shell_exec('timeout '.$timeout.' /usr/sbin/wkhtmltoimage '.escapeshellcmd($vp.$jsp.'-f '.$ft.' '.$url.' '.$file));
if(filesize($file)==0 && $onfail) if (!file_exists($file)) {
shell_exec('timeout '.$timeout.' /usr/sbin/wkhtmltoimage '.escapeshellcmd($vp.$jsp.'-f '.$fileType.' '.$url.' '.$file));
}
if (filesize($file)==0 && $onfail) {
@file_put_contents($file, file_get_contents($onfail)); @file_put_contents($file, file_get_contents($onfail));
}
if($resizewidth) if ($resizewidth) {
{
list($width_orig, $height_orig) = getimagesize($file); list($width_orig, $height_orig) = getimagesize($file);
if($width_orig!=$resizewidth)
{ if ($width_orig!=$resizewidth) {
$ratio_orig = $width_orig/$height_orig; $ratio_orig = $width_orig/$height_orig;
$height = $resizewidth/$ratio_orig; $height = $resizewidth/$ratio_orig;
@ -75,13 +86,11 @@ if($resizewidth)
} }
if($ft=='jpg') if ($fileType === 'jpg') {
{
$res = imagecreatefromjpeg($file); $res = imagecreatefromjpeg($file);
imagejpeg($res,NULL,100); imagejpeg($res,NULL,100);
} }
else if($ft=='png') else if ($fileType ==='png') {
{
$res = imagecreatefrompng($file); $res = imagecreatefrompng($file);
imagepng($res,NULL,9); imagepng($res,NULL,9);
} }
@ -89,13 +98,14 @@ else if($ft=='png')
imagedestroy($res); imagedestroy($res);
if(!$cache) if (!$cache) {
unlink($file); unlink($file);
}
function isBase64($data) function isBase64($data) {
{ if ( base64_encode(base64_decode($data, true)) === $data) {
if ( base64_encode(base64_decode($data, true)) === $data)
return true; return true;
else } else {
return false; return false;
}
} }