From fb9efd9f4682f528b1832622d192b9b5544584a9 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 13 Jan 2025 18:06:05 +0000 Subject: make the interaction buttons actually work --- Digitigrade/Model/Instance.php | 5 +++++ Digitigrade/Model/Note.php | 4 ++++ Digitigrade/Model/PushableModel.php | 2 ++ 3 files changed, 11 insertions(+) (limited to 'Digitigrade') diff --git a/Digitigrade/Model/Instance.php b/Digitigrade/Model/Instance.php index 4242638..b3a179f 100644 --- a/Digitigrade/Model/Instance.php +++ b/Digitigrade/Model/Instance.php @@ -1,6 +1,7 @@ getCanonicalHost()) { + // refuse to fetch ourselves + return null; + } return self::findByUri("https://$host/.well-known/pawpub-instance", $autoSave, $forceRefetch); } diff --git a/Digitigrade/Model/Note.php b/Digitigrade/Model/Note.php index 7389617..6d83a90 100644 --- a/Digitigrade/Model/Note.php +++ b/Digitigrade/Model/Note.php @@ -115,6 +115,10 @@ class Note extends PushableModel implements TimelineIncludeable { return Interaction::findAllWithTarget($this); } + public function getInteractionsWithAuthor(Actor $author): array { + return Interaction::findAllWhere('author = ? AND target = ? AND deleted = false', [$author->id, $this->id]); + } + protected function getRelevantServers(): array { $recipientActors = match ($this->privacy->scope) { NotePrivacyScope::NONE => [], diff --git a/Digitigrade/Model/PushableModel.php b/Digitigrade/Model/PushableModel.php index 9de3507..4df90c8 100644 --- a/Digitigrade/Model/PushableModel.php +++ b/Digitigrade/Model/PushableModel.php @@ -40,6 +40,8 @@ abstract class PushableModel extends FetchableModel implements \JsonSerializable */ public function publish() { foreach ($this->getRelevantServers() as $instance) { + if ($instance == null) // really this should not happen but i'm lazy so it might + continue; (new PushObject($this, $instance))->submit(); } } -- cgit v1.3