aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Model
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade/Model')
-rw-r--r--Digitigrade/Model/Instance.php5
-rw-r--r--Digitigrade/Model/Note.php4
-rw-r--r--Digitigrade/Model/PushableModel.php2
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();
}
}