From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Thu, 8 Dec 2022 03:08:48 +0000 (-0500)
Subject: Replace parse_url with UriInterface instantiation in Model\APContact
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=e7574356d83ec698afcc942103c0aa1c14000860;p=friendica.git

Replace parse_url with UriInterface instantiation in Model\APContact

- Address part of https://github.com/friendica/friendica/issues/12011#issuecomment-1338133783
---

diff --git a/src/Model/APContact.php b/src/Model/APContact.php
index 67ce2b66bf..fd748f1cd4 100644
--- a/src/Model/APContact.php
+++ b/src/Model/APContact.php
@@ -291,14 +291,11 @@ class APContact
 			return $fetched_contact;
 		}
 
-		$parts = parse_url($apcontact['url']);
-		unset($parts['scheme']);
-		unset($parts['path']);
-
 		if (empty($apcontact['addr'])) {
-			if (!empty($apcontact['nick']) && is_array($parts)) {
-				$apcontact['addr'] = $apcontact['nick'] . '@' . str_replace('//', '', Network::unparseURL($parts));
-			} else {
+			try {
+				$apcontact['addr'] = $apcontact['nick'] . '@' . (new Uri($apcontact['url']))->getAuthority();
+			} catch (\Throwable $e) {
+				Logger::warning('Unable to coerce APContact URL into a UriInterface object', ['url' => $apcontact['url'], 'error' => $e->getMessage()]);
 				$apcontact['addr'] = '';
 			}
 		}