X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllImages.php;h=229c07eb79cd253e53b96a5c5fa0dfa835196a1a;hb=b954a12809f6e90aeb07bf9823af92d6b4a0b6c7;hp=4095bd81fdf4a254310a78f7b2ff62f463a87040;hpb=abd5daddfefb0ec89e3308be3ac21f439c2e914f;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllImages.php b/includes/api/ApiQueryAllImages.php index 4095bd81fd..229c07eb79 100644 --- a/includes/api/ApiQueryAllImages.php +++ b/includes/api/ApiQueryAllImages.php @@ -168,6 +168,20 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { $params['start'], $params['end'] ); + // Include in ORDER BY for uniqueness + $this->addWhereRange( 'img_name', $ascendingOrder ? 'newer' : 'older', null, null ); + + if ( !is_null( $params['continue'] ) ) { + $cont = explode( '|', $params['continue'] ); + $this->dieContinueUsageIf( count( $cont ) != 2 ); + $op = ( $ascendingOrder ? '>' : '<' ); + $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) ); + $continueName = $db->addQuotes( $cont[1] ); + $this->addWhere( "img_timestamp $op $continueTimestamp OR " . + "(img_timestamp = $continueTimestamp AND " . + "img_name $op= $continueName)" + ); + } // Image filters if ( !is_null( $params['user'] ) ) { @@ -254,7 +268,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { if ( $params['sort'] == 'name' ) { $this->setContinueEnumParameter( 'continue', $row->img_name ); } else { - $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->img_timestamp ) ); + $this->setContinueEnumParameter( 'continue', "$row->img_timestamp|$row->img_name" ); } break; } @@ -270,7 +284,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { if ( $params['sort'] == 'name' ) { $this->setContinueEnumParameter( 'continue', $row->img_name ); } else { - $this->setContinueEnumParameter( 'start', wfTimestamp( TS_ISO_8601, $row->img_timestamp ) ); + $this->setContinueEnumParameter( 'continue', "$row->img_timestamp|$row->img_name" ); } break; } @@ -378,7 +392,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { ); } - private $propertyFilter = array( 'archivename', 'thumbmime' ); + private $propertyFilter = array( 'archivename', 'thumbmime', 'uploadwarning' ); public function getResultProperties() { return array_merge( @@ -394,7 +408,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { } public function getDescription() { - return 'Enumerate all images sequentially'; + return 'Enumerate all images sequentially.'; } public function getPossibleErrors() {