aboutsummaryrefslogtreecommitdiff
path: root/lib/FeedParser.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/FeedParser.php')
-rw-r--r--lib/FeedParser.php15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/FeedParser.php b/lib/FeedParser.php
index 0a5b4679..7c8a5232 100644
--- a/lib/FeedParser.php
+++ b/lib/FeedParser.php
@@ -11,7 +11,10 @@ final class FeedParser
$xmlErrors = libxml_get_errors();
libxml_use_internal_errors(false);
if ($xml === false) {
- throw new \Exception('Unable to parse xml');
+ if ($xmlErrors) {
+ $firstXmlErrorMessage = $xmlErrors[0]->message;
+ }
+ throw new \Exception(sprintf('Unable to parse xml: %s', $firstXmlErrorMessage ?? ''));
}
$feed = [
'title' => null,
@@ -123,7 +126,6 @@ final class FeedParser
{
// Primary data is compatible to 0.91 with some additional data
$item = $this->parseRss091Item($feedItem);
-
$namespaces = $feedItem->getNamespaces(true);
if (isset($namespaces['dc'])) {
$dc = $feedItem->children($namespaces['dc']);
@@ -192,7 +194,14 @@ final class FeedParser
public function parseRss091Item(\SimpleXMLElement $feedItem): array
{
- $item = [];
+ $item = [
+ 'uri' => null,
+ 'title' => null,
+ 'content' => null,
+ 'timestamp' => null,
+ 'author' => null,
+ 'enclosures' => [],
+ ];
if (isset($feedItem->link)) {
// todo: trim uri
$item['uri'] = (string)$feedItem->link;