X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=maintenance%2FrebuildImages.php;h=f5d06e4620ae7ea1be8d157ff0ce52873f64e271;hb=89a055491c988688c13b26184c06ba9d7b3585f3;hp=15328bf1615806f7c92ac419be5bcf89d5e5c4c9;hpb=f9d39b3728a15526327ab4b6adb754aff727a974;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/rebuildImages.php b/maintenance/rebuildImages.php index 15328bf161..f5d06e4620 100644 --- a/maintenance/rebuildImages.php +++ b/maintenance/rebuildImages.php @@ -1,6 +1,6 @@ - * @ingroup maintenance + * @ingroup Maintenance */ -require_once( dirname( __FILE__ ) . '/Maintenance.php' ); +require_once( __DIR__ . '/Maintenance.php' ); +/** + * Maintenance script to update image metadata records. + * + * @ingroup Maintenance + */ class ImageBuilder extends Maintenance { /** @@ -42,6 +47,10 @@ class ImageBuilder extends Maintenance { function __construct() { parent::__construct(); + global $wgUpdateCompatibleMetadata; + //make sure to update old, but compatible img_metadata fields. + $wgUpdateCompatibleMetadata = true; + $this->mDescription = 'Script to update image metadata records'; $this->addOption( 'missing', 'Check for files without associated database record' ); @@ -63,6 +72,9 @@ class ImageBuilder extends Maintenance { } } + /** + * @return FileRepo + */ function getRepo() { if ( !isset( $this->repo ) ) { $this->repo = RepoGroup::singleton()->getLocalRepo(); @@ -141,8 +153,7 @@ class ImageBuilder extends Maintenance { } function buildOldImage() { - $this->buildTable( 'oldimage', 'oi_archive_name', - array( $this, 'oldimageCallback' ) ); + $this->buildTable( 'oldimage', 'oi_archive_name', array( $this, 'oldimageCallback' ) ); } function oldimageCallback( $row, $copy ) { @@ -157,42 +168,33 @@ class ImageBuilder extends Maintenance { } function crawlMissing() { - $repo = RepoGroup::singleton()->getLocalRepo(); - $repo->enumFilesInFS( array( $this, 'checkMissingImage' ) ); + $this->getRepo()->enumFiles( array( $this, 'checkMissingImage' ) ); } function checkMissingImage( $fullpath ) { $filename = wfBaseName( $fullpath ); - if ( is_dir( $fullpath ) ) { - return; - } - if ( is_link( $fullpath ) ) { - $this->output( "skipping symlink at $fullpath\n" ); - return; - } $row = $this->dbw->selectRow( 'image', array( 'img_name' ), array( 'img_name' => $filename ), __METHOD__ ); - if ( $row ) { - // already known, move on - return; - } else { + if ( !$row ) { // file not registered $this->addMissingImage( $filename, $fullpath ); } } function addMissingImage( $filename, $fullpath ) { - $timestamp = $this->dbw->timestamp( filemtime( $fullpath ) ); - global $wgContLang; + + $timestamp = $this->dbw->timestamp( $this->getRepo()->getFileTimestamp( $fullpath ) ); + $altname = $wgContLang->checkTitleEncoding( $filename ); if ( $altname != $filename ) { if ( $this->dryrun ) { $filename = $altname; $this->output( "Estimating transcoding... $altname\n" ); } else { + # @todo FIXME: create renameFile() $filename = $this->renameFile( $filename ); } } @@ -215,4 +217,4 @@ class ImageBuilder extends Maintenance { } $maintClass = 'ImageBuilder'; -require( RUN_MAINTENANCE_IF_MAIN ); +require_once( RUN_MAINTENANCE_IF_MAIN );