diff options
Diffstat (limited to 'vendor/fguillot/picofeed/lib/PicoFeed/Serialization/Import.php')
m--------- | vendor/fguillot/picofeed | 0 | ||||
-rw-r--r-- | vendor/fguillot/picofeed/lib/PicoFeed/Serialization/Import.php | 171 |
2 files changed, 0 insertions, 171 deletions
diff --git a/vendor/fguillot/picofeed b/vendor/fguillot/picofeed new file mode 160000 +Subproject 0a1d0d3950f7f047dc8fb1d80aa6296e15f306d diff --git a/vendor/fguillot/picofeed/lib/PicoFeed/Serialization/Import.php b/vendor/fguillot/picofeed/lib/PicoFeed/Serialization/Import.php deleted file mode 100644 index cbc1cfbe2..000000000 --- a/vendor/fguillot/picofeed/lib/PicoFeed/Serialization/Import.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php - -namespace PicoFeed\Serialization; - -use SimpleXmlElement; -use StdClass; -use PicoFeed\Logging\Logger; -use PicoFeed\Parser\XmlParser; - -/** - * OPML Import - * - * @author Frederic Guillot - * @package Serialization - */ -class Import -{ - /** - * OPML file content - * - * @access private - * @var string - */ - private $content = ''; - - /** - * Subscriptions - * - * @access private - * @var array - */ - private $items = array(); - - /** - * Constructor - * - * @access public - * @param string $content OPML file content - */ - public function __construct($content) - { - $this->content = $content; - } - - /** - * Parse the OPML file - * - * @access public - * @return array|false - */ - public function execute() - { - Logger::setMessage(get_called_class().': start importation'); - - $xml = XmlParser::getSimpleXml(trim($this->content)); - - if ($xml === false || $xml->getName() !== 'opml' || ! isset($xml->body)) { - Logger::setMessage(get_called_class().': OPML tag not found or malformed XML document'); - return false; - } - - $this->parseEntries($xml->body); - Logger::setMessage(get_called_class().': '.count($this->items).' subscriptions found'); - - return $this->items; - } - - /** - * Parse each entries of the subscription list - * - * @access public - * @param SimpleXMLElement $tree XML node - */ - public function parseEntries($tree) - { - if (isset($tree->outline)) { - - foreach ($tree->outline as $item) { - - if (isset($item->outline)) { - $this->parseEntries($item); - } - else if ((isset($item['text']) || isset($item['title'])) && isset($item['xmlUrl'])) { - - $entry = new StdClass; - $entry->category = $this->findCategory($tree); - $entry->title = $this->findTitle($item); - $entry->feed_url = $this->findFeedUrl($item); - $entry->site_url = $this->findSiteUrl($item, $entry); - $entry->type = $this->findType($item); - $entry->description = $this->findDescription($item, $entry); - $this->items[] = $entry; - } - } - } - } - - /** - * Find category - * - * @access public - * @param SimpleXmlElement $tree XML tree - * @return string - */ - public function findCategory(SimpleXmlElement $tree) - { - return isset($tree['title']) ? (string) $tree['title'] : (string) $tree['text']; - } - - /** - * Find title - * - * @access public - * @param SimpleXmlElement $item XML tree - * @return string - */ - public function findTitle(SimpleXmlElement $item) - { - return isset($item['title']) ? (string) $item['title'] : (string) $item['text']; - } - - /** - * Find feed url - * - * @access public - * @param SimpleXmlElement $item XML tree - * @return string - */ - public function findFeedUrl(SimpleXmlElement $item) - { - return (string) $item['xmlUrl']; - } - - /** - * Find site url - * - * @access public - * @param SimpleXmlElement $item XML tree - * @param StdClass $entry Feed entry - * @return string - */ - public function findSiteUrl(SimpleXmlElement $item, StdClass $entry) - { - return isset($item['htmlUrl']) ? (string) $item['htmlUrl'] : $entry->feed_url; - } - - /** - * Find type - * - * @access public - * @param SimpleXmlElement $item XML tree - * @return string - */ - public function findType(SimpleXmlElement $item) - { - return isset($item['version']) ? (string) $item['version'] : isset($item['type']) ? (string) $item['type'] : 'rss'; - } - - /** - * Find description - * - * @access public - * @param SimpleXmlElement $item XML tree - * @param StdClass $entry Feed entry - * @return string - */ - public function findDescription(SimpleXmlElement $item, StdClass $entry) - { - return isset($item['description']) ? (string) $item['description'] : $entry->title; - } -} |