Replaced check with hardwired path

This commit is contained in:
Michael 2022-05-09 04:26:00 +00:00
parent f220e26f00
commit e3692c0105
4 changed files with 23 additions and 9 deletions

View File

@ -37,6 +37,7 @@ use Friendica\Core\Theme;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Item as ItemModel; use Friendica\Model\Item as ItemModel;
use Friendica\Model\Photo;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Model\Tag; use Friendica\Model\Tag;
use Friendica\Model\User; use Friendica\Model\User;
@ -672,11 +673,11 @@ class Conversation
$author_thumb = $item['author-avatar']; $author_thumb = $item['author-avatar'];
} }
if (!Contact::isAvatarFile($owner_thumb)) { if (empty($owner_thumb) || Photo::isPhotoURI($owner_thumb)) {
$owner_thumb = Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated); $owner_thumb = Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated);
} }
if (!Contact::isAvatarFile($author_thumb)) { if (empty($author_thumb) || Photo::isPhotoURI($author_thumb)) {
$author_thumb = Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated); $author_thumb = Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated);
} }

View File

@ -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::isAvatarFile($contact['micro'])) { if (!empty($contact['micro']) && !Photo::isPhotoURI($contact['micro'])) {
return $contact['micro']; return $contact['micro'];
} }
break; break;
case Proxy::SIZE_THUMB: case Proxy::SIZE_THUMB:
if (self::isAvatarFile($contact['thumb'])) { if (!empty($contact['thumb']) && !Photo::isPhotoURI($contact['thumb'])) {
return $contact['thumb']; return $contact['thumb'];
} }
break; break;
case Proxy::SIZE_SMALL: case Proxy::SIZE_SMALL:
if (self::isAvatarFile($contact['photo'])) { if (!empty($contact['photo']) && !Photo::isPhotoURI($contact['photo'])) {
return $contact['photo']; return $contact['photo'];
} }
break; break;
@ -2187,7 +2187,7 @@ class Contact
* @param string $avatar * @param string $avatar
* @return boolean * @return boolean
*/ */
public static function isAvatarFile(string $avatar): bool private static function isAvatarFile(string $avatar): bool
{ {
return !empty(self::getAvatarFile($avatar)); return !empty(self::getAvatarFile($avatar));
} }

View File

@ -710,6 +710,18 @@ class Photo
return $image_uri; return $image_uri;
} }
/**
* Checks if the given URL is a local photo.
* Since it is meant for time critical occasions, the check is done without any database requests.
*
* @param string $url
* @return boolean
*/
public static function isPhotoURI(string $url): bool
{
return !empty(self::ridFromURI($url));
}
/** /**
* Changes photo permissions that had been embedded in a post * Changes photo permissions that had been embedded in a post
* *

View File

@ -32,6 +32,7 @@ use Friendica\Core\Session;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Photo;
use Friendica\Model\Post as PostModel; use Friendica\Model\Post as PostModel;
use Friendica\Model\Tag; use Friendica\Model\Tag;
use Friendica\Model\User; use Friendica\Model\User;
@ -463,11 +464,11 @@ class Post
$author_thumb = $item['author-avatar']; $author_thumb = $item['author-avatar'];
} }
if (!Contact::isAvatarFile($owner_thumb)) { if (empty($owner_thumb) || Photo::isPhotoURI($owner_thumb)) {
$owner_thumb = Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated); $owner_thumb = Contact::getAvatarUrlForId($owner_avatar, Proxy::SIZE_THUMB, $owner_updated);
} }
if (!Contact::isAvatarFile($author_thumb)) { if (empty($author_thumb) || Photo::isPhotoURI($author_thumb)) {
$author_thumb = Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated); $author_thumb = Contact::getAvatarUrlForId($author_avatar, Proxy::SIZE_THUMB, $author_updated);
} }