Merge pull request #14224 from annando/performance

Improve the inbox performance
This commit is contained in:
Tobias Diekershoff 2024-06-09 17:25:12 +02:00 committed by GitHub
commit d7cd450df5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 6 deletions

View file

@ -287,6 +287,7 @@ class APContact
} elseif ($apcontact['type'] == 'Tombstone') {
// The "inbox" field must have a content
$apcontact['inbox'] = '';
$apcontact['addr'] = '';
}
// Quit if this doesn't seem to be an account at all
@ -294,7 +295,7 @@ class APContact
return $fetched_contact;
}
if (empty($apcontact['addr'])) {
if (empty($apcontact['addr']) && ($apcontact['type'] != 'Tombstone')) {
try {
$apcontact['addr'] = $apcontact['nick'] . '@' . (new Uri($apcontact['url']))->getAuthority();
} catch (\Throwable $e) {

View file

@ -277,12 +277,15 @@ class Receiver
}
}
if (Post::exists(['uri' => $object_id, 'gravity' => [Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]])) {
$type = JsonLD::fetchElement($activity, '@type');
// Several activities are only done on content types, so we can assume "Note" here.
if (Post::exists(['uri' => $object_id, 'gravity' => [Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]]) || (in_array($type, ['as:Like', 'as:Dislike', 'litepub:EmojiReact', 'as:Announce', 'as:View']))) {
// We just assume "note" since it doesn't make a difference for the further processing
return 'as:Note';
}
$profile = APContact::getByURL($object_id);
$profile = APContact::getByURL($object_id, false);
if (!empty($profile['type'])) {
APContact::unmarkForArchival($profile);
return 'as:' . $profile['type'];
@ -1183,9 +1186,6 @@ class Receiver
$profile = APContact::getByURL($actor);
$followers = $profile['followers'] ?? '';
$isGroup = ($profile['type'] ?? '') == 'Group';
if ($push) {
Contact::updateByUrlIfNeeded($actor);
}
Logger::info('Got actor and followers', ['actor' => $actor, 'followers' => $followers]);
} else {
Logger::info('Empty actor', ['activity' => $activity]);