/** * Execute Content Generator * * @access public * @param Item $item * @return boolean */ public function execute(Item $item) { foreach ($this->extensions as $extension) { if (substr($item->getUrl(), -strlen($extension)) === $extension) { $item->setContent('<a href="' . $item->getUrl() . '" target="_blank">' . $item->getUrl() . '</a>'); return true; } } return false; }
/** * Execute Item Processor * * @access public * @param Feed $feed * @param Item $item * @return bool */ public function execute(Feed $feed, Item $item) { if (!in_array($item->getUrl(), $this->ignoredUrls)) { $scraper = $this->getScraper(); $scraper->setUrl($item->getUrl()); $scraper->execute(); if ($this->executionCallback && is_callable($this->executionCallback)) { call_user_func($this->executionCallback, $feed, $item, $scraper); } if ($scraper->hasRelevantContent()) { $item->setContent($scraper->getFilteredContent()); } } return false; }
/** * Generate HTML from item URL * * @access public * @param Item $item * @return bool */ public function generateHtmlFromUrl(Item $item) { if (preg_match('/youtube\\.com\\/watch\\?v=(.*)/', $item->getUrl(), $matches)) { $item->setContent('<iframe width="560" height="315" src="//www.youtube.com/embed/' . $matches[1] . '" frameborder="0"></iframe>'); return true; } return false; }
/** * Fetch item content with the content grabber * * @access public * @param Item $item Item object */ public function scrapWebsite(Item $item) { if ($this->enable_grabber && !in_array($item->getUrl(), $this->grabber_ignore_urls)) { $grabber = new Grabber($item->getUrl()); $grabber->setConfig($this->config); $grabber->download(); if ($grabber->parse()) { $item->content = $grabber->getFilteredContent(); } } }
/** * Genereate the item id. * * @param SimpleXMLElement $entry Feed item * @param \PicoFeed\Parser\Item $item Item object * @param \PicoFeed\Parser\Feed $feed Feed object */ public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) { $id = (string) current(XmlParser::getXPathResult($entry, 'guid')); if ($id) { $item->id = $this->generateId($id); } else { $item->id = $this->generateId($item->getTitle(), $item->getUrl(), $item->getContent()); } }
/** * Check if the item url is correct. * * @param Feed $feed Feed object * @param Item $item Item object */ public function checkItemUrl(Feed $feed, Item $item) { $item->url = Url::resolve($item->getUrl(), $feed->getSiteUrl()); }
/** * Fetch item content with the content grabber. * * @param Item $item Item object */ public function scrapWebsite(Item $item) { if ($this->enable_grabber && !in_array($item->getUrl(), $this->grabber_ignore_urls)) { $grabber = new Scraper($this->config); $grabber->setUrl($item->getUrl()); if ($this->grabber_needs_rule_file) { $grabber->disableCandidateParser(); } $grabber->execute(); if ($grabber->hasRelevantContent()) { $item->content = $grabber->getFilteredContent(); } } }
/** * Genereate the item id * * @access public * @param SimpleXMLElement $entry Feed item * @param \PicoFeed\Parser\Item $item Item object * @param \PicoFeed\Parser\Feed $feed Feed object */ public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) { $id = (string) $entry->guid; if ($id) { $item->id = $this->generateId($id); } else { $item->id = $this->generateId($item->getTitle(), $item->getUrl(), $item->getContent()); } }
/** * Genereate the item id * * @access public * @param SimpleXMLElement $entry Feed item * @param \PicoFeed\Parser\Item $item Item object * @param \PicoFeed\Parser\Feed $feed Feed object */ public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) { $item->id = $this->generateId($item->getTitle(), $item->getUrl(), $item->getContent()); }
/** * Genereate the item id * * @access public * @param SimpleXMLElement $entry Feed item * @param \PicoFeed\Parser\Item $item Item object * @param \PicoFeed\Parser\Feed $feed Feed object */ public function findItemId(SimpleXMLElement $entry, Item $item, Feed $feed) { $id = XmlParser::getXPathResult($entry, 'atom:id', $this->namespaces) ?: XmlParser::getXPathResult($entry, 'id'); if (!empty($id)) { $item->id = $this->generateId((string) current($id)); } else { $item->id = $this->generateId($item->getTitle(), $item->getUrl(), $item->getContent()); } }