]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Contact.php
Don't cache local avatars
[friendica.git] / src / Model / Contact.php
index 9d609786e96a1880ec0c63d0ab31f29fdc587be6..2afe91d134cd8109056069d61a5b6e5f9d7ec4f1 100644 (file)
@@ -1913,7 +1913,14 @@ class Contact
                        $avatar = self::getDefaultAvatar($contact, Proxy::SIZE_SMALL);
                }
 
-               if (in_array($contact['network'], [Protocol::FEED, Protocol::MAIL]) || DI::config()->get('system', 'cache_contact_avatar')) {
+               $cache_avatar = DI::config()->get('system', 'cache_contact_avatar');
+
+               // Local contact avatars don't need to be cached
+               if ($cache_avatar && Network::isLocalLink($contact['url'])) {
+                       $cache_avatar = !DBA::exists('contact', ['nurl' => $contact['nurl'], 'self' => true]);
+               }
+
+               if (in_array($contact['network'], [Protocol::FEED, Protocol::MAIL]) || $cache_avatar) {
                        if ($default_avatar && Proxy::isLocalImage($avatar)) {
                                $fields = ['avatar' => $avatar, 'avatar-date' => DateTimeFormat::utcNow(),
                                        'photo' => $avatar,