]> git.mxchange.org Git - friendica.git/commitdiff
Fix warning "Trying to access array offset on value of type bool"
authorMichael <heluecht@pirati.ca>
Sun, 29 Dec 2024 15:51:42 +0000 (15:51 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 23 Jan 2025 21:24:14 +0000 (21:24 +0000)
src/Model/Contact.php
src/Model/GServer.php
src/Model/Post/Media.php
src/Protocol/ActivityPub/Processor.php

index a7dfa08dcfa45ab3906babbefee4bf0f1895597e..faa3e85cf0ca0ff0a3a6fa6522b51b512ad14787 100644 (file)
@@ -3357,6 +3357,16 @@ class Contact
                                'writable' => 1,
                        ]);
 
+                       if (!$contact_id) {
+                               DI::logger()->warning('Contact had not been added', ['url' => $url, 'uid' => $importer['uid']]);
+                               $contact_record = DBA::selectFirst('contact', ['id'], ['nurl' => Strings::normaliseLink($url), 'uid' => $importer['uid']]);
+                               if (empty($contact_record['id'])) {
+                                       DI::logger()->error('Contact had not been found', ['url' => $url, 'uid' => $importer['uid']]);
+                                       return null;
+                               }
+                               $contact_id = $contact_record['id'];
+                       }
+
                        // Ensure to always have the correct network type, independent from the connection request method
                        self::updateFromProbe($contact_id);
 
index 90f68b7725a98d1450425c2a86c075f60a624e32..20f79f8de71a7cc6605e97c671ceb64a10754d07 100644 (file)
@@ -1866,6 +1866,11 @@ class GServer
                        return $serverdata;
                }
 
+               if (!is_countable($data)) {
+                       DI::logger()->notice('Unexpected return type', ['url' => $url, 'data' => $data, 'serverdata' => $serverdata]);
+                       return $serverdata;
+               }
+
                if (count($data) == 1) {
                        $serverdata['directory-type'] = self::DT_MASTODON;
                }
index 7384f71ca5887a0f713e149b2144954b78e456ef..3cf0ce0e7d37042ffb4214560549e2cdee9d536a 100644 (file)
@@ -280,8 +280,8 @@ class Media
                        // When the original picture is potentially animated but the preview isn't, we override the preview
                        if (in_array($media['mimetype'] ?? '', ['image/gif', 'image/png']) && !in_array($imagedata['mime'], ['image/gif', 'image/png'])) {
                                $media['preview']        = $media['url'];
-                               $media['preview-width']  = $media['width'];
-                               $media['preview-height'] = $media['height'];
+                               $media['preview-width']  = $media['width']  ?? $imagedata[0];
+                               $media['preview-height'] = $media['height'] ?? $imagedata[1];
                                return $media;
                        }
 
index cc5fa584aadf250b0d462a04d0ae9b0a8ff8f188..f09b5a2e07708654a0e5f18cf5276c69ecc7fd05 100644 (file)
@@ -215,7 +215,7 @@ class Processor
         */
        public static function updateItem(array $activity)
        {
-               $item = Post::selectFirst(['uri', 'uri-id', 'thr-parent', 'gravity', 'post-type', 'private'], ['uri' => $activity['id']]);
+               $item = Post::selectFirst(['uri', 'uri-id', 'guid', 'thr-parent', 'gravity', 'post-type', 'private'], ['uri' => $activity['id']]);
                if (!DBA::isResult($item)) {
                        DI::logger()->notice('No existing item, item will be created', ['uri' => $activity['id']]);
                        $item = self::createItem($activity, false);