Ejemplo n.º 1
0
 /**
  * Mocked version of fixDuplicatedTimestamps. Used to test processItems - separately from testing fixDuplicatedTimestamps
  */
 protected function fixDuplicatedTimestamps($items)
 {
     if ($this->testFixDuplicatedTimestamps) {
         return parent::fixDuplicatedTimestamps($items);
     }
     return $items;
 }
Ejemplo n.º 2
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;
         }
     }
 }
Ejemplo n.º 3
0
 function removeOldEntries()
 {
     global $wgExternalDatawareDB, $wgHubRssFeeds, $wgLanguageCode;
     $prefix = BaseRssModel::getStagingPrefix();
     $feedNames = [];
     foreach ($wgHubRssFeeds as $feedName) {
         $feedNames[] = $prefix . $feedName . $wgLanguageCode;
     }
     $db = wfGetDB(DB_MASTER, null, $wgExternalDatawareDB);
     (new WikiaSQL())->DELETE("wikia_rss_feeds")->WHERE("wrf_pub_date < (DATE_SUB(CURDATE(), INTERVAL " . self::DAYS_TO_KEEP_OLD_FEED_ITEMS . " DAY))")->AND_('wrf_feed')->IN($feedNames)->run($db);
     echo "| REMOVING OLD ENTRIES... \n";
     $affectedRows = $db->affectedRows();
     if ($affectedRows) {
         echo "| " . $affectedRows . " OLD ENTRIES REMOVED \n";
     } else {
         echo "| NO OLD ENTRIES REMOVED \n";
     }
 }
 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);
 }