/** * import * * @param object &$feed Params * * @return void */ public function import(&$feed) { if (isset($feed->params)) { $feed->xtform = EForm::paramsToRegistry($feed); } $import_frequency = $feed->xtform->get('import_frequency', self::ALWAYS_EXPRESSION); if ($import_frequency != self::ALWAYS_EXPRESSION) { $automators = F0FModel::getTmpInstance('Automators', 'AutoTweetModel'); $key = 'feed-' . $feed->id; $lastexec = $automators->lastRun($key); if ($lastexec->toUnix() < JFactory::getDate()->toUnix()) { $lastexec = 'now'; } $next = TextUtil::nextScheduledDate($import_frequency, $lastexec); $logger = AutotweetLogger::getInstance(); $logger->log(JLog::INFO, "Feed import: lastRunCheck {$lastexec} ({$key}, 0, {$next})"); if (!$automators->lastRunCheck($key, 0, $next)) { $logger->log(JLog::INFO, "Feed import: lastRunCheck skipped!"); return; } } $result = new StdClass(); $result->added_items = 0; $simplePie = $this->_createSimplePie($feed); if ($simplePie->get_type() & SIMPLEPIE_TYPE_NONE) { throw new Exception(JText::sprintf('COM_AUTOTWEET_FEED_UNABLE_TO_PROCESS', $feed->xtform->get('title') . ' (' . $feed->xtform->get('feed') . ')')); } elseif ($simplePie->error) { throw new Exception("SimplePie error (ID={$feed->id}): " . $simplePie->error . ' for ' . $feed->xtform->get('title') . ' (' . $feed->xtform->get('feed') . ')'); } $title = $simplePie->get_title(); $c = (int) $feed->xtform->get('import_limit'); $items = $simplePie->get_items(0, $c); $result->title = $title; $result->items = $items; $simplePie->__destruct(); unset($items, $simplePie); // End SimplePie processing return $result; }