diff --git a/images/default/diaspora.png b/images/default/diaspora.png
new file mode 100644
index 0000000000..53d10ffc03
Binary files /dev/null and b/images/default/diaspora.png differ
diff --git a/images/default/mastodon.png b/images/default/mastodon.png
new file mode 100644
index 0000000000..34c8e45e61
Binary files /dev/null and b/images/default/mastodon.png differ
diff --git a/images/default/peertube.png b/images/default/peertube.png
new file mode 100644
index 0000000000..e24741815e
Binary files /dev/null and b/images/default/peertube.png differ
diff --git a/images/default/pleroma.png b/images/default/pleroma.png
new file mode 100644
index 0000000000..886eaee54d
--- /dev/null
+++ b/images/default/pleroma.png
@@ -0,0 +1,738 @@
+
+
+
+
+priv/static/images/avi.png · develop · Pleroma / pleroma · GitLab
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Model/Contact.php b/src/Model/Contact.php
index 59b14ad0fe..172540dd1f 100644
--- a/src/Model/Contact.php
+++ b/src/Model/Contact.php
@@ -1817,6 +1817,39 @@ class Contact
}
if (!DI::config()->get('system', 'remote_avatar_lookup')) {
+ $platform = '';
+
+ if (!empty($contact['id'])) {
+ $account = DBA::selectFirst('account-user-view', ['platform'], ['id' => $contact['id']]);
+ $platform = $account['platform'] ?? '';
+ }
+
+ if (empty($platform) && !empty($contact['uri-id'])) {
+ $account = DBA::selectFirst('account-user-view', ['platform'], ['uri-id' => $contact['uri-id']]);
+ $platform = $account['platform'] ?? '';
+ }
+
+ switch ($platform) {
+ case 'mastodon':
+ // @see https://github.com/mastodon/mastodon/tree/main/public/avatars/original/missing.png
+ $default = '/images/default/mastodon.png';
+ break;
+
+ case 'pleroma':
+ // @see https://git.pleroma.social/pleroma/pleroma/-/blob/develop/priv/static/images/avi.png
+ $default = '/images/default/pleroma.png';
+ break;
+
+ case 'diaspora':
+ // @see https://github.com/diaspora/diaspora/
+ $default = '/images/default/diaspora.png';
+ break;
+
+ case 'peertube':
+ // @see https://github.com/Chocobozzz/PeerTube/blob/develop/client/src/assets/images/default-avatar-video-channel.png
+ $default = '/images/default/peertube.png';
+ break;
+ }
return DI::baseUrl() . $default;
}
diff --git a/src/Module/Photo.php b/src/Module/Photo.php
index 134cade650..86c737aa4e 100644
--- a/src/Module/Photo.php
+++ b/src/Module/Photo.php
@@ -270,7 +270,7 @@ class Photo extends BaseModule
return MPhoto::createPhotoForExternalResource($link['url'], (int)local_user(), $link['mimetype']);
case "contact":
- $fields = ['uid', 'url', 'nurl', 'avatar', 'photo', 'xmpp', 'addr', 'network', 'failed', 'updated'];
+ $fields = ['uid', 'uri-id', 'url', 'nurl', 'avatar', 'photo', 'xmpp', 'addr', 'network', 'failed', 'updated'];
$contact = Contact::getById($id, $fields);
if (empty($contact)) {
return false;