= ?"; $params[] = 'i'; $params[] = $min; if (isset($max)) { $filtersql .= " AND r.ref <= ?"; $params[] = 'i'; $params[] = $max; } } else { $joinsql .= "RIGHT JOIN collection_resource cr ON cr.resource=r.ref"; $filtersql .= "cr.collection= ?"; $params[] = 'i'; $params[] = $collectionid; } $resources = ps_query("SELECT r.ref, r.file_path, r.file_extension FROM resource r {$joinsql} WHERE {$filtersql} ORDER BY r.ref $orderby", $params); $errors = array(); $missingfiles = array(); $copied = array(); $sizearray = ps_array("select id value from preview_size", [], false); $sizearray[] = ""; // Add jpg version of original if present $hide_real_filepath = isset($remote_hidden_paths) && $remote_hidden_paths; foreach ($resources as $resource) { $resfiles = array(); $n = 0; // Primary resource file $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, '', true, $resource["file_extension"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, '', false, $resource["file_extension"]); $n++; // Previews foreach ($sizearray as $size) { $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, $size, false, "jpg"); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, $size, false, "jpg"); $n++; } // Video previews $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, $size, false, $ffmpeg_preview_extension); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, $size, false, $ffmpeg_preview_extension); $n++; // Alternative files $altfiles = get_alternative_files($resource["ref"]); foreach ($altfiles as $altfile) { // Primary alternative file $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, '', false, $altfile["file_extension"], true, 1, false, '', $altfile["ref"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, '', false, $altfile["file_extension"], true, 1, false, '', $altfile["ref"]); $n++; $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, '', false, $altfile["file_extension"], true, 1, true, '', $altfile["ref"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, '', false, $altfile["file_extension"], true, 1, true, '', $altfile["ref"]); $n++; $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, '', false, 'icc', true, 1, false, '', $altfile["ref"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, '', false, 'icc', true, 1, false, '', $altfile["ref"]); $n++; $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, '', false, 'icc', true, 1, true, '', $altfile["ref"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, '', false, 'icc', true, 1, true, '', $altfile["ref"]); $n++; foreach ($sizearray as $size) { $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, $size, false, "jpg", true, 1, false, '', $altfile["ref"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, $size, false, "jpg", true, 1, false, '', $altfile["ref"]); $n++; $resfiles[$n]["local"] = get_resource_path($resource["ref"], true, $size, false, "jpg", true, 1, true, '', $altfile["ref"]); $resfiles[$n]["url"] = get_resource_path($resource["ref"], false, $size, false, "jpg", true, 1, true, '', $altfile["ref"]); $n++; } } // Now check if files exist $i = 0; for ($i = 0; $i < $n; $i++) { $localfile = $resfiles[$i]["local"]; echo "Checking for presence of file - " . $localfile . "\n"; if (!file_exists($localfile)) { $local_url = $resfiles[$i]["url"]; $remote_url = str_replace($baseurl, $remotebaseurl, $local_url); if (isset($findurlpart) && isset($replaceurlpart)) { $remote_url = str_replace($findurlpart, $replaceurlpart, $remote_url); } echo " - File missing - checking URL:-\n" . $remote_url . "\n"; $file_headers = @get_headers($remote_url); if (strpos($file_headers[0], "200") !== false) { echo " - Found remote file at " . $remote_url . ", ingesting\n"; if (!$retrievefilestestmode) { echo str_pad(" - Copying file to " . $localfile . "\n", 30); $success = @copy($remote_url, $localfile); if ($success) { echo str_pad(" - Copied ok\n", 30); } else { $errors[] = $resource["ref"] . "Failed to copy from " . $remote_url . "\n"; } } $copied[] = $localfile; } elseif ($i == 0) { // Main file is missing - record this if ($file_headers[0] == 'HTTP/1.0 404 Not Found') { echo " - The remote file " . $resource["ref"] . " does not exist\n"; $missingfiles[] = $localfile; } elseif ($file_headers[0] == 'HTTP/1.0 302 Found' && $file_headers[7] == 'HTTP/1.0 404 Not Found') { echo " - The file " . $resource["ref"] . " does not exist, and I got redirected to a custom 404 page..\n"; $missingfiles[] = $localfile; } else { echo " - The remote file " . $resource["ref"] . " could not be accessed\n"; $missingfiles[] = $localfile; } } } } ob_flush(); flush(); } echo "\nCopied files: -\n"; echo implode("\n", $copied) . "\n"; echo "\nMissing files: -\n"; echo implode("\n", $missingfiles) . "\n\n"; echo "\nERRORS: -\n"; echo implode("\n", $errors) . "\n\n";