diff options
| author | winter | 2025-01-14 22:09:56 +0000 |
|---|---|---|
| committer | winter | 2025-01-14 22:09:56 +0000 |
| commit | 07df9da970ceaa54c734d73bdb148fa36d42db63 (patch) | |
| tree | 9c10339b870d962122b3d636946e16f73d9e07ed /Digitigrade | |
| parent | 85038ca07c9909eb6503d5b0e529a2cc080d2a06 (diff) | |
fix(?) duplicate pushes and such
Diffstat (limited to 'Digitigrade')
| -rw-r--r-- | Digitigrade/Model/Actor.php | 7 | ||||
| -rw-r--r-- | Digitigrade/Model/Interaction.php | 12 |
2 files changed, 11 insertions, 8 deletions
diff --git a/Digitigrade/Model/Actor.php b/Digitigrade/Model/Actor.php index 0f87ed3..8a37b1c 100644 --- a/Digitigrade/Model/Actor.php +++ b/Digitigrade/Model/Actor.php @@ -224,9 +224,10 @@ class Actor extends PushableModel implements RpcReceiver { protected function getRelevantServers(): array { $actors = array_unique(array_merge($this->findFollowers(), $this->findFollowees())); - $instances = array_unique(array_map(function (Actor $actor) { - return Instance::findByHostname(hostname_from_uri($actor->uri)); - }, $actors)); + $instances = array_unique(array_map( + fn(Actor $actor) => $actor->isLocal ? null : $actor->findHomeInstance(), + $actors + )); return $instances; } diff --git a/Digitigrade/Model/Interaction.php b/Digitigrade/Model/Interaction.php index 38065c1..4ca1a0c 100644 --- a/Digitigrade/Model/Interaction.php +++ b/Digitigrade/Model/Interaction.php @@ -48,11 +48,13 @@ class Interaction extends PushableModel { } protected function getRelevantServers(): array { - $instances = array_map(function (Actor $actor) { - return Instance::findByHostname(hostname_from_uri($actor->uri)); - }, $this->author->findFollowers()); - $instances[] = Instance::findByHostname(hostname_from_uri($this->target->uri)); - return $instances; + $instances = array_map( + fn(Actor $actor) => $actor->isLocal ? null : $actor->findHomeInstance(), + $this->author->findFollowers() + ); + if (!$this->target->author->isLocal) + $instances[] = $this->target->author->findHomeInstance(); + return array_unique($instances); } public function jsonSerialize(): array { |
