diff options
Diffstat (limited to 'includes/api/ApiQueryRecentChanges.php')
-rw-r--r-- | includes/api/ApiQueryRecentChanges.php | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/includes/api/ApiQueryRecentChanges.php b/includes/api/ApiQueryRecentChanges.php index 04eb910f..191eec28 100644 --- a/includes/api/ApiQueryRecentChanges.php +++ b/includes/api/ApiQueryRecentChanges.php @@ -97,25 +97,6 @@ class ApiQueryRecentChanges extends ApiQueryBase { $this->addWhereRange('rc_timestamp', $params['dir'], $params['start'], $params['end']); $this->addWhereFld('rc_namespace', $params['namespace']); $this->addWhereFld('rc_deleted', 0); - if($params['titles']) - { - $lb = new LinkBatch; - foreach($params['titles'] as $t) - { - $obj = Title::newFromText($t); - $lb->addObj($obj); - if($obj->getNamespace() < 0) - { - // LinkBatch refuses these, but we need them anyway - if(!array_key_exists($obj->getNamespace(), $lb->data)) - $lb->data[$obj->getNamespace()] = array(); - $lb->data[$obj->getNamespace()][$obj->getDBKey()] = 1; - } - } - $where = $lb->constructSet('rc', $this->getDB()); - if($where != '') - $this->addWhere($where); - } if(!is_null($params['type'])) $this->addWhereFld('rc_type', $this->parseRCType($params['type'])); @@ -210,9 +191,7 @@ class ApiQueryRecentChanges extends ApiQueryBase { $this->token = $params['token']; $this->addOption('LIMIT', $params['limit'] +1); - $data = array (); $count = 0; - /* Perform the actual query. */ $db = $this->getDB(); $res = $this->select(__METHOD__); @@ -229,16 +208,20 @@ class ApiQueryRecentChanges extends ApiQueryBase { $vals = $this->extractRowInfo($row); /* Add that row's data to our final output. */ - if($vals) - $data[] = $vals; + if(!$vals) + continue; + $fit = $this->getResult()->addValue(array('query', $this->getModuleName()), null, $vals); + if(!$fit) + { + $this->setContinueEnumParameter('start', wfTimestamp(TS_ISO_8601, $row->rc_timestamp)); + break; + } } $db->freeResult($res); /* Format the result */ - $result = $this->getResult(); - $result->setIndexedTagName($data, 'rc'); - $result->addValue('query', $this->getModuleName(), $data); + $this->getResult()->setIndexedTagName_internal(array('query', $this->getModuleName()), 'rc'); } /** @@ -328,7 +311,7 @@ class ApiQueryRecentChanges extends ApiQueryBase { $vals['patrolled'] = ''; if ($this->fld_loginfo && $row->rc_type == RC_LOG) { - $vals['logid'] = $row->rc_logid; + $vals['logid'] = intval($row->rc_logid); $vals['logtype'] = $row->rc_log_type; $vals['logaction'] = $row->rc_log_action; ApiQueryLogEvents::addLogParams($this->getResult(), @@ -389,9 +372,6 @@ class ApiQueryRecentChanges extends ApiQueryBase { ApiBase :: PARAM_ISMULTI => true, ApiBase :: PARAM_TYPE => 'namespace' ), - 'titles' => array( - ApiBase :: PARAM_ISMULTI => true - ), 'prop' => array ( ApiBase :: PARAM_ISMULTI => true, ApiBase :: PARAM_DFLT => 'title|timestamp|ids', @@ -451,7 +431,6 @@ class ApiQueryRecentChanges extends ApiQueryBase { 'end' => 'The timestamp to end enumerating.', 'dir' => 'In which direction to enumerate.', 'namespace' => 'Filter log entries to only this namespace(s)', - 'titles' => 'Filter log entries to only these page titles', 'prop' => 'Include additional pieces of information', 'token' => 'Which tokens to obtain for each change', 'show' => array ( @@ -474,6 +453,6 @@ class ApiQueryRecentChanges extends ApiQueryBase { } public function getVersion() { - return __CLASS__ . ': $Id: ApiQueryRecentChanges.php 44719 2008-12-17 16:34:01Z catrope $'; + return __CLASS__ . ': $Id: ApiQueryRecentChanges.php 50094 2009-05-01 06:24:09Z tstarling $'; } -} +}
\ No newline at end of file |