diff --git a/bin/cronTask.sh b/bin/cronTask.sh new file mode 100644 index 0000000..e9d37dc --- /dev/null +++ b/bin/cronTask.sh @@ -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 diff --git a/bin/thumb_server.sh b/bin/thumb_server.sh index 26e8561..b6e316f 100755 --- a/bin/thumb_server.sh +++ b/bin/thumb_server.sh @@ -9,9 +9,11 @@ thumbSize=$3 # size of thumb widthxheight ex : 190x90 sizeNameDir=$4 # name of size dir onlyThumb=$5 # make only thumbshot no full size image waitForResult=$6 # if true we try to make soon as possible or add to queue + ########################################## ##### DON'T EDIT THIS PARAM USE ##### ##### cache/config/serverOptions.php ##### +##### for overwrite options ##### ########################################## 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 @@ -26,15 +28,15 @@ startPath=$sizeNameDir/$firstLevel/$secondLevel/ if [ $site == "manual" ] then - site=$(cat "cache/tmp/manual.txt") - echo '' > "cache/tmp/manual.txt" + site=$(cat "../cache/tmp/manual.txt") + echo '' > "../cache/tmp/manual.txt" fi -mkdir -p "cache/img/$startPath" +mkdir -p "../cache/img/$startPath" -if [ -f "cache/config/serverOptions.php" ] +if [ -f "../cache/config/serverOptions.php" ] then - source "cache/config/serverOptions.php" + source "../cache/config/serverOptions.php" fi if [ $currentProcess -gt $maxQueue ] @@ -52,9 +54,9 @@ then fi 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 echo 0 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' fi case $errorCode in - 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" ;; - 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" ;; + 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" ;; + 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" ;; esac if $log then @@ -74,40 +76,40 @@ then logDate=`date +'[%a %d %b %Y] [%H:%M:%S]'` if [ $errorCode == 200 ] 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 - 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 exit fi if [ $onlyThumb == 1 ] 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 ] then - eval $optimizeTool "cache/img/$startPath""$hashUrl""_thumb.png" + eval $optimizeTool "../cache/img/$startPath""$hashUrl""_thumb.png" fi else - 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/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" if [ $optimizeTool ] 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 -rm "cache/tmp/$hashUrl.png" +rm "../cache/tmp/$hashUrl.png" if [ $onlyThumb ] then - if [[ -f "cache/img/$startPath""$hashUrl""_thumb.png" ]] + if [[ -f "../cache/img/$startPath""$hashUrl""_thumb.png" ]] then echo 1 else echo 0 fi 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 echo 1 else @@ -118,5 +120,5 @@ if $log then end_time=`date +%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 diff --git a/inc/.htaccess b/inc/.htaccess new file mode 100644 index 0000000..b584d98 --- /dev/null +++ b/inc/.htaccess @@ -0,0 +1,2 @@ +Allow from none +Deny from all diff --git a/index.php b/index.php index 9f3e61f..383e03c 100644 --- a/index.php +++ b/index.php @@ -30,8 +30,8 @@ $GLOBALS['config']['thumbSize'] = array( ); // Remove image older than 12 hours $GLOBALS['config']['expireCache'] = 12; -// Disable exec command for launch script and use cron task -$GLOBALS['config']['disableExec'] = false; +// Disable exec command and use cron task +$GLOBALS['config']['disableExec'] = true; // Enable log for success, suspect, error $GLOBALS['config']['log'] = false; @@ -145,17 +145,30 @@ function launchScript($url, $hashUrl, $width, $size, $onlyThumb, $waitForResult } if ($GLOBALS['config']['disableExec'] === false) { + chdir('bin/'); 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 { - 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 { - return 0; + makeQueueFile($url, $hashUrl, $width, $size, $onlyThumb); + $result = 0; } 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) { $url = trim($url); 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 '