check_media_files

Versions
mediamosa-21 – mediamosa-174
check_media_files()

Code

integrity_check/integrity_check.php, line 90

<?php
function check_media_files() {
  $dir = SAN_NAS_BASE_PATH . DS . DATA_LOCATION;
  $dh = opendir($dir);
  $missing_db_mediafiles = array();
  while (($folder = readdir($dh)) !== FALSE) {
    if (!is_dir($dir . DS . $folder) || strpos($folder, '.') === 0 || drupal_strlen($folder) > 1) {
      continue;
    }
    $fh = opendir($dir . DS . $folder);
    while (($file = readdir($fh)) !== FALSE) {
      if (strpos($file, '.') === 0) {
        continue;
      }
      if (db_result(db_query("SELECT COUNT(*) FROM {mediafile} where mediafile_id = '%s' ", $file)) == 0) {
        $finfo = stat($dir . DS . $folder . DS . $file);
        $more_info = exec('ls -sla ' . $dir . DS . $folder . DS . $file);
        db_query("INSERT INTO {log_integrity_check} (type, object_id, size, mtime, ctime, details) " .
                 "VALUES ('missing mediarecord', '%s', %d, %d, %d, '%s')",
                 $file, $finfo['size'], $finfo['mtime'], $finfo['ctime'], $more_info);
      }
    }
    closedir($fh);
  }
  closedir($dh);
}
?>