[add] option for use exec or cron for launch PhantomJS
This commit is contained in:
parent
6371a81a02
commit
3eaea010ce
5 changed files with 66 additions and 32 deletions
14
bin/cronTask.sh
Normal file
14
bin/cronTask.sh
Normal 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
|
|
@ -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
2
inc/.htaccess
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Allow from none
|
||||||
|
Deny from all
|
30
index.php
30
index.php
|
@ -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)) {
|
||||||
|
@ -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,7 +592,7 @@ 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
|
||||||
|
|
Loading…
Reference in a new issue