X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FrefreshFileHeaders.php;h=e123de7fdb3117f445e4ad83c5ffa4ee7bf2ad22;hb=444073ddbc915d0dd64ed98a88431e3972e1e39f;hp=bca1c964353bd35fed8d1746450cb4bc26aaccd9;hpb=f4a53c54065c385172363416eb3cb44b67585ca2;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/refreshFileHeaders.php b/maintenance/refreshFileHeaders.php index bca1c96435..e123de7fdb 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,21 @@ 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->mBatchSize, 'ORDER BY' => 'img_name ASC' ], $fileQuery['joins'] + ); if ( $res->numRows() > 0 ) { $row1 = $res->current();