X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FrefreshFileHeaders.php;h=bd625ba129203f6041dcc3b6d41843d0fdf99ed0;hb=2f15b22b91c0426b06e9ece9ffd2aa14fbdaa621;hp=bca1c964353bd35fed8d1746450cb4bc26aaccd9;hpb=2480aae0c97d822e10b50619e7b48b25c45af073;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/refreshFileHeaders.php b/maintenance/refreshFileHeaders.php index bca1c96435..bd625ba129 100644 --- a/maintenance/refreshFileHeaders.php +++ b/maintenance/refreshFileHeaders.php @@ -37,6 +37,9 @@ class RefreshFileHeaders extends Maintenance { $this->addOption( 'verbose', 'Output information about each file.', false, false, 'v' ); $this->addOption( 'start', 'Name of file to start with', false, true ); $this->addOption( 'end', 'Name of file to end with', false, true ); + $this->addOption( 'media_type', 'Media type to filter for', false, true ); + $this->addOption( 'major_mime', 'Major mime type to filter for', false, true ); + $this->addOption( 'minor_mime', 'Minor mime type to filter for', false, true ); $this->setBatchSize( 200 ); } @@ -44,10 +47,18 @@ class RefreshFileHeaders extends Maintenance { $repo = RepoGroup::singleton()->getLocalRepo(); $start = str_replace( ' ', '_', $this->getOption( 'start', '' ) ); // page on img_name $end = str_replace( ' ', '_', $this->getOption( 'end', '' ) ); // page on img_name + // filter by img_media_type + $media_type = str_replace( ' ', '_', $this->getOption( 'media_type', '' ) ); + // filter by img_major_mime + $major_mime = str_replace( ' ', '_', $this->getOption( 'major_mime', '' ) ); + // filter by img_minor_mime + $minor_mime = str_replace( ' ', '_', $this->getOption( 'minor_mime', '' ) ); $count = 0; $dbr = $this->getDB( DB_REPLICA ); + $fileQuery = LocalFile::getQueryInfo(); + do { $conds = [ "img_name > {$dbr->addQuotes( $start )}" ]; @@ -55,8 +66,28 @@ class RefreshFileHeaders extends Maintenance { $conds[] = "img_name <= {$dbr->addQuotes( $end )}"; } - $res = $dbr->select( 'image', '*', $conds, - __METHOD__, [ 'LIMIT' => $this->mBatchSize, 'ORDER BY' => 'img_name ASC' ] ); + if ( strlen( $media_type ) ) { + $conds[] = "img_media_type = {$dbr->addQuotes( $media_type )}"; + } + + if ( strlen( $major_mime ) ) { + $conds[] = "img_major_mime = {$dbr->addQuotes( $major_mime )}"; + } + + if ( strlen( $minor_mime ) ) { + $conds[] = "img_minor_mime = {$dbr->addQuotes( $minor_mime )}"; + } + + $res = $dbr->select( $fileQuery['tables'], + $fileQuery['fields'], + $conds, + __METHOD__, + [ + 'LIMIT' => $this->getBatchSize(), + 'ORDER BY' => 'img_name ASC' + ], + $fileQuery['joins'] + ); if ( $res->numRows() > 0 ) { $row1 = $res->current(); @@ -98,7 +129,7 @@ class RefreshFileHeaders extends Maintenance { $this->output( "Updating headers for {$backendOperationsCount} file(s).\n" ); $this->updateFileHeaders( $repo, $backendOperations ); - } while ( $res->numRows() === $this->mBatchSize ); + } while ( $res->numRows() === $this->getBatchSize() ); $this->output( "Done. Updated headers for $count file(s).\n" ); }