]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/APContact.php
Ensure APContact::getByUrl always returns an array
[friendica.git] / src / Model / APContact.php
index e7191d32e8ad34b569ad6c88309f0c5ccee3efd5..e3c3a0a12b2f09fc51c7ca403e6f2c4ac91a0c65 100644 (file)
@@ -84,7 +84,7 @@ class APContact extends BaseObject
        public static function getByURL($url, $update = null)
        {
                if (empty($url)) {
-                       return false;
+                       return [];
                }
 
                $fetched_contact = false;
@@ -110,7 +110,7 @@ class APContact extends BaseObject
                        }
 
                        if (!is_null($update)) {
-                               return DBA::isResult($apcontact) ? $apcontact : false;
+                               return DBA::isResult($apcontact) ? $apcontact : [];
                        }
 
                        if (DBA::isResult($apcontact)) {
@@ -203,6 +203,33 @@ class APContact extends BaseObject
                        $apcontact['generator'] = JsonLD::fetchElement($compacted['as:generator'], 'as:name', '@value');
                }
 
+               if (!empty($apcontact['following'])) {
+                       $data = ActivityPub::fetchContent($apcontact['following']);
+                       if (!empty($data)) {
+                               if (!empty($data['totalItems'])) {
+                                       $apcontact['following_count'] = $data['totalItems'];
+                               }
+                       }
+               }
+
+               if (!empty($apcontact['followers'])) {
+                       $data = ActivityPub::fetchContent($apcontact['followers']);
+                       if (!empty($data)) {
+                               if (!empty($data['totalItems'])) {
+                                       $apcontact['followers_count'] = $data['totalItems'];
+                               }
+                       }
+               }
+
+               if (!empty($apcontact['outbox'])) {
+                       $data = ActivityPub::fetchContent($apcontact['outbox']);
+                       if (!empty($data)) {
+                               if (!empty($data['totalItems'])) {
+                                       $apcontact['statuses_count'] = $data['totalItems'];
+                               }
+                       }
+               }
+
                // To-Do
 
                // Unhandled