aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade
diff options
context:
space:
mode:
authorwinter2025-01-14 22:09:56 +0000
committerwinter2025-01-14 22:09:56 +0000
commit07df9da970ceaa54c734d73bdb148fa36d42db63 (patch)
tree9c10339b870d962122b3d636946e16f73d9e07ed /Digitigrade
parent85038ca07c9909eb6503d5b0e529a2cc080d2a06 (diff)
fix(?) duplicate pushes and such
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 {