summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2019-07-09 00:57:29 +0200
committeremkael <emkael@tlen.pl>2019-07-09 00:57:29 +0200
commit6e04ceee4173b0cf773aa282def1b4148fb8af16 (patch)
tree8b379047b367ea7ddfbbda689d5bb992ec9a851e
parentd00e448b7e8a6a724100bc8b15907fa9c6f241e3 (diff)
Verbatim RSS/Atom parsing
-rw-r--r--providers/Rss.php8
1 files changed, 4 insertions, 4 deletions
diff --git a/providers/Rss.php b/providers/Rss.php
index f303ee8..8e20e3f 100644
--- a/providers/Rss.php
+++ b/providers/Rss.php
@@ -31,13 +31,13 @@ class Rss extends \Providers\XmlFeed {
protected function _mapItems($content) {
$items = [];
foreach ($content as $contentString) {
- $itemString = str_replace(['content:encoded>', '<dc:', '</dc:', '<media:', '</media:'], ['content>', '<', '</', '<', '</'], $contentString);
+ $itemString = str_replace(['content:encoded>', '<dc:', '</dc:', '<media:', '</media:', '<wfw:', '</wfw:'], ['content>', '<', '</', '<', '</', '<', '</'], $contentString);
$item = new \SimpleXMLElement($itemString);
$itemObject = new Item();
- $itemObject->ID = strval($item->id ?: $item->guid);
+ $itemObject->ID = strval($item->id ?: $item->guid) ?: ltrim(parse_url(strval($item->link))['path'], '/');
$itemObject->Title = strval($item->title);
- $itemObject->Time = strval($item->published ?: $item->pubDate);
- $itemObject->Text = strval($item->summary ?: $item->description ?: $item->content);
+ $itemObject->Time = strval($item->published ?: $item->pubDate ?: $item->updated);
+ $itemObject->Text = strval($item->summary ?: $item->description ?: $item->content) ?: ($item->description ?: $item->content)->children()->asXML();
$itemObject->Link = strval(isset($item->link['href']) ? $item->link->attributes()['href'] : $item->link);
$itemObject->Author = strval($item->creator ? $item->creator : (is_string($item->author) ? $item->author : $item->author->name));
$items[] = $itemObject;