function processDir($baseDir, $dirName, $ns, $processMethod, $useLibPath) { global $ignoredClasses; $dir = $baseDir . '/' . $dirName; if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if (substr($entry, 0, 1) != '.') { if (!is_dir($dir . '/' . $entry)) { $nameParts = explode('.', $entry); if (!in_array($nameParts[0], $ignoredClasses)) { call_user_func($processMethod, $ns, $nameParts[0], $dir, $useLibPath); } } else { $newNS = $ns; if ($ns != '') { $newNS = $ns . '\\' . $entry; } processDir($dir, $entry, $newNS, $processMethod, $useLibPath); } } } } else { print "ERROR: Cannot open " . $dir; } }
function processDir($dirResource, $root) { global $mysqli; while (false !== ($entry = readdir($dirResource))) { if ($entry != '.' && $entry != '..') { if (is_dir($root . '/' . $entry)) { $dirToProcess = opendir($root . '/' . $entry); processDir($dirToProcess, $root . '/' . $entry); } elseif (is_file($root . '/' . $entry)) { $filedata = stat($root . '/' . $entry); if (!fileEntryExists($root . '/' . $entry, $filedata, $mysqli)) { createFileEntry($root . '/' . $entry, $filedata, $mysqli); $mysqli->query("INSERT INTO dicom_file_queue (filename, detected_date, last_modified_date, status_id) VALUES ('" . $root . '/' . $entry . "', now(), now(), (SELECT id FROM dicom_process_status WHERE name = 'new'))"); } } } } }
function processDir($dirResource, $root, $logger) { global $mysqli; global $newfile; //echo "Processing: ".$root."\n"; while (false !== ($entry = readdir($dirResource))) { if ($entry != '.' && $entry != '..') { if (is_dir($root . '/' . $entry)) { $dirToProcess = opendir($root . '/' . $entry); processDir($dirToProcess, $root . '/' . $entry, $logger); } elseif (is_file($root . '/' . $entry)) { $filedata = stat($root . '/' . $entry); if (!fileEntryExists($root . '/' . $entry, $filedata, $mysqli)) { echo 'New file arrived: ' . $entry . "\n"; $newfile = true; createFileEntry($root . '/' . $entry, $filedata, $mysqli); $mysqli->query("INSERT INTO dicom_file_queue (filename, detected_date, last_modified_date, status_id) VALUES ('" . $root . '/' . $entry . "', now(), now(), (SELECT id FROM dicom_process_status WHERE name = 'new'))"); $logger->addLogEntry($root . '/' . $entry, 'new', basename($_SERVER['SCRIPT_FILENAME'])); } } } } }
function process($file) { global $TVDIR, $MVDIR, $RMBIN, $autoDelete, $verbose, $moveCount; if (strpos($file, '/') !== 0) { $value = realpath(getcwd() . '/' . $file); } else { $value = realpath($file); } if (!$value) { return; } if ($verbose) { echo "Processing: {$value}\n"; } chdir(dirname($value)); $extensions = 'avi|mkv|mp4'; if (is_dir($value)) { $moveCount[$value] = 0; processDir($value); if ($autoDelete && $moveCount[$value]) { $f = escapeshellarg($value); `{$RMBIN} -rf {$f}`; echo "Deleted: {$value}\n"; } return; } else { if (preg_match('/.*\\.part[0]+1\\.rar/i', $value, $m) || !preg_match('/.*\\.part[0-9]+\\.rar/i', $value) && preg_match('/.*\\.rar/i', $value, $m)) { if ($verbose) { echo "Extract: {$value}\n"; } $files = extractRar($value); if ($verbose) { echo "\n"; print_r($files); echo "\n"; } foreach ($files as $f) { if ($verbose) { echo "Process Extracted: {$f}\n"; } process("{$f}"); } } else { if (stripos($value, 'sample') !== false) { // TV in format: name.S01E01.tag.avi } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\. -](s[0-9]{2}e[0-9]{2})[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $TVDIR . '/' . folder($m[2]) . '/' . filename($m[2], $m[3]) . '.' . $m[4]); // TV in format: name 1x14 episode title.avi } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\. -]([0-9]{1,2}x[0-9]{2})[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $TVDIR . '/' . folder($m[2]) . '/' . filename($m[2], $m[3]) . '.' . $m[4]); // TV in format: name.2010.10.06.tag.avi } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\. -](20[0-9]{2}[\\.\\-][0-9]{2}[\\.\\-][0-9]{2})[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $TVDIR . '/' . folder($m[2]) . '/' . filename($m[2], $m[3]) . '.' . $m[4]); // TV with path in form /name.S01E01.tag/name...avi } else { if (preg_match('#/([a-z0-9\\- \\._]+)[\\. \\-](s[0-9]{2}e[0-9]{2})[^/]*/[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $TVDIR . '/' . folder($m[1]) . '/' . filename($m[1], $m[2]) . '.' . $m[3]); // Movie parent in format: Movie.2010.dvd/CD1/tag-snom.avi } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\ .-\\[\\(]((19|20)[0-9]{2})[^/]*/CD(1|2)/[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $MVDIR . '/' . movie($m[2]) . ".{$m[3]}.part{$m[5]}.{$m[6]}"); // Movie in format: movie.2010.dvd.avi (1900-2099) I don't have old movies } else { if (preg_match("#(/)([a-z0-9\\- \\._]+)[\\ .-\\[\\(]((19|20)[0-9]{2})[^/]*\\.({$extensions})\$#i", $value, $m)) { moveto($value, $MVDIR . '/' . movie($m[2]) . ".{$m[3]}.{$m[5]}"); // Movie parent in format: Movie.2010.dvd/tag-snom.avi } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\ .-\\[\\(]((19|20)[0-9]{2})[^/]*/[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $MVDIR . '/' . movie($m[2]) . ".{$m[3]}.{$m[5]}"); // Movie in format: movie.dvdrip.tag.avi (1900-2099) I don't have old movies } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\ .-\\[\\(](dvdrip|bdrip)[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $MVDIR . '/' . movie($m[2]) . ".{$m[4]}"); // Movie parent in format: Movie.dvdrip.tag/tag-snom.avi } else { if (preg_match('#(/)([a-z0-9\\- \\._]+)[\\ .-\\[\\(](dvdrip|bdrip)[^/]*/[^/]*\\.(avi|mkv)$#i', $value, $m)) { moveto($value, $MVDIR . '/' . movie($m[2]) . ".{$m[4]}"); } } } } } } } } } } } } }
<?php define(BASE_DIR, "/mine/Pictures"); processDir(BASE_DIR); function processDir($dir) { $files = glob($dir . "/*"); foreach ($files as $file) { $thumbnailer = new Thumbnailer(BASE_DIR); if (!$thumbnailer->generateThumb($file)) { echo "Failed to generate thumbnail" . PHP_EOL; exit; } } }