aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade')
-rw-r--r--Digitigrade/Model/Actor.php7
-rw-r--r--Digitigrade/Model/Interaction.php12
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 {