%PDF- %PDF-
Direktori : /proc/985914/root/www/varak.net/wiki.varak.net/extensions/Translate/api/ |
Current File : //proc/985914/root/www/varak.net/wiki.varak.net/extensions/Translate/api/ApiStatsQuery.php |
<?php /** * A base module for querying message group related stats. * * @file * @author Niklas Laxström * @license GPL-2.0-or-later */ /** * A base module for querying message group related stats. * * @ingroup API TranslateAPI * @since 2012-11-30 */ abstract class ApiStatsQuery extends ApiQueryBase { public function getCacheMode( $params ) { return 'public'; } public function execute() { $params = $this->extractRequestParams(); MessageGroupStats::setTimeLimit( $params['timelimit'] ); $cache = $this->getData(); $result = $this->getResult(); foreach ( $cache as $item => $stats ) { if ( $item < $params['offset'] ) { continue; } if ( $stats[MessageGroupStats::TOTAL] === null ) { $this->setContinueEnumParameter( 'offset', $item ); break; } $data = $this->makeItem( $item, $stats ); $result->addValue( [ 'query', $this->getModuleName() ], null, $data ); } $result->addIndexedTagName( [ 'query', $this->getModuleName() ], 'stats' ); } protected function makeItem( $item, $stats ) { return [ 'total' => $stats[MessageGroupStats::TOTAL], 'translated' => $stats[MessageGroupStats::TRANSLATED], 'fuzzy' => $stats[MessageGroupStats::FUZZY], 'proofread' => $stats[MessageGroupStats::PROOFREAD], ]; } public function getAllowedParams() { return [ 'offset' => [ ApiBase::PARAM_DFLT => '0', ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_HELP_MSG => 'api-help-param-continue', ], 'timelimit' => [ ApiBase::PARAM_DFLT => 8, ApiBase::PARAM_TYPE => 'integer', ApiBase::PARAM_MAX => 10, ApiBase::PARAM_MIN => 0, ], ]; } }