X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FimportImages.php;h=5a4ab394032d0aa00c36f63a91c6c1c483dfa42f;hb=f43fa6f4f0e2cb60b8543daad661b48a3e0653a9;hp=3dd4a9e4ad1a37e17c5416841d55264d3b8bd4f8;hpb=bd4484b72f323fed599ee99c53f2bef8ef881a0c;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/importImages.php b/maintenance/importImages.php index 3dd4a9e4ad..5a4ab39403 100644 --- a/maintenance/importImages.php +++ b/maintenance/importImages.php @@ -32,10 +32,16 @@ * @author Mij */ -$optionsWithArgs = array( +$optionsWithArgs = [ 'extensions', 'comment', 'comment-file', 'comment-ext', 'summary', 'user', 'license', 'sleep', 'limit', 'from', 'source-wiki-url', 'timestamp', -); +]; + +$optionsWithoutArgs = [ + 'protect', 'unprotect', 'search-recursively', 'check-userblock', 'overwrite', + 'skip-dupes', 'dry' +]; + require_once __DIR__ . '/commandLine.inc'; require_once __DIR__ . '/importImages.inc'; $processed = $added = $ignored = $skipped = $overwritten = $failed = 0; @@ -70,9 +76,9 @@ $files = findFiles( $dir, $extensions, isset( $options['search-recursively'] ) ) # Initialise the user for this operation $user = isset( $options['user'] ) ? User::newFromName( $options['user'] ) - : User::newFromName( 'Maintenance script' ); + : User::newSystemUser( 'Maintenance script', [ 'steal' => true ] ); if ( !$user instanceof User ) { - $user = User::newFromName( 'Maintenance script' ); + $user = User::newSystemUser( 'Maintenance script', [ 'steal' => true ] ); } $wgUser = $user; @@ -88,23 +94,23 @@ if ( isset( $options['check-userblock'] ) ) { } # Get --from -wfSuppressWarnings(); +MediaWiki\suppressWarnings(); $from = $options['from']; -wfRestoreWarnings(); +MediaWiki\restoreWarnings(); # Get sleep time. -wfSuppressWarnings(); +MediaWiki\suppressWarnings(); $sleep = $options['sleep']; -wfRestoreWarnings(); +MediaWiki\restoreWarnings(); if ( $sleep ) { $sleep = (int)$sleep; } # Get limit number -wfSuppressWarnings(); +MediaWiki\suppressWarnings(); $limit = $options['limit']; -wfRestoreWarnings(); +MediaWiki\restoreWarnings(); if ( $limit ) { $limit = (int)$limit; @@ -136,7 +142,7 @@ $count = count( $files ); if ( $count > 0 ) { foreach ( $files as $file ) { - $base = wfBaseName( $file ); + $base = UtfNormal\Validator::cleanUp( wfBaseName( $file ) ); # Validate a title $title = Title::makeTitleSafe( NS_FILE, $base ); @@ -177,7 +183,7 @@ if ( $count > 0 ) { if ( isset( $options['skip-dupes'] ) ) { $repo = $image->getRepo(); # XXX: we end up calculating this again when actually uploading. that sucks. - $sha1 = File::sha1Base36( $file ); + $sha1 = FSFile::getSha1Base36FromPath( $file ); $dupes = $repo->findBySha1( $sha1 ); @@ -239,19 +245,20 @@ if ( $count > 0 ) { if ( isset( $options['dry'] ) ) { echo " publishing {$file} by '" . $wgUser->getName() . "', comment '$commentText'... "; } else { - $props = FSFile::getPropsFromPath( $file ); + $mwProps = new MWFileProps( MimeMagic::singleton() ); + $props = $mwProps->getPropsFromPath( $file, true ); $flags = 0; - $publishOptions = array(); + $publishOptions = []; $handler = MediaHandler::getHandler( $props['mime'] ); if ( $handler ) { $publishOptions['headers'] = $handler->getStreamHeaders( $props['metadata'] ); } else { - $publishOptions['headers'] = array(); + $publishOptions['headers'] = []; } $archive = $image->publish( $file, $flags, $publishOptions ); if ( !$archive->isGood() ) { echo "failed. (" . - $archive->getWikiText() . + $archive->getWikiText( false, false, 'en' ) . ")\n"; $failed++; continue; @@ -291,21 +298,21 @@ if ( $count > 0 ) { if ( $doProtect ) { # Protect the file - echo "\nWaiting for slaves...\n"; - // Wait for slaves. + echo "\nWaiting for replica DBs...\n"; + // Wait for replica DBs. sleep( 2.0 ); # Why this sleep? wfWaitForSlaves(); echo "\nSetting image restrictions ... "; $cascade = false; - $restrictions = array(); + $restrictions = []; foreach ( $title->getRestrictionTypes() as $type ) { $restrictions[$type] = $protectLevel; } $page = WikiPage::factory( $title ); - $status = $page->doUpdateRestrictions( $restrictions, array(), $cascade, '', $user ); + $status = $page->doUpdateRestrictions( $restrictions, [], $cascade, '', $user ); echo ( $status->isOK() ? 'done' : 'failed' ) . "\n"; } } else { @@ -328,7 +335,7 @@ if ( $count > 0 ) { # Print out some statistics echo "\n"; foreach ( - array( + [ 'count' => 'Found', 'limit' => 'Limit', 'ignored' => 'Ignored', @@ -336,7 +343,7 @@ if ( $count > 0 ) { 'skipped' => 'Skipped', 'overwritten' => 'Overwritten', 'failed' => 'Failed' - ) as $var => $desc + ] as $var => $desc ) { if ( $$var > 0 ) { echo "{$desc}: {$$var}\n";