raise timeout for CdbTest::testCdb()
[lhc/web/wiklou.git] / includes / api / ApiQueryDuplicateFiles.php
index a4efc4c..3b04426 100644 (file)
@@ -66,10 +66,7 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                $skipUntilThisDup = false;
                if ( isset( $params['continue'] ) ) {
                        $cont = explode( '|', $params['continue'] );
-                       if ( count( $cont ) != 2 ) {
-                               $this->dieUsage( 'Invalid continue param. You should pass the ' .
-                                       'original value returned by the previous query', '_badcontinue' );
-                       }
+                       $this->dieContinueUsageIf( count( $cont ) != 2 );
                        $fromImage = $cont[0];
                        $skipUntilThisDup = $cont[1];
                        // Filter out any images before $fromImage
@@ -118,8 +115,8 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                        }
                        foreach ( $dupFiles as $dupFile ) {
                                $dupName = $dupFile->getName();
-                               if( $image == $dupName ) {
-                                       continue; //ignore the file itself
+                               if( $image == $dupName && $dupFile->isLocal() ) {
+                                       continue; //ignore the local file itself
                                }
                                if( $skipUntilThisDup !== false && $dupName < $skipUntilThisDup ) {
                                        continue; //skip to pos after the image from continue param
@@ -133,13 +130,16 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                                        break;
                                }
                                if ( !is_null( $resultPageSet ) ) {
-                                       $titles[] = $file->getTitle();
+                                       $titles[] = $dupFile->getTitle();
                                } else {
                                        $r = array(
                                                'name' => $dupName,
                                                'user' => $dupFile->getUser( 'text' ),
                                                'timestamp' => wfTimestamp( TS_ISO_8601, $dupFile->getTimestamp() )
                                        );
+                                       if( !$dupFile->isLocal() ) {
+                                               $r['shared'] = '';
+                                       }
                                        $fit = $this->addPageSubItem( $pageId, $r );
                                        if ( !$fit ) {
                                                $this->setContinueEnumParameter( 'continue', $image . '|' . $dupName );
@@ -191,7 +191,8 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                        '' => array(
                                'name' => 'string',
                                'user' => 'string',
-                               'timestamp' => 'timestamp'
+                               'timestamp' => 'timestamp',
+                               'shared' => 'boolean',
                        )
                );
        }
@@ -200,12 +201,6 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                return 'List all files that are duplicates of the given file(s) based on hash values';
        }
 
-       public function getPossibleErrors() {
-               return array_merge( parent::getPossibleErrors(), array(
-                       array( 'code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query' ),
-               ) );
-       }
-
        public function getExamples() {
                return array(
                        'api.php?action=query&titles=File:Albert_Einstein_Head.jpg&prop=duplicatefiles',
@@ -216,8 +211,4 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
        public function getHelpUrls() {
                return 'https://www.mediawiki.org/wiki/API:Properties#duplicatefiles_.2F_df';
        }
-
-       public function getVersion() {
-               return __CLASS__ . ': $Id$';
-       }
 }