[PLUGINS][TreeNotes] Working, however feed is still not formatted

[ENTITY][Note] Fix for getReplies()
This commit is contained in:
Eliseu Amaro 2021-12-09 00:13:57 +00:00
parent 64122a9612
commit 774e32f834
Signed by: eliseuamaro
GPG Key ID: 96DA09D4B97BC2D5
3 changed files with 7 additions and 7 deletions

View File

@ -99,7 +99,7 @@ class Conversation extends Component
// Get actors who replied // Get actors who replied
foreach ($note_replies as $reply) { foreach ($note_replies as $reply) {
$reply_actor[] = Actor::getWithPK(Note::getWithPK($reply)->getActorId()); $reply_actor[] = Actor::getWithPK($reply->getActorId());
} }
if (\count($reply_actor) < 1) { if (\count($reply_actor) < 1) {
return Event::next; return Event::next;

View File

@ -23,7 +23,6 @@ namespace Plugin\TreeNotes;
use App\Core\Modules\Plugin; use App\Core\Modules\Plugin;
use App\Entity\Note; use App\Entity\Note;
use Component\Reply\Entity\NoteReply;
class TreeNotes extends Plugin class TreeNotes extends Plugin
{ {
@ -32,7 +31,7 @@ class TreeNotes extends Plugin
*/ */
public function onFormatNoteList(array $notes_in, ?array &$notes_out) public function onFormatNoteList(array $notes_in, ?array &$notes_out)
{ {
$roots = array_filter($notes_in, fn (Note $note) => \is_null($note->getReplyTo())); $roots = array_filter($notes_in, static fn (Note $note) => is_null($note->getReplyTo()));
$notes_out = $this->build_tree($roots, $notes_in); $notes_out = $this->build_tree($roots, $notes_in);
} }
@ -47,7 +46,7 @@ class TreeNotes extends Plugin
private function build_subtree(Note $parent, array $notes) private function build_subtree(Note $parent, array $notes)
{ {
$children = array_filter($notes, fn (Note $note) => $parent->getId() === $note->getReplyTo()); $children = array_filter($notes, fn (Note $note) => $note->getReplyTo() === $parent->getId());
return ['note' => $parent, 'replies' => $this->build_tree($children, $notes)]; return ['note' => $parent, 'replies' => $this->build_tree($children, $notes)];
} }
} }

View File

@ -122,7 +122,7 @@ class Note extends Entity
public function getReplyTo(): ?int public function getReplyTo(): ?int
{ {
return $this->reply_to; return $this->reply_to ?: null;
} }
public function setIsLocal(bool $is_local): self public function setIsLocal(bool $is_local): self
@ -317,9 +317,10 @@ class Note extends Entity
return self::getWithPK($this->getReplyTo()); return self::getWithPK($this->getReplyTo());
} }
public function getReplies(): array public function getReplies()
{ {
return Cache::getList('note-replies-' . $this->id, fn () => DB::dql('select n from note n where n.reply_to = :id', ['id' => $this->id])); $id = $this->getId();
return Cache::get('note-replies-' . $id, fn () => DB::dql('select n from note n where n.reply_to = :id', ['id' => $id]));
} }
/** /**