/** * 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; }
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; } } }
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); }