]> git.mxchange.org Git - friendica.git/commitdiff
Support for contact uri that aren't HTTP URLs
authorMichael <heluecht@pirati.ca>
Mon, 5 Jun 2023 04:34:06 +0000 (04:34 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 5 Jun 2023 04:34:06 +0000 (04:34 +0000)
src/Contact/Avatar.php
src/Model/Contact.php
src/Model/Item.php

index 299c2639947e6b32533ba0b99e930e217b1c63b0..fc4b7e38cba62279c37d05ca04877e5fa71f5163 100644 (file)
@@ -92,7 +92,7 @@ class Avatar
                        return $fields;
                }
 
-               $filename  = self::getFilename($contact['url']);
+               $filename  = self::getFilename($contact['url'], $avatar);
                $timestamp = time();
 
                $fields['blurhash'] = $image->getBlurHash();
@@ -120,7 +120,7 @@ class Avatar
                        return $fields;
                }
 
-               $filename  = self::getFilename($contact['url']);
+               $filename  = self::getFilename($contact['url'], $contact['avatar']);
                $timestamp = time();
 
                $fields['photo'] = self::storeAvatarCache($image, $filename, Proxy::PIXEL_SMALL, $timestamp);
@@ -130,9 +130,9 @@ class Avatar
                return $fields;
        }
 
-       private static function getFilename(string $url): string
+       private static function getFilename(string $url, string $host): string
        {
-               $guid = Item::guidFromUri($url);
+               $guid = Item::guidFromUri($url, $host);
 
                return substr($guid, 0, 2) . '/' . substr($guid, 3, 2) . '/' . substr($guid, 5, 3) . '/' .
                        substr($guid, 9, 2) .'/' . substr($guid, 11, 2) . '/' . substr($guid, 13, 4). '/' . substr($guid, 18) . '-';
index 3f830c29a41f5f1f36909f00d534ac1d3641c727..720d2638c4ce23ac15312176b23d6581a1a0bf6c 100644 (file)
@@ -2773,7 +2773,7 @@ class Contact
                }
 
                $update = false;
-               $guid = ($ret['guid'] ?? '') ?: Item::guidFromUri($ret['url']);
+               $guid = ($ret['guid'] ?? '') ?: Item::guidFromUri($ret['url'], $ret['baseurl'] ?: $ret['alias']);
 
                // make sure to not overwrite existing values with blank entries except some technical fields
                $keep = ['batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'baseurl'];
index fad8ffeff4716cad0e7b8d09bd146020e7efe5f6..cdeb6d3d13c7e44c9c6f0f1b19ecb0768a020bf9 100644 (file)
@@ -2044,7 +2044,7 @@ class Item
                // Remove the scheme to make sure that "https" and "http" doesn't make a difference
                unset($parsed['scheme']);
 
-               $hostPart = $host ?? $parsed['host'] ?? '';
+               $hostPart = $host ?: $parsed['host'] ?? '';
                if (!$hostPart) {
                        Logger::warning('Empty host GUID part', ['uri' => $uri, 'host' => $host, 'parsed' => $parsed, 'callstack' => System::callstack(10)]);
                }