[add] option for use exec or cron for launch PhantomJS

This commit is contained in:
Knah Tsaeb 2013-08-16 11:56:15 +02:00
parent 6371a81a02
commit 3eaea010ce
5 changed files with 66 additions and 32 deletions

14
bin/cronTask.sh Normal file
View file

@ -0,0 +1,14 @@
#!/bin/bash
queueDir="../cache/cronTask/"
for file in $queueDir*.hash
do
if [ -f $file ];
then
while read site hashUrl thumbSize sizeNameDir onlyThumb
do
sh thumb_server.sh "$site" "$hashUrl" "$thumbSize" "$sizeNameDir" "$onlyThumb" "0"
rm $file
done < $file
fi
done

View file

@ -9,9 +9,11 @@ thumbSize=$3 # size of thumb widthxheight ex : 190x90
sizeNameDir=$4 # name of size dir sizeNameDir=$4 # name of size dir
onlyThumb=$5 # make only thumbshot no full size image onlyThumb=$5 # make only thumbshot no full size image
waitForResult=$6 # if true we try to make soon as possible or add to queue waitForResult=$6 # if true we try to make soon as possible or add to queue
########################################## ##########################################
##### DON'T EDIT THIS PARAM USE ##### ##### DON'T EDIT THIS PARAM USE #####
##### cache/config/serverOptions.php ##### ##### cache/config/serverOptions.php #####
##### for overwrite options #####
########################################## ##########################################
maxThread=1 # max parralle work. For me the best is nb core - 1 maxThread=1 # max parralle work. For me the best is nb core - 1
timeOut=60 # default time out, after this time the site are declared in error timeOut=60 # default time out, after this time the site are declared in error
@ -26,15 +28,15 @@ startPath=$sizeNameDir/$firstLevel/$secondLevel/
if [ $site == "manual" ] if [ $site == "manual" ]
then then
site=$(cat "cache/tmp/manual.txt") site=$(cat "../cache/tmp/manual.txt")
echo '' > "cache/tmp/manual.txt" echo '' > "../cache/tmp/manual.txt"
fi fi
mkdir -p "cache/img/$startPath" mkdir -p "../cache/img/$startPath"
if [ -f "cache/config/serverOptions.php" ] if [ -f "../cache/config/serverOptions.php" ]
then then
source "cache/config/serverOptions.php" source "../cache/config/serverOptions.php"
fi fi
if [ $currentProcess -gt $maxQueue ] if [ $currentProcess -gt $maxQueue ]
@ -52,9 +54,9 @@ then
fi fi
start_time=`date +%s` start_time=`date +%s`
timeout $timeOut ./bin/phantomjs --disk-cache=false --local-storage-path=/bin/ --ignore-ssl-errors=true /bin/rasterize.js "$site" "cache/tmp/$hashUrl.png" timeout $timeOut ./phantomjs --disk-cache=false --local-storage-path=bin/ --ignore-ssl-errors=true rasterize.js "$site" "../cache/tmp/$hashUrl.png"
if [ ! -f "cache/tmp/$hashUrl.png" ] if [ ! -f "../cache/tmp/$hashUrl.png" ]
then then
echo 0 echo 0
errorCode=`echo $(curl -k --write-out %{http_code} --silent -S --connect-timeout $timeOut \--no-keepalive --output /dev/null $site)` errorCode=`echo $(curl -k --write-out %{http_code} --silent -S --connect-timeout $timeOut \--no-keepalive --output /dev/null $site)`
@ -63,10 +65,10 @@ then
errorCode='manual' errorCode='manual'
fi fi
case $errorCode in case $errorCode in
000) cp "bin/000.png" "cache/img/$startPath""$hashUrl""_thumb.png" && cp "bin/000.png" "cache/img/$startPath""$hashUrl.png" ;; 000) cp "../bin/000.png" "../cache/img/$startPath""$hashUrl""_thumb.png" && cp "../bin/000.png" "../cache/img/$startPath""$hashUrl.png" ;;
200) cp "bin/error.png" "cache/img/$startPath""$hashUrl""_thumb.png" && cp "bin/error.png" "cache/img/$startPath""$hashUrl.png" ;; 200) cp "../bin/error.png" "../cache/img/$startPath""$hashUrl""_thumb.png" && cp "../bin/error.png" "../cache/img/$startPath""$hashUrl.png" ;;
404) cp "bin/404.png" "cache/img/$startPath""$hashUrl""_thumb.png" && cp "bin/404.png" "cache/img/$startPath""$hashUrl.png" ;; 404) cp "../bin/404.png" "../cache/img/$startPath""$hashUrl""_thumb.png" && cp "../bin/404.png" "../cache/img/$startPath""$hashUrl.png" ;;
*) cp "bin/error.png" "cache/img/$startPath""$hashUrl""_thumb.png" && cp "bin/error.png" "cache/img/$startPath""$hashUrl.png" ;; *) cp "..bin/error.png" "../cache/img/$startPath""$hashUrl""_thumb.png" && cp "../bin/error.png" "../cache/img/$startPath""$hashUrl.png" ;;
esac esac
if $log if $log
then then
@ -74,40 +76,40 @@ then
logDate=`date +'[%a %d %b %Y] [%H:%M:%S]'` logDate=`date +'[%a %d %b %Y] [%H:%M:%S]'`
if [ $errorCode == 200 ] if [ $errorCode == 200 ]
then then
echo "none --- "$site" --- "$hashUrl" --- "$thumbSize" --- "$sizeNameDir" --- "$onlyThumb" --- true --- "$errorCode > "cache/logs/retry/"$hashUrl".log" echo "none --- "$site" --- "$hashUrl" --- "$thumbSize" --- "$sizeNameDir" --- "$onlyThumb" --- true --- "$errorCode > "../cache/logs/retry/"$hashUrl".log"
else else
echo "none --- "$site" --- "$hashUrl" --- "$thumbSize" --- "$sizeNameDir" --- "$onlyThumb" --- true --- "$errorCode > "cache/logs/other/"$hashUrl".log" echo "none --- "$site" --- "$hashUrl" --- "$thumbSize" --- "$sizeNameDir" --- "$onlyThumb" --- true --- "$errorCode > "../cache/logs/other/"$hashUrl".log"
fi fi
fi fi
exit exit
fi fi
if [ $onlyThumb == 1 ] if [ $onlyThumb == 1 ]
then then
convert "cache/tmp/$hashUrl.png" -crop 1280x1024+0+0 -filter Lanczos -thumbnail "$thumbSize" "cache/img/$startPath""$hashUrl""_thumb.png" convert "../cache/tmp/$hashUrl.png" -crop 1280x1024+0+0 -filter Lanczos -thumbnail "$thumbSize" "../cache/img/$startPath""$hashUrl""_thumb.png"
if [ $optimizeTool ] if [ $optimizeTool ]
then then
eval $optimizeTool "cache/img/$startPath""$hashUrl""_thumb.png" eval $optimizeTool "../cache/img/$startPath""$hashUrl""_thumb.png"
fi fi
else else
convert "cache/tmp/$hashUrl.png" -crop 1280x1024+0+0 "cache/img/$startPath""$hashUrl.png" convert "../cache/tmp/$hashUrl.png" -crop 1280x1024+0+0 "../cache/img/$startPath""$hashUrl.png"
convert "cache/img/$startPath""$hashUrl.png" -filter Lanczos -thumbnail "$thumbSize" "cache/img/$startPath""$hashUrl""_thumb.png" convert "../cache/img/$startPath""$hashUrl.png" -filter Lanczos -thumbnail "$thumbSize" "../cache/img/$startPath""$hashUrl""_thumb.png"
if [ $optimizeTool ] if [ $optimizeTool ]
then then
eval $optimizeTool "cache/img/$startPath""$hashUrl""_thumb.png" "cache/img/$startPath""$hashUrl.png" eval $optimizeTool "../cache/img/$startPath""$hashUrl""_thumb.png" "../cache/img/$startPath""$hashUrl.png"
fi fi
fi fi
rm "cache/tmp/$hashUrl.png" rm "../cache/tmp/$hashUrl.png"
if [ $onlyThumb ] if [ $onlyThumb ]
then then
if [[ -f "cache/img/$startPath""$hashUrl""_thumb.png" ]] if [[ -f "../cache/img/$startPath""$hashUrl""_thumb.png" ]]
then then
echo 1 echo 1
else else
echo 0 echo 0
fi fi
else else
if [[ -f "cache/img/$startPath""$hashUrl""_thumb.png" && -f "cache/img/$startPath""$hashUrl.png" ]] if [[ -f "../cache/img/$startPath""$hashUrl""_thumb.png" && -f "../cache/img/$startPath""$hashUrl.png" ]]
then then
echo 1 echo 1
else else
@ -118,5 +120,5 @@ if $log
then then
end_time=`date +%s` end_time=`date +%s`
logDate=`date +'[%a %d %b %Y] [%H:%M:%S]'` logDate=`date +'[%a %d %b %Y] [%H:%M:%S]'`
echo $logDate `expr $end_time - $start_time`s >> 'cache/logs/success.txt' echo $logDate `expr $end_time - $start_time`s >> '../cache/logs/success.txt'
fi fi

2
inc/.htaccess Normal file
View file

@ -0,0 +1,2 @@
Allow from none
Deny from all

View file

@ -30,8 +30,8 @@ $GLOBALS['config']['thumbSize'] = array(
); );
// Remove image older than 12 hours // Remove image older than 12 hours
$GLOBALS['config']['expireCache'] = 12; $GLOBALS['config']['expireCache'] = 12;
// Disable exec command for launch script and use cron task // Disable exec command and use cron task
$GLOBALS['config']['disableExec'] = false; $GLOBALS['config']['disableExec'] = true;
// Enable log for success, suspect, error // Enable log for success, suspect, error
$GLOBALS['config']['log'] = false; $GLOBALS['config']['log'] = false;
@ -145,17 +145,30 @@ function launchScript($url, $hashUrl, $width, $size, $onlyThumb, $waitForResult
} }
if ($GLOBALS['config']['disableExec'] === false) { if ($GLOBALS['config']['disableExec'] === false) {
chdir('bin/');
if ($waitForResult === false) { if ($waitForResult === false) {
exec('bin/thumb_server.sh '.$url.' '.$hashUrl.' '.$width.' '.$size.' '.$onlyThumb.' > /dev/null &', $result); exec('sh thumb_server.sh '.$url.' '.$hashUrl.' '.$width.' '.$size.' '.$onlyThumb.' > /dev/null &', $result);
} else { } else {
exec('bin/thumb_server.sh '.$url.' '.$hashUrl.' '.$width.' '.$size.' '.$onlyThumb.' 1', $result); exec('sh thumb_server.sh '.$url.' '.$hashUrl.' '.$width.' '.$size.' '.$onlyThumb.' 1', $result);
} }
chdir('../');
} else { } else {
return 0; makeQueueFile($url, $hashUrl, $width, $size, $onlyThumb);
$result = 0;
} }
return $result; return $result;
} }
function makeQueueFile($url, $hashUrl, $width, $size, $onlyThumb) {
$url = str_replace('\'', '', $url);
$hashUrl = str_replace('\'', '', $hashUrl);
$width = str_replace('\'', '', $width);
if (!file_exists('cache/cronTask/'.$hashUrl.'.hash')) {
$data = $url.' '.$hashUrl.' '.$width.' '.$size.' '.$onlyThumb. "\n";
file_put_contents('cache/cronTask/'.$hashUrl.'.hash', $data);
}
}
function testValidUrl($url) { function testValidUrl($url) {
$url = trim($url); $url = trim($url);
if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED)) { if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED)) {
@ -367,9 +380,9 @@ function n_print($data, $name = '') {
echo '<h2>', $name, '</h2>'; echo '<h2>', $name, '</h2>';
echo '<fieldset style="border: 1px solid orange; padding: 5px;color: #333; background-color: #fff;">'; echo '<fieldset style="border: 1px solid orange; padding: 5px;color: #333; background-color: #fff;">';
echo '<legend style="border:1px solid orange;padding: 1px;background-color:#eee;color:orange;"> echo '<legend style="border:1px solid orange;padding: 1px;background-color:#eee;color:orange;">
', basename($aBackTrace[0]['file']), ' ligne => ', $aBackTrace[0]['line'], ' ', basename($aBackTrace[0]['file']), ' ligne => ', $aBackTrace[0]['line'], '
</legend>'; </legend>';
echo '<pre>', htmlentities(print_r($data, 1)), '</pre>'; echo '<pre>', htmlentities(print_r($data, 1)), '</pre>';
echo ' echo '
</fieldset> </fieldset>
<br /> <br />
@ -552,7 +565,7 @@ if (!empty($ui['request']) && $ui['p'] !== 'install' && $ui['p'] !== 'login' &&
} }
if ((isset($ui['iw']) && (int)$ui['iw'] === 1 && $ui['request'] === 'api')) { if ((isset($ui['iw']) && (int)$ui['iw'] === 1 && $ui['request'] === 'api')) {
$res = launchScript($defUrl, $hashUrl, $width, $ui['s'], $GLOBALS['config']['onlyThumb'], true); $res = launchScript($defUrl, $hashUrl, $width, $ui['s'], $GLOBALS['config']['onlyThumb'], true);
} elseif ((isset($ui['iw']) && (int)$ui['iw'] === 1 && $ui['request'] === 'form')) { } elseif (isset($ui['iw']) && (int)$ui['iw'] === 1 && $ui['request'] === 'form') {
$res = launchScript($defUrl, $hashUrl, $width, 'shortLive', $GLOBALS['config']['onlyThumb'], true); $res = launchScript($defUrl, $hashUrl, $width, 'shortLive', $GLOBALS['config']['onlyThumb'], true);
} else { } else {
$res = launchScript($defUrl, $hashUrl, $width, $ui['s'], $GLOBALS['config']['onlyThumb'], false); $res = launchScript($defUrl, $hashUrl, $width, $ui['s'], $GLOBALS['config']['onlyThumb'], false);
@ -561,6 +574,9 @@ if (!empty($ui['request']) && $ui['p'] !== 'install' && $ui['p'] !== 'login' &&
$file = 'bin/loadingGen'; $file = 'bin/loadingGen';
printThumbShot($file); printThumbShot($file);
} else { } else {
if ($GLOBALS['config']['disableExec'] === true) {
$file = 'bin/loadingGen';
}
$success = array( $success = array(
'normal' => $file.'.png', 'normal' => $file.'.png',
'thumb' => $file.'_thumb.png' 'thumb' => $file.'_thumb.png'
@ -576,11 +592,11 @@ if (!empty($ui['request']) && $ui['p'] !== 'install' && $ui['p'] !== 'login' &&
<meta charset="utf-8"> <meta charset="utf-8">
<title>SoShot</title> <title>SoShot</title>
<meta name="description" content="Personal webshot"> <meta name="description" content="Personal webshot">
<link rel="stylesheet" href="inc/style.css"> <link rel="stylesheet" href="style.css">
</head> </head>
<body> <body>
<?php <?php
require getPage($ui['p']); require getPage($ui['p']);
?> ?>
</body> </body>
</html> </html>