diff --git a/plugins/Favourite/Entity/Favourite.php b/plugins/Favourite/Entity/Favourite.php index b6f581264a..b90f5dbe5d 100644 --- a/plugins/Favourite/Entity/Favourite.php +++ b/plugins/Favourite/Entity/Favourite.php @@ -22,6 +22,8 @@ declare(strict_types = 1); namespace Plugin\Favourite\Entity; use App\Core\Entity; +use App\Entity\Note; +use App\Util\Formatting; use DateTimeInterface; class Favourite extends Entity @@ -80,6 +82,24 @@ class Favourite extends Entity // @codeCoverageIgnoreEnd // }}} Autocode + public function getNotificationTargetIds(array $ids_already_known = [], ?int $sender_id = null): array + { + if (!\array_key_exists('object', $ids_already_known)) { + $target_ids = Note::getById($this->getNoteId())->getNotificationTargetIds(); + } else { + $target_ids = $ids_already_known['object']; + } + + // Additional actors that should know about this + if (\array_key_exists('additional', $ids_already_known)) { + array_push($target_ids, ...$ids_already_known['additional']); + } else { + return $target_ids; + } + + return array_unique($target_ids); + } + public static function schemaDef() { return [ diff --git a/plugins/RepeatNote/Entity/NoteRepeat.php b/plugins/RepeatNote/Entity/NoteRepeat.php index ff54889ad3..8052e615cc 100644 --- a/plugins/RepeatNote/Entity/NoteRepeat.php +++ b/plugins/RepeatNote/Entity/NoteRepeat.php @@ -90,6 +90,24 @@ class NoteRepeat extends Entity ); } + public function getNotificationTargetIds(array $ids_already_known = [], ?int $sender_id = null): array + { + if (!\array_key_exists('object', $ids_already_known)) { + $target_ids = Note::getById($this->getNoteId())->getNotificationTargetIds(); + } else { + $target_ids = $ids_already_known['object']; + } + + // Additional actors that should know about this + if (\array_key_exists('additional', $ids_already_known)) { + array_push($target_ids, ...$ids_already_known['additional']); + } else { + return $target_ids; + } + + return array_unique($target_ids); + } + public static function schemaDef(): array { return [ diff --git a/src/Entity/Note.php b/src/Entity/Note.php index 83382eefce..be8b6528a9 100644 --- a/src/Entity/Note.php +++ b/src/Entity/Note.php @@ -51,16 +51,16 @@ class Note extends Entity // @codeCoverageIgnoreStart private int $id; private int $actor_id; - private ?string $content; + private ?string $content = null; private string $content_type = 'text/plain'; private ?string $rendered; private int $conversation_id; - private ?int $reply_to; + private ?int $reply_to = null; private bool $is_local; private ?string $source; private int $scope = VisibilityScope::PUBLIC; private ?string $url; - private ?int $language_id; + private ?int $language_id = null; private DateTimeInterface $created; private DateTimeInterface $modified;