protected function warm() { global $wgHubRssFeeds; global $wgLanguageCode; foreach ($wgHubRssFeeds as $feedName) { echo "| Warming '{$feedName}' cache..." . PHP_EOL; $langExtFeedName = $feedName . $wgLanguageCode; $feed = BaseRssModel::newFromName($langExtFeedName); if ($feed instanceof BaseRssModel) { $time = time(); $numRows = $feed->generateFeedData(); echo "| Got " . $numRows . " new entries " . PHP_EOL; \Wikia\Logger\WikiaLogger::instance()->info(__CLASS__ . ' ' . $feedName . 'time (s): ' . (time() - $time)); } else { echo "| Feed not found: " . $feedName . PHP_EOL; } } }
public function index() { $hubName = $this->request->getVal('par') . $this->wg->LanguageCode; $ref = (string) $this->request->getVal('ref'); $model = BaseRssModel::newFromName($hubName); if (!$model instanceof BaseRssModel) { return $this->forward('HubRssFeedSpecial', 'notfound'); } $this->response->setCacheValidity(self::CACHE_TIME); $service = new RssFeedService(); $service->setRef($ref); $service->setFeedLang($model->getFeedLanguage()); $service->setFeedTitle($model->getFeedTitle()); $service->setFeedDescription($model->getFeedDescription()); $service->setFeedUrl(RequestContext::getMain()->getRequest()->getFullRequestURL()); $service->setData($model->getFeedData()); $this->response->setFormat(WikiaResponse::FORMAT_RAW); $this->response->setBody($service->toXml()); $this->response->setContentType(self::RSS_CONTENT_TYPE); }