]> git.mxchange.org Git - friendica.git/commitdiff
Unified avatar paths
authorMichael <heluecht@pirati.ca>
Tue, 29 Jun 2021 20:26:58 +0000 (20:26 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 29 Jun 2021 20:26:58 +0000 (20:26 +0000)
include/conversation.php
mod/ping.php
src/Model/Contact.php
src/Module/NoScrape.php
src/Module/Photo.php
src/Object/Post.php
src/Protocol/ActivityPub/Transmitter.php

index c0383bd88fa3f07e4abf27dc012d178e5fa790f2..24bb7434cab75d8d75536cd29d4b276cd458e80e 100644 (file)
@@ -42,6 +42,7 @@ use Friendica\Object\Thread;
 use Friendica\Protocol\Activity;
 use Friendica\Util\Crypto;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Proxy;
 use Friendica\Util\Strings;
 use Friendica\Util\Temporal;
 use Friendica\Util\XML;
@@ -603,7 +604,7 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
                                        'name' => $profile_name,
                                        'sparkle' => $sparkle,
                                        'lock' => false,
-                                       'thumb' => DI::baseUrl()->remove($item['author-avatar']),
+                                       'thumb' => DI::baseUrl()->remove(Contact::getAvatarUrlForUrl($item['author-link'], $item['uid'], Proxy::SIZE_THUMB)),
                                        'title' => $title,
                                        'body_html' => $body_html,
                                        'tags' => $tags['tags'],
index 64c947e2c63aa760108e3a1ccfc0a25a8cea1887..8efddb757d5b671da4f24d316f498f2c5d5e4fdf 100644 (file)
@@ -33,6 +33,7 @@ use Friendica\Model\Post;
 use Friendica\Model\Verb;
 use Friendica\Protocol\Activity;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Proxy;
 use Friendica\Util\Temporal;
 use Friendica\Util\XML;
 
@@ -340,13 +341,9 @@ function ping_init(App $a)
                usort($notifications, $sort_function);
 
                array_walk($notifications, function (&$notification) {
-                       if (empty($notification['photo'])) {
-                               $contact = Contact::getByURL($notification['url'], false, ['micro', 'id', 'avatar']);
-                               $notification['photo'] = Contact::getMicro($contact, $notification['photo']);
-                       }
-
+                       $notification['photo']     = Contact::getAvatarUrlForUrl($notification['url'], local_user(), Proxy::SIZE_MICRO);
                        $notification['timestamp'] = DateTimeFormat::local($notification['date']);
-                       $notification['date'] = Temporal::getRelativeDate($notification['date']);
+                       $notification['date']      = Temporal::getRelativeDate($notification['date']);
                });
        }
 
index 60213cacb51751f232c9b3067ef5b16b5317baa1..d8d73a983fea744c9dcb155091fa3bb196340475 100644 (file)
@@ -1501,10 +1501,10 @@ class Contact
        {
                if (!empty($contact)) {
                        $contact = self::checkAvatarCacheByArray($contact, $no_update);
-                       if (!empty($contact[$field])) {
-                               return $contact[$field];
-                       } elseif (!empty($contact['id'])) {
+                       if (!empty($contact['id'])) {
                                return self::getAvatarUrlForId($contact['id'], $size, $contact['updated'] ?? '');
+                       } elseif (!empty($contact[$field])) {
+                               return $contact[$field];
                        } elseif (!empty($contact['avatar'])) {
                                $avatar = $contact['avatar'];
                        }
@@ -1713,7 +1713,7 @@ class Contact
                $condition = ["`nurl` = ? AND ((`uid` = ? AND `network` IN (?, ?)) OR `uid` = ?)",
                        Strings::normaliseLink($url), $uid, Protocol::FEED, Protocol::MAIL, 0];
                $contact = self::selectFirst(['id', 'updated'], $condition);
-               return self::getAvatarUrlForId($contact['id'] ?? 0, $size, $contact['updated']);
+               return self::getAvatarUrlForId($contact['id'] ?? 0, $size, $contact['updated'] ?? '');
        }
 
        /**
index 56fe4eab461ca61bc8778775ff91e0a95c25fea5..94bc20db328c47eeb56a751c8f352e5c95896968 100644 (file)
@@ -26,6 +26,7 @@ use Friendica\Core\Protocol;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Model\Contact;
 use Friendica\Model\Profile;
 use Friendica\Model\User;
 
@@ -80,10 +81,8 @@ class NoScrape extends BaseModule
                $keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], $keywords);
                $keywords = explode(',', $keywords);
 
-               $contactPhoto = DBA::selectFirst('contact', ['photo'], ['self' => true, 'uid' => $profile['uid']]);
-
                $json_info['fn']       = $profile['name'];
-               $json_info['photo']    = $contactPhoto["photo"];
+               $json_info['photo']    = Contact::getAvatarUrlForUrl($profile['url'], $profile['uid']);
                $json_info['tags']     = $keywords;
                $json_info['language'] = $profile['language'];
 
index 05ddd1bf50369aa707af25034885d50550d890e0..84c2c7fce3dfdc8d1b9267cf6301dd4526b4445d 100644 (file)
@@ -191,6 +191,14 @@ class Photo extends BaseModule
                                        $contact = Contact::getByURL($contact['url'], false, ['avatar', 'photo', 'xmpp', 'addr']);
                                }
                                if (!empty($contact['photo'])) {
+                                       // Fetch photo directly
+                                       $resourceid = MPhoto::ridFromURI($contact['photo']);
+                                       if (!empty($resourceid)) {
+                                               $photo = MPhoto::selectFirst([], ['resource-id' => $resourceid], ['order' => ['scale']]);
+                                               if (!empty($photo)) {
+                                                       return $photo;
+                                               }
+                                       }
                                        $url = $contact['photo'];
                                } elseif (!empty($contact['avatar'])) {
                                        $url = $contact['avatar'];
index 93abf351f991735fa73e00294e3648e276bf9905..57f2be4b51f45591d5dd58010558638d99f5d6a5 100644 (file)
@@ -39,6 +39,7 @@ use Friendica\Model\User;
 use Friendica\Protocol\Activity;
 use Friendica\Util\Crypto;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Proxy;
 use Friendica\Util\Strings;
 use Friendica\Util\Temporal;
 
@@ -459,7 +460,7 @@ class Post
                        'profile_url'     => $profile_link,
                        'name'            => $profile_name,
                        'item_photo_menu_html' => item_photo_menu($item),
-                       'thumb'           => DI::baseUrl()->remove($item['author-avatar']),
+                       'thumb'           => DI::baseUrl()->remove(Contact::getAvatarUrlForUrl($item['author-link'], $item['uid'], Proxy::SIZE_THUMB)),
                        'osparkle'        => $osparkle,
                        'sparkle'         => $sparkle,
                        'title'           => $title,
index 435cab3d042276252dfa597da52a75b74a5e5487..27658c84fa6f4c7f8dae39692ab6b070f226ead3 100644 (file)
@@ -331,7 +331,7 @@ class Transmitter
                                return [];
                        }
 
-                       $fields = ['name', 'url', 'location', 'about', 'avatar', 'photo'];
+                       $fields = ['id', 'name', 'url', 'location', 'about', 'avatar', 'photo', 'updated'];
                        $contact = DBA::selectFirst('contact', $fields, ['uid' => $uid, 'self' => true]);
                        if (!DBA::isResult($contact)) {
                                return [];
@@ -379,7 +379,7 @@ class Transmitter
                        'owner' => $contact['url'],
                        'publicKeyPem' => $user['pubkey']];
                $data['endpoints'] = ['sharedInbox' => DI::baseUrl() . '/inbox'];
-               $data['icon'] = ['type' => 'Image', 'url' => $contact['photo']];
+               $data['icon'] = ['type' => 'Image', 'url' => Contact::getAvatarUrlForId($contact['id'], '', $contact['updated'])];
 
                $resourceid = Photo::ridFromURI($contact['photo']);
                if (!empty($resourceid)) {
@@ -390,7 +390,7 @@ class Transmitter
                }
 
                if (!empty($contact['header'])) {
-                       $data['image'] = ['type' => 'Image', 'url' => $contact['header']];
+                       $data['image'] = ['type' => 'Image', 'url' => Contact::getHeaderUrlForId($contact['id'], '', $contact['updated'])];
 
                        $resourceid = Photo::ridFromURI($contact['header']);
                        if (!empty($resourceid)) {