diff --git a/bridges/CssSelectorFeedExpanderBridge.php b/bridges/CssSelectorFeedExpanderBridge.php index 008921b1..9f332fb9 100644 --- a/bridges/CssSelectorFeedExpanderBridge.php +++ b/bridges/CssSelectorFeedExpanderBridge.php @@ -1,16 +1,5 @@ getInput('discard_thumbnail'); $limit = $this->getInput('limit'); - //$xmlString = getContents($url); - //$feed = (new FeedParser())->parseFeed($xmlString); - //$items = $feed['items']; + $source_feed = (new FeedParser())->parseFeed(getContents($url)); + $items = $source_feed['items']; - $feed_expander = new CssSelectorFeedExpanderBridgeInternal(); - $items = $feed_expander->collectExpandableDatas($url)->getItems(); + // Map Homepage URL (Default: Root page) + if (isset($source_feed['uri'])) { + $this->homepageUrl = $source_feed['uri']; + } else { + $this->homepageUrl = urljoin($url, '/'); + } - $this->homepageUrl = urljoin($url, '/'); - $this->feedName = $feed_expander->getName(); + // Map Feed Name (Default: Domain name) + if (isset($source_feed['title'])) { + $this->feedName = $source_feed['title']; + } else { + $this->feedName = explode('/', urljoin($url, '/'))[2]; + } + // Apply item limit (Default: Global limit) + if ($limit > 0) { + $items = array_slice($items, 0, $limit); + } + + // Expand feed items (CssSelectorBridge) foreach ($items as $item_from_feed) { $item_expanded = $this->expandEntryWithSelector( $item_from_feed['uri'], @@ -86,7 +88,7 @@ class CssSelectorFeedExpanderBridge extends CssSelectorBridge } else { // Take expanded item, but give priority to metadata already in source item foreach ($item_from_feed as $field => $val) { - if ($field !== 'content') { + if ($field !== 'content' && !empty($val)) { $item_expanded[$field] = $val; } }