Merge "Adding param documentation for Parser::internalParse()"
[lhc/web/wiklou.git] / maintenance / refreshImageMetadata.php
index 4f2341c..bdbb347 100644 (file)
@@ -44,7 +44,7 @@ class RefreshImageMetadata extends Maintenance {
        function __construct() {
                parent::__construct();
 
-               $this->mDescription = 'Script to update image metadata records';
+               $this->addDescription( 'Script to update image metadata records' );
                $this->setBatchSize( 200 );
 
                $this->addOption(
@@ -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(
@@ -172,7 +179,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 +200,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 +217,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() );
                }