Avoid fatal error when AP contact has no photo

This commit is contained in:
Michael 2019-06-11 05:26:16 +00:00
parent 9491c63934
commit 76a420fbe9
2 changed files with 18 additions and 6 deletions

View file

@ -152,7 +152,13 @@ class APContact extends BaseObject
$apcontact['alias'] = JsonLD::fetchElement($compacted['as:url'], 'as:href', '@id');
}
if (empty($apcontact['url']) || empty($apcontact['inbox'])) {
// Quit if none of the basic values are set
if (empty($apcontact['url']) || empty($apcontact['inbox']) || empty($apcontact['type'])) {
return false;
}
// Quit if this doesn't seem to be an account at all
if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) {
return false;
}
@ -228,11 +234,13 @@ class APContact extends BaseObject
DBA::update('contact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]);
$contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]);
while ($contact = DBA::fetch($contacts)) {
Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']);
if (!empty($apcontact['photo'])) {
$contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]);
while ($contact = DBA::fetch($contacts)) {
Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']);
}
DBA::close($contacts);
}
DBA::close($contacts);
// Update the gcontact table
// These two fields don't exist in the gcontact table

View file

@ -413,7 +413,11 @@ class Photo extends BaseObject
$photo_failure = false;
$filename = basename($image_url);
$img_str = Network::fetchUrl($image_url, true);
if (!empty($image_url)) {
$img_str = Network::fetchUrl($image_url, true);
} else {
$img_str = '';
}
if ($quit_on_error && ($img_str == "")) {
return false;