Merge "Deprecate $wgPasswordSenderName"
[lhc/web/wiklou.git] / includes / api / ApiFeedContributions.php
index 0569109..f90ba98 100644 (file)
@@ -41,7 +41,7 @@ class ApiFeedContributions extends ApiBase {
        public function execute() {
                $params = $this->extractRequestParams();
 
-               global $wgFeed, $wgFeedClasses, $wgSitename, $wgLanguageCode;
+               global $wgFeed, $wgFeedClasses, $wgFeedLimit, $wgSitename, $wgLanguageCode;
 
                if ( !$wgFeed ) {
                        $this->dieUsage( 'Syndication feeds are not available', 'feed-unavailable' );
@@ -61,8 +61,8 @@ class ApiFeedContributions extends ApiBase {
                $feedUrl = SpecialPage::getTitleFor( 'Contributions', $params['user'] )->getFullURL();
 
                $target = $params['user'] == 'newbies'
-                               ? 'newbies'
-                               : Title::makeTitleSafe( NS_USER, $params['user'] )->getText();
+                       ? 'newbies'
+                       : Title::makeTitleSafe( NS_USER, $params['user'] )->getText();
 
                $feed = new $wgFeedClasses[$params['feedformat']] (
                        $feedTitle,
@@ -81,9 +81,19 @@ class ApiFeedContributions extends ApiBase {
                        'showSizeDiff' => $params['showsizediff'],
                ) );
 
+               if ( $pager->getLimit() > $wgFeedLimit ) {
+                       $pager->setLimit( $wgFeedLimit );
+               }
+
                $feedItems = array();
                if ( $pager->getNumRows() > 0 ) {
+                       $count = 0;
+                       $limit = $pager->getLimit();
                        foreach ( $pager->mResult as $row ) {
+                               // ContribsPager selects one more row for navigation, skip that row
+                               if ( ++$count > $limit ) {
+                                       break;
+                               }
                                $feedItems[] = $this->feedItem( $row );
                        }
                }
@@ -107,6 +117,7 @@ class ApiFeedContributions extends ApiBase {
                                $comments
                        );
                }
+
                return null;
        }
 
@@ -142,12 +153,14 @@ class ApiFeedContributions extends ApiBase {
                                htmlspecialchars( FeedItem::stripComment( $revision->getComment() ) ) .
                                "</p>\n<hr />\n<div>" . $html . "</div>";
                }
+
                return '';
        }
 
        public function getAllowedParams() {
                global $wgFeedClasses;
                $feedFormatNames = array_keys( $wgFeedClasses );
+
                return array(
                        'feedformat' => array(
                                ApiBase::PARAM_DFLT => 'rss',