From 20b25a1acd3db84a043447729f2bdccedc19c515 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 12 Sep 2020 19:23:23 +0000 Subject: [PATCH 1/2] New function "queryValue" --- src/Protocol/DFRN.php | 16 ++++++++-------- src/Util/XML.php | 9 +++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 1329968126..25adb5ce2c 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -1766,15 +1766,15 @@ class DFRN $msg = []; $msg["uid"] = $importer["importer_uid"]; - $msg["from-name"] = $xpath->query("dfrn:sender/dfrn:name/text()", $mail)->item(0)->nodeValue; - $msg["from-url"] = $xpath->query("dfrn:sender/dfrn:uri/text()", $mail)->item(0)->nodeValue; - $msg["from-photo"] = $xpath->query("dfrn:sender/dfrn:avatar/text()", $mail)->item(0)->nodeValue; + $msg["from-name"] = XML::queryValue($xpath, "dfrn:sender/dfrn:name/text()", $mail); + $msg["from-url"] = XML::queryValue($xpath, "dfrn:sender/dfrn:uri/text()", $mail); + $msg["from-photo"] = XML::queryValue($xpath, "dfrn:sender/dfrn:avatar/text()", $mail); $msg["contact-id"] = $importer["id"]; - $msg["uri"] = $xpath->query("dfrn:id/text()", $mail)->item(0)->nodeValue; - $msg["parent-uri"] = $xpath->query("dfrn:in-reply-to/text()", $mail)->item(0)->nodeValue; - $msg["created"] = DateTimeFormat::utc($xpath->query("dfrn:sentdate/text()", $mail)->item(0)->nodeValue); - $msg["title"] = $xpath->query("dfrn:subject/text()", $mail)->item(0)->nodeValue; - $msg["body"] = $xpath->query("dfrn:content/text()", $mail)->item(0)->nodeValue; + $msg["uri"] = XML::queryValue($xpath, "dfrn:id/text()", $mail); + $msg["parent-uri"] = XML::queryValue($xpath, "dfrn:in-reply-to/text()", $mail); + $msg["created"] = DateTimeFormat::utc(XML::queryValue($xpath, "dfrn:sentdate/text()", $mail)); + $msg["title"] = XML::queryValue($xpath, "dfrn:subject/text()", $mail); + $msg["body"] = XML::queryValue($xpath, "dfrn:content/text()", $mail); Mail::insert($msg); } diff --git a/src/Util/XML.php b/src/Util/XML.php index 4eed3a85f8..ec4bbe15f1 100644 --- a/src/Util/XML.php +++ b/src/Util/XML.php @@ -488,6 +488,15 @@ class XML return $first_item->attributes; } + public static function queryValue($xpath, $search, $context) + { + $result = $xpath->query($search, $context)->item(0)->nodeValue; + if (!is_object($result)) { + return ''; + } + return $result->nodeValue; + } + /** * escape text ($str) for XML transport * From 34257e78ca4fb92182cf69a1c74f811b747b7e7b Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 13 Sep 2020 19:40:38 +0000 Subject: [PATCH 2/2] Function renamed --- src/Protocol/DFRN.php | 16 ++++++++-------- src/Util/XML.php | 12 +++++++++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 25adb5ce2c..cc0042d6b7 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -1766,15 +1766,15 @@ class DFRN $msg = []; $msg["uid"] = $importer["importer_uid"]; - $msg["from-name"] = XML::queryValue($xpath, "dfrn:sender/dfrn:name/text()", $mail); - $msg["from-url"] = XML::queryValue($xpath, "dfrn:sender/dfrn:uri/text()", $mail); - $msg["from-photo"] = XML::queryValue($xpath, "dfrn:sender/dfrn:avatar/text()", $mail); + $msg["from-name"] = XML::getFirstValue($xpath, "dfrn:sender/dfrn:name/text()", $mail); + $msg["from-url"] = XML::getFirstValue($xpath, "dfrn:sender/dfrn:uri/text()", $mail); + $msg["from-photo"] = XML::getFirstValue($xpath, "dfrn:sender/dfrn:avatar/text()", $mail); $msg["contact-id"] = $importer["id"]; - $msg["uri"] = XML::queryValue($xpath, "dfrn:id/text()", $mail); - $msg["parent-uri"] = XML::queryValue($xpath, "dfrn:in-reply-to/text()", $mail); - $msg["created"] = DateTimeFormat::utc(XML::queryValue($xpath, "dfrn:sentdate/text()", $mail)); - $msg["title"] = XML::queryValue($xpath, "dfrn:subject/text()", $mail); - $msg["body"] = XML::queryValue($xpath, "dfrn:content/text()", $mail); + $msg["uri"] = XML::getFirstValue($xpath, "dfrn:id/text()", $mail); + $msg["parent-uri"] = XML::getFirstValue($xpath, "dfrn:in-reply-to/text()", $mail); + $msg["created"] = DateTimeFormat::utc(XML::getFirstValue($xpath, "dfrn:sentdate/text()", $mail)); + $msg["title"] = XML::getFirstValue($xpath, "dfrn:subject/text()", $mail); + $msg["body"] = XML::getFirstValue($xpath, "dfrn:content/text()", $mail); Mail::insert($msg); } diff --git a/src/Util/XML.php b/src/Util/XML.php index ec4bbe15f1..039247cc75 100644 --- a/src/Util/XML.php +++ b/src/Util/XML.php @@ -488,13 +488,19 @@ class XML return $first_item->attributes; } - public static function queryValue($xpath, $search, $context) + public static function getFirstValue($xpath, $search, $context) { - $result = $xpath->query($search, $context)->item(0)->nodeValue; + $result = $xpath->query($search, $context); if (!is_object($result)) { return ''; } - return $result->nodeValue; + + $first_item = $result->item(0); + if (!is_object($first_item)) { + return ''; + } + + return $first_item->nodeValue; } /**