* @file
*/
+use Wikimedia\Rdbms\IDatabase;
+
/**
* Query module to enumerate all available pages.
*
$db = $this->getDB();
$params = $this->extractRequestParams();
+ $userId = !is_null( $params['user'] ) ? User::idFromName( $params['user'] ) : null;
// Table and return fields
$this->addTables( 'image' );
// Image filters
if ( !is_null( $params['user'] ) ) {
- $this->addWhereFld( 'img_user_text', $params['user'] );
+ if ( $userId ) {
+ $this->addWhereFld( 'img_user', $userId );
+ } else {
+ $this->addWhereFld( 'img_user_text', $params['user'] );
+ }
}
if ( $params['filterbots'] != 'all' ) {
$this->addTables( 'user_groups' );
[
'ug_group' => User::getGroupsWithPermission( 'bot' ),
'ug_user = img_user',
- $this->getConfig()->get( 'DisableUserGroupExpiry' ) ?
- '1' :
- 'ug_expiry IS NULL OR ug_expiry >= ' . $db->addQuotes( $db->timestamp() )
+ 'ug_expiry IS NULL OR ug_expiry >= ' . $db->addQuotes( $db->timestamp() )
]
] ] );
$groupCond = ( $params['filterbots'] == 'nobots' ? 'NULL' : 'NOT NULL' );
if ( $params['sort'] == 'timestamp' ) {
$this->addOption( 'ORDER BY', 'img_timestamp' . $sortFlag );
if ( !is_null( $params['user'] ) ) {
- $this->addOption( 'USE INDEX', [ 'image' => 'img_usertext_timestamp' ] );
+ if ( $userId ) {
+ $this->addOption( 'USE INDEX', [ 'image' => 'img_user_timestamp' ] );
+ } else {
+ $this->addOption( 'USE INDEX', [ 'image' => 'img_usertext_timestamp' ] );
+ }
} else {
$this->addOption( 'USE INDEX', [ 'image' => 'img_timestamp' ] );
}
}
public function getHelpUrls() {
- return 'https://www.mediawiki.org/wiki/API:Allimages';
+ return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Allimages';
}
}