From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- maintenance/importImages.php | 101 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 maintenance/importImages.php (limited to 'maintenance/importImages.php') diff --git a/maintenance/importImages.php b/maintenance/importImages.php new file mode 100644 index 00000000..925c64b7 --- /dev/null +++ b/maintenance/importImages.php @@ -0,0 +1,101 @@ + + */ + +require_once( 'commandLine.inc' ); +require_once( 'importImages.inc.php' ); +echo( "Import Images\n\n" ); + +# Need a directory and at least one extension +if( count( $args ) > 1 ) { + + $dir = array_shift( $args ); + + # Check the allowed extensions + while( $ext = array_shift( $args ) ) + $exts[] = ltrim( $ext, '.' ); + + # Search the directory given and pull out suitable candidates + $files = findFiles( $dir, $exts ); + + # Set up a fake user for this operation + $wgUser = User::newFromName( 'Image import script' ); + $wgUser->setLoaded( true ); + + # Batch "upload" operation + foreach( $files as $file ) { + + $base = basename( $file ); + + # Validate a title + $title = Title::makeTitleSafe( NS_IMAGE, $base ); + if( is_object( $title ) ) { + + # Check existence + $image = new Image( $title ); + if( !$image->exists() ) { + + global $wgUploadDirectory; + + # copy() doesn't create paths so if the hash path doesn't exist, we + # have to create it + makeHashPath( wfGetHashPath( $image->name ) ); + + # Stash the file + echo( "Saving {$base}..." ); + + if( copy( $file, $image->getFullPath() ) ) { + + echo( "importing..." ); + + # Grab the metadata + $image->loadFromFile(); + + # Record the upload + if( $image->recordUpload( '', 'Importing image file' ) ) { + + # We're done! + echo( "done.\n" ); + + } else { + echo( "failed.\n" ); + } + + } else { + echo( "failed.\n" ); + } + + } else { + echo( "{$base} could not be imported; a file with this name exists in the wiki\n" ); + } + + } else { + echo( "{$base} could not be imported; a valid title cannot be produced\n" ); + } + + } + + +} else { + showUsage(); +} + +exit(); + +function showUsage( $reason = false ) { + if( $reason ) + echo( $reason . "\n" ); + echo( "USAGE: php importImages.php \n\n" ); + echo( " : Path to the directory containing images to be imported\n" ); + echo( " File extensions to import\n\n" ); + exit(); +} + +?> \ No newline at end of file -- cgit v1.2.2