diff options
Diffstat (limited to 'Digitigrade')
| -rw-r--r-- | Digitigrade/Model/Instance.php | 5 | ||||
| -rw-r--r-- | Digitigrade/Model/Note.php | 4 | ||||
| -rw-r--r-- | Digitigrade/Model/PushableModel.php | 2 |
3 files changed, 11 insertions, 0 deletions
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 @@ <?php namespace Digitigrade\Model; +use Digitigrade\GlobalConfig; use Digitigrade\Job\RefreshOutboundAuthToken; class Instance extends FetchableModel { @@ -26,6 +27,10 @@ class Instance extends FetchableModel { } public static function findByHostname(string $host, bool $autoSave = true, bool $forceRefetch = false): ?self { + if ($host == GlobalConfig::getInstance()->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(); } } |
