/**
  * 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;
 }
 /**
  * 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 ($this->config->getContentFiltering(true)) {
         $filter = Filter::html($item->getContent(), $feed->getSiteUrl());
         $filter->setConfig($this->config);
         $item->setContent($filter->execute());
     } else {
         Logger::setMessage(get_called_class() . ': Content filtering disabled');
     }
 }
示例#4
0
 public function testLangRTL()
 {
     $item = new Item();
     $item->language = 'fr_FR';
     $this->assertFalse($item->isRTL());
     $item->language = 'ur';
     $this->assertTrue($item->isRTL());
     $item->language = 'syr-**';
     $this->assertTrue($item->isRTL());
     $item->language = 'ru';
     $this->assertFalse($item->isRTL());
 }
 /**
  * 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;
 }
示例#6
0
 /**
  * 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());
     }
 }
示例#7
0
 /**
  * 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());
 }
示例#8
0
文件: Rss20.php 项目: sbambach/news
 /**
  * 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());
     }
 }
示例#9
0
 /**
  * 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());
 }
示例#10
0
 /**
  * Find the item language.
  *
  * @param SimpleXMLElement      $entry Feed item
  * @param \PicoFeed\Parser\Item $item  Item object
  * @param \PicoFeed\Parser\Feed $feed  Feed object
  */
 public function findItemLanguage(SimpleXMLElement $entry, Item $item, Feed $feed)
 {
     $language = XmlParser::getXPathResult($entry, 'dc:language', $this->namespaces);
     $item->setLanguage(XmlParser::getValue($language) ?: $feed->getLanguage());
 }
示例#11
0
 /**
  * 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());
     }
 }
示例#12
0
 /**
  * Find the item language.
  *
  * @param SimpleXMLElement      $entry Feed item
  * @param \PicoFeed\Parser\Item $item  Item object
  * @param \PicoFeed\Parser\Feed $feed  Feed object
  */
 public function findItemLanguage(SimpleXMLElement $entry, Item $item, Feed $feed)
 {
     $language = XmlParser::getXPathResult($entry, './/@xml:lang');
     $item->setLanguage(XmlParser::getValue($language) ?: $feed->getLanguage());
 }