/**
* API for MediaWiki 1.12+
*
- * Created on May 10, 2010
- *
* Copyright © 2010 Sam Reed
* Copyright © 2008 Vasiliev Victor vasilvv@gmail.com,
* based on ApiQueryAllPages.php
}
public function execute() {
- $user = $this->getUser();
// Before doing anything at all, let's check permissions
- if ( !$user->isAllowed( 'deletedhistory' ) ) {
- $this->dieUsage(
- 'You don\'t have permission to view deleted file information',
- 'permissiondenied'
- );
- }
+ $this->checkUserRightsAny( 'deletedhistory' );
+ $user = $this->getUser();
$db = $this->getDB();
+ $commentStore = CommentStore::getStore();
$params = $this->extractRequestParams();
$fld_bitdepth = isset( $prop['bitdepth'] );
$fld_archivename = isset( $prop['archivename'] );
- $this->addTables( 'filearchive' );
-
- $this->addFields( ArchivedFile::selectFields() );
- $this->addFields( [ 'fa_id', 'fa_name', 'fa_timestamp', 'fa_deleted' ] );
- $this->addFieldsIf( 'fa_sha1', $fld_sha1 );
- $this->addFieldsIf( [ 'fa_user', 'fa_user_text' ], $fld_user );
- $this->addFieldsIf( [ 'fa_height', 'fa_width', 'fa_size' ], $fld_dimensions || $fld_size );
- $this->addFieldsIf( 'fa_description', $fld_description );
- $this->addFieldsIf( [ 'fa_major_mime', 'fa_minor_mime' ], $fld_mime );
- $this->addFieldsIf( 'fa_media_type', $fld_mediatype );
- $this->addFieldsIf( 'fa_metadata', $fld_metadata );
- $this->addFieldsIf( 'fa_bits', $fld_bitdepth );
- $this->addFieldsIf( 'fa_archive_name', $fld_archivename );
+ $fileQuery = ArchivedFile::getQueryInfo();
+ $this->addTables( $fileQuery['tables'] );
+ $this->addFields( $fileQuery['fields'] );
+ $this->addJoinConds( $fileQuery['joins'] );
if ( !is_null( $params['continue'] ) ) {
$cont = explode( '|', $params['continue'] );
if ( $sha1Set ) {
$sha1 = strtolower( $params['sha1'] );
if ( !$this->validateSha1Hash( $sha1 ) ) {
- $this->dieUsage( 'The SHA1 hash provided is not valid', 'invalidsha1hash' );
+ $this->dieWithError( 'apierror-invalidsha1hash' );
}
$sha1 = Wikimedia\base_convert( $sha1, 16, 36, 31 );
} elseif ( $sha1base36Set ) {
$sha1 = strtolower( $params['sha1base36'] );
if ( !$this->validateSha1Base36Hash( $sha1 ) ) {
- $this->dieUsage( 'The SHA1Base36 hash provided is not valid', 'invalidsha1base36hash' );
+ $this->dieWithError( 'apierror-invalidsha1base36hash' );
}
}
if ( $sha1 ) {
if ( $fld_description &&
Revision::userCanBitfield( $row->fa_deleted, File::DELETED_COMMENT, $user )
) {
- $file['description'] = $row->fa_description;
+ $file['description'] = $commentStore->getComment( 'fa_description', $row )->text;
if ( isset( $prop['parseddescription'] ) ) {
$file['parseddescription'] = Linker::formatComment(
- $row->fa_description, $title );
+ $file['description'], $title );
}
}
if ( $fld_user &&
}
public function getHelpUrls() {
- return 'https://www.mediawiki.org/wiki/API:Filearchive';
+ return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Filearchive';
}
}