Use new function to check for a local avatar cache file
This commit is contained in:
parent
805dc8e6bd
commit
f220e26f00
3 changed files with 44 additions and 11 deletions
|
@ -662,11 +662,22 @@ class Conversation
|
||||||
if (in_array($item['network'], [Protocol::FEED, Protocol::MAIL])) {
|
if (in_array($item['network'], [Protocol::FEED, Protocol::MAIL])) {
|
||||||
$owner_avatar = $author_avatar = $item['contact-id'];
|
$owner_avatar = $author_avatar = $item['contact-id'];
|
||||||
$owner_updated = $author_updated = '';
|
$owner_updated = $author_updated = '';
|
||||||
|
$owner_thumb = $author_thumb = $item['contact-avatar'];
|
||||||
} else {
|
} else {
|
||||||
$owner_avatar = $item['owner-id'];
|
$owner_avatar = $item['owner-id'];
|
||||||
$owner_updated = $item['owner-updated'];
|
$owner_updated = $item['owner-updated'];
|
||||||
|
$owner_thumb = $item['owner-avatar'];
|
||||||
$author_avatar = $item['author-id'];
|
$author_avatar = $item['author-id'];
|
||||||
$author_updated = $item['author-updated'];
|
$author_updated = $item['author-updated'];
|
||||||
|
$author_thumb = $item['author-avatar'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Contact::isAvatarFile($owner_thumb)) {
|
||||||
|
$owner_thumb = Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Contact::isAvatarFile($author_thumb)) {
|
||||||
|
$author_thumb = Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated);
|
||||||
}
|
}
|
||||||
|
|
||||||
$tmp_item = [
|
$tmp_item = [
|
||||||
|
@ -686,7 +697,7 @@ class Conversation
|
||||||
'name' => $profile_name,
|
'name' => $profile_name,
|
||||||
'sparkle' => $sparkle,
|
'sparkle' => $sparkle,
|
||||||
'lock' => false,
|
'lock' => false,
|
||||||
'thumb' => $this->baseURL->remove(Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated)),
|
'thumb' => $this->baseURL->remove($author_thumb),
|
||||||
'title' => $title,
|
'title' => $title,
|
||||||
'body_html' => $body_html,
|
'body_html' => $body_html,
|
||||||
'tags' => $tags['tags'],
|
'tags' => $tags['tags'],
|
||||||
|
@ -707,7 +718,7 @@ class Conversation
|
||||||
'indent' => '',
|
'indent' => '',
|
||||||
'owner_name' => '',
|
'owner_name' => '',
|
||||||
'owner_url' => '',
|
'owner_url' => '',
|
||||||
'owner_photo' => $this->baseURL->remove(Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated)),
|
'owner_photo' => $this->baseURL->remove($owner_thumb),
|
||||||
'plink' => ItemModel::getPlink($item),
|
'plink' => ItemModel::getPlink($item),
|
||||||
'edpost' => false,
|
'edpost' => false,
|
||||||
'pinned' => $pinned,
|
'pinned' => $pinned,
|
||||||
|
|
|
@ -1587,7 +1587,7 @@ class Contact
|
||||||
self::updateAvatar($cid, $contact['avatar'], true);
|
self::updateAvatar($cid, $contact['avatar'], true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} elseif (!self::getAvatarFile($contact['photo']) || !self::getAvatarFile($contact['thumb']) || !self::getAvatarFile($contact['micro'])) {
|
} elseif (!self::isAvatarFile($contact['photo']) || !self::isAvatarFile($contact['thumb']) || !self::isAvatarFile($contact['micro'])) {
|
||||||
Logger::info('Removing/replacing avatar cache', ['id' => $cid, 'contact' => $contact]);
|
Logger::info('Removing/replacing avatar cache', ['id' => $cid, 'contact' => $contact]);
|
||||||
self::updateAvatar($cid, $contact['avatar'], true);
|
self::updateAvatar($cid, $contact['avatar'], true);
|
||||||
return;
|
return;
|
||||||
|
@ -1611,17 +1611,17 @@ class Contact
|
||||||
if (DI::config()->get('system', 'avatar_cache')) {
|
if (DI::config()->get('system', 'avatar_cache')) {
|
||||||
switch ($size) {
|
switch ($size) {
|
||||||
case Proxy::SIZE_MICRO:
|
case Proxy::SIZE_MICRO:
|
||||||
if (self::getAvatarFile($contact['micro'])) {
|
if (self::isAvatarFile($contact['micro'])) {
|
||||||
return $contact['micro'];
|
return $contact['micro'];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Proxy::SIZE_THUMB:
|
case Proxy::SIZE_THUMB:
|
||||||
if (self::getAvatarFile($contact['thumb'])) {
|
if (self::isAvatarFile($contact['thumb'])) {
|
||||||
return $contact['thumb'];
|
return $contact['thumb'];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Proxy::SIZE_SMALL:
|
case Proxy::SIZE_SMALL:
|
||||||
if (self::getAvatarFile($contact['photo'])) {
|
if (self::isAvatarFile($contact['photo'])) {
|
||||||
return $contact['photo'];
|
return $contact['photo'];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2091,7 +2091,7 @@ class Contact
|
||||||
self::deleteAvatarCache($contact['thumb']);
|
self::deleteAvatarCache($contact['thumb']);
|
||||||
self::deleteAvatarCache($contact['micro']);
|
self::deleteAvatarCache($contact['micro']);
|
||||||
Logger::debug('Avatar file name changed', ['new' => $avatar, 'old' => $contact['avatar']]);
|
Logger::debug('Avatar file name changed', ['new' => $avatar, 'old' => $contact['avatar']]);
|
||||||
} elseif (self::getAvatarFile($contact['photo']) && self::getAvatarFile($contact['thumb']) && self::getAvatarFile($contact['micro'])) {
|
} elseif (self::isAvatarFile($contact['photo']) && self::isAvatarFile($contact['thumb']) && self::isAvatarFile($contact['micro'])) {
|
||||||
$fields['photo'] = $contact['photo'];
|
$fields['photo'] = $contact['photo'];
|
||||||
$fields['thumb'] = $contact['thumb'];
|
$fields['thumb'] = $contact['thumb'];
|
||||||
$fields['micro'] = $contact['micro'];
|
$fields['micro'] = $contact['micro'];
|
||||||
|
@ -2181,6 +2181,17 @@ class Contact
|
||||||
return $filename;
|
return $filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the avatar cache file is locally stored
|
||||||
|
*
|
||||||
|
* @param string $avatar
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static function isAvatarFile(string $avatar): bool
|
||||||
|
{
|
||||||
|
return !empty(self::getAvatarFile($avatar));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a locally cached avatar picture
|
* Delete a locally cached avatar picture
|
||||||
*
|
*
|
||||||
|
|
|
@ -123,8 +123,8 @@ class Post
|
||||||
/**
|
/**
|
||||||
* Fetch the privacy of the post
|
* Fetch the privacy of the post
|
||||||
*
|
*
|
||||||
* @param array $item
|
* @param array $item
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function fetchPrivacy(array $item):string
|
private function fetchPrivacy(array $item):string
|
||||||
{
|
{
|
||||||
|
@ -453,11 +453,22 @@ class Post
|
||||||
if (in_array($item['network'], [Protocol::FEED, Protocol::MAIL])) {
|
if (in_array($item['network'], [Protocol::FEED, Protocol::MAIL])) {
|
||||||
$owner_avatar = $author_avatar = $item['contact-id'];
|
$owner_avatar = $author_avatar = $item['contact-id'];
|
||||||
$owner_updated = $author_updated = '';
|
$owner_updated = $author_updated = '';
|
||||||
|
$owner_thumb = $author_thumb = $item['contact-avatar'];
|
||||||
} else {
|
} else {
|
||||||
$owner_avatar = $item['owner-id'];
|
$owner_avatar = $item['owner-id'];
|
||||||
$owner_updated = $item['owner-updated'];
|
$owner_updated = $item['owner-updated'];
|
||||||
|
$owner_thumb = $item['owner-avatar'];
|
||||||
$author_avatar = $item['author-id'];
|
$author_avatar = $item['author-id'];
|
||||||
$author_updated = $item['author-updated'];
|
$author_updated = $item['author-updated'];
|
||||||
|
$author_thumb = $item['author-avatar'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Contact::isAvatarFile($owner_thumb)) {
|
||||||
|
$owner_thumb = Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Contact::isAvatarFile($author_thumb)) {
|
||||||
|
$author_thumb = Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated);
|
||||||
}
|
}
|
||||||
|
|
||||||
$tmp_item = [
|
$tmp_item = [
|
||||||
|
@ -491,7 +502,7 @@ class Post
|
||||||
'profile_url' => $profile_link,
|
'profile_url' => $profile_link,
|
||||||
'name' => $profile_name,
|
'name' => $profile_name,
|
||||||
'item_photo_menu_html' => DI::contentItem()->photoMenu($item, $formSecurityToken),
|
'item_photo_menu_html' => DI::contentItem()->photoMenu($item, $formSecurityToken),
|
||||||
'thumb' => DI::baseUrl()->remove(Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated)),
|
'thumb' => DI::baseUrl()->remove($author_thumb),
|
||||||
'osparkle' => $osparkle,
|
'osparkle' => $osparkle,
|
||||||
'sparkle' => $sparkle,
|
'sparkle' => $sparkle,
|
||||||
'title' => $title,
|
'title' => $title,
|
||||||
|
@ -508,7 +519,7 @@ class Post
|
||||||
'shiny' => $shiny,
|
'shiny' => $shiny,
|
||||||
'owner_self' => $item['author-link'] == Session::get('my_url'),
|
'owner_self' => $item['author-link'] == Session::get('my_url'),
|
||||||
'owner_url' => $this->getOwnerUrl(),
|
'owner_url' => $this->getOwnerUrl(),
|
||||||
'owner_photo' => DI::baseUrl()->remove(Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated)),
|
'owner_photo' => DI::baseUrl()->remove($owner_thumb),
|
||||||
'owner_name' => $this->getOwnerName(),
|
'owner_name' => $this->getOwnerName(),
|
||||||
'plink' => Item::getPlink($item),
|
'plink' => Item::getPlink($item),
|
||||||
'browsershare' => $browsershare,
|
'browsershare' => $browsershare,
|
||||||
|
|
Loading…
Reference in a new issue