From: Michael <heluecht@pirati.ca>
Date: Sat, 6 May 2023 11:35:34 +0000 (+0000)
Subject: Support for feeds that follow the ATOM 0.3 specification
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=74bcc33fdbcc273f196c42ffb60f0f11a067f7e9;p=friendica.git

Support for feeds that follow the ATOM 0.3 specification
---

diff --git a/src/Protocol/ActivityNamespace.php b/src/Protocol/ActivityNamespace.php
index 2301d547fa..bcbf5b4035 100644
--- a/src/Protocol/ActivityNamespace.php
+++ b/src/Protocol/ActivityNamespace.php
@@ -145,6 +145,12 @@ final class ActivityNamespace
 	 */
 	const ATOM1           = 'http://www.w3.org/2005/Atom';
 
+	/**
+	 * This namespace is used for the (deprecated) Atom 0.3 specification
+	 * @var string
+	 */
+	const ATOM03           = 'http://purl.org/atom/ns#';
+	
 	/**
 	 * @var string
 	 */
diff --git a/src/Protocol/Feed.php b/src/Protocol/Feed.php
index bfb7448382..f31513b237 100644
--- a/src/Protocol/Feed.php
+++ b/src/Protocol/Feed.php
@@ -92,7 +92,12 @@ class Feed
 		$doc = new DOMDocument();
 		@$doc->loadXML($xml);
 		$xpath = new DOMXPath($doc);
-		$xpath->registerNamespace('atom', ActivityNamespace::ATOM1);
+
+		if (strpos($xml, ActivityNamespace::ATOM03) && !strpos($xml, ActivityNamespace::ATOM1)) {
+			$xpath->registerNamespace('atom', ActivityNamespace::ATOM03);
+		} else {
+			$xpath->registerNamespace('atom', ActivityNamespace::ATOM1);
+		}
 		$xpath->registerNamespace('dc', 'http://purl.org/dc/elements/1.1/');
 		$xpath->registerNamespace('content', 'http://purl.org/rss/1.0/modules/content/');
 		$xpath->registerNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');