(bug 47483) update file metadata in importImages
authorJan Gerber <jgerber@wikimedia.org>
Mon, 22 Apr 2013 09:36:51 +0000 (09:36 +0000)
committerJan Gerber <jgerber@wikimedia.org>
Tue, 23 Apr 2013 10:09:27 +0000 (10:09 +0000)
importImages maintenance script was not updating file metadata
when overwriting files. Bring code in importImages in line with
LocalFile::upload

Bug: 47483
Change-Id: I0e879604ce76ed78708a36df46b58fb3b8a7d6d2

maintenance/importImages.php

index abc1b87..7b340cc 100644 (file)
@@ -228,7 +228,16 @@ if ( $count > 0 ) {
                if ( isset( $options['dry'] ) ) {
                        echo( " publishing {$file} by '" . $wgUser->getName() . "', comment '$commentText'... " );
                } else {
-                       $archive = $image->publish( $file );
+                       $props = FSFile::getPropsFromPath( $file );
+                       $flags = 0;
+                       $options = array();
+                       $handler = MediaHandler::getHandler( $props['mime'] );
+                       if ( $handler ) {
+                               $options['headers'] = $handler->getStreamHeaders( $props['metadata'] );
+                       } else {
+                               $options['headers'] = array();
+                       }
+                       $archive = $image->publish( $file, $flags, $options );
                        if ( !$archive->isGood() ) {
                                echo( "failed. (" .
                                        $archive->getWikiText() .
@@ -245,7 +254,7 @@ if ( $count > 0 ) {
 
                if ( isset( $options['dry'] ) ) {
                        echo( "done.\n" );
-               } elseif ( $image->recordUpload2( $archive->value, $summary, $commentText, false, $timestamp ) ) {
+               } elseif ( $image->recordUpload2( $archive->value, $summary, $commentText, $props, $timestamp ) ) {
                        # We're done!
                        echo( "done.\n" );