Example #1
0
 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);
 }