X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FrefreshImageMetadata.php;h=aea966ffb2afa187b35c6694c760d327bad2e066;hb=1064c7435480c80b9d863cf9d15551098d28a3b9;hp=01fb15eb92943d233b8b0aa05d94090685e85a56;hpb=592637225a4d5db5abcdc288d838c160284eef08;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/refreshImageMetadata.php b/maintenance/refreshImageMetadata.php index 01fb15eb92..aea966ffb2 100644 --- a/maintenance/refreshImageMetadata.php +++ b/maintenance/refreshImageMetadata.php @@ -68,9 +68,16 @@ class RefreshImageMetadata extends Maintenance { $this->addOption( 'start', 'Name of file to start with', false, true ); $this->addOption( 'end', 'Name of file to end with', false, true ); + $this->addOption( + 'mediatype', + 'Only refresh files with this media type, e.g. BITMAP, UNKNOWN etc.', + false, + true + ); $this->addOption( 'mime', - '(Inefficient!) Only refresh files with this MIME type. Can accept wild-card image/*', + "Only refresh files with this MIME type. Can accept wild-card 'image/*'. " + . "Potentially inefficient unless 'mediatype' is also specified", false, true ); @@ -104,15 +111,15 @@ class RefreshImageMetadata extends Maintenance { $conds = $this->getConditions( $dbw ); // For the WHERE img_name > 'foo' condition that comes after doing a batch - $conds2 = array(); + $conds2 = []; if ( $start !== false ) { $conds2[] = 'img_name >= ' . $dbw->addQuotes( $start ); } - $options = array( + $options = [ 'LIMIT' => $this->mBatchSize, 'ORDER BY' => 'img_name ASC', - ); + ]; do { $res = $dbw->select( @@ -132,6 +139,7 @@ class RefreshImageMetadata extends Maintenance { } foreach ( $res as $row ) { + // LocalFile will upgrade immediately here if obsolete $file = $repo->newFileFromRow( $row ); if ( $file->getUpgraded() ) { // File was upgraded. @@ -172,7 +180,7 @@ class RefreshImageMetadata extends Maintenance { } } } - $conds2 = array( 'img_name > ' . $dbw->addQuotes( $row->img_name ) ); + $conds2 = [ 'img_name > ' . $dbw->addQuotes( $row->img_name ) ]; wfWaitForSlaves(); } while ( $res->numRows() === $this->mBatchSize ); @@ -193,10 +201,11 @@ class RefreshImageMetadata extends Maintenance { * @return array */ function getConditions( $dbw ) { - $conds = array(); + $conds = []; $end = $this->getOption( 'end', false ); $mime = $this->getOption( 'mime', false ); + $mediatype = $this->getOption( 'mediatype', false ); $like = $this->getOption( 'metadata-contains', false ); if ( $end !== false ) { @@ -209,6 +218,9 @@ class RefreshImageMetadata extends Maintenance { $conds['img_minor_mime'] = $minor; } } + if ( $mediatype !== false ) { + $conds['img_media_type'] = $mediatype; + } if ( $like ) { $conds[] = 'img_metadata ' . $dbw->buildLike( $dbw->anyString(), $like, $dbw->anyString() ); }