> /var/log/httpd/thumbnail_log * * @version $Header$ * @package fisheye * @subpackage functions */ namespace Bitweaver\Fisheye; use Bitweaver\KernelTools; global $gBitSystem, $gBitDb, $_SERVER; $_SERVER['SCRIPT_URL'] = ''; $_SERVER['HTTP_HOST'] = ''; $_SERVER['HTTP_HOST'] = ''; $_SERVER['HTTP_HOST'] = ''; $_SERVER['SERVER_NAME'] = ''; /** * required setup */ if( !empty( $argc ) ) { // reduce feedback for command line to keep log noise way down define( 'BIT_PHP_ERROR_REPORTING', E_ERROR | E_PARSE ); } // running from cron can cause us not to be in the right dir. chdir( dirname( __FILE__ ) ); require_once '../kernel/includes/setup_inc.php'; // add some protection for arbitrary thumbail execution. // if argc is present, we will trust it was exec'ed command line. if( empty( $argc ) && !$gBitUser->isAdmin() ) { $gBitSystem->fatalError( KernelTools::tra( 'You cannot run the thumbnailer' )); } $thumbCount = ( !empty( $argv[1] ) ) ? $argv[1] : ( !empty( $_REQUEST['thumbnails'] ) ? $_REQUEST['thumbnails'] : 10); $gBitDb->StartTrans(); $sql = "SELECT pq.content_id AS hash_key, pq.* FROM `".BIT_DB_PREFIX."liberty_process_queue` pq WHERE pq.begin_date IS null ORDER BY pq.queue_date"; $rows = $gBitSystem->mDb->getAssoc( $sql, false, $thumbCount ); $processContent = []; foreach( $rows as $row ) { $processContent[$row['content_id']] = $row; $processContent[$row['content_id']]['parameters'] = unserialize( $row['processor_parameters'] ); $sql2 = "UPDATE `".BIT_DB_PREFIX."liberty_process_queue` SET `begin_date`=? WHERE `content_id`=?"; $rs2 = $gBitSystem->mDb->getOne( $sql2, [ date( 'U' ), $row['content_id'] ] ); } $gBitDb->CompleteTrans(); $log = []; $total = date( 'U' ); foreach( array_keys( $processContent ) as $contentId ) { $image = new FisheyeImage( null, $contentId ); $begin = date( 'U' ); if( !empty( $processContent[$contentId]['parameters']['resize_original'] ) ) { $image->resizeOriginal( $processContent[$contentId]['parameters']['resize_original'] ); } if( $image->renderThumbnails() ) { $log[$contentId]['message'] = 'SUCCESS: Thumbnails created'; $sql3 = "UPDATE `".BIT_DB_PREFIX."liberty_process_queue` SET `begin_date`=?, `end_date`=? WHERE `content_id`=?"; $rs3 = $gBitSystem->mDb->getOne( $sql3, [ $begin, $gBitSystem->getUTCTime(), $contentId ] ); } else { $log[$contentId]['message'] = ' ERROR: '.$image->mErrors['thumbnail']; } $log[$contentId]['time'] = date( 'd/M/Y:H:i:s O' ); $log[$contentId]['duration'] = date( 'U' ) - $begin; $log[$contentId]['delay'] = date( 'U' ) - $total; } foreach( array_keys( $log ) as $contentId ) { // generate something that kinda looks like apache common log format print $contentId.' - - ['.$log[$contentId]['time'].'] "'.$log[$contentId]['message'].'" '.$log[$contentId]['duration']."seconds
\n"; } if( count($processContent) ) { print '# '.count($processContent)." images processed in ".(date( 'U' ) - $total)." seconds
\n"; }