diff options
| author | winter | 2025-01-27 19:45:39 +0000 |
|---|---|---|
| committer | winter | 2025-01-27 19:45:39 +0000 |
| commit | 5a6300f473b8be0e90a16e2b5992299b0ea1ddff (patch) | |
| tree | 844d3422a1c9575a4cecd56f32c1c7eba0358efd /Digitigrade | |
| parent | 9d59fd65b70b5b7588e4786f52f9cff1c3807426 (diff) | |
context menus and note deletion
Diffstat (limited to 'Digitigrade')
| -rw-r--r-- | Digitigrade/Timeline/HomeTimeline.php | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/Digitigrade/Timeline/HomeTimeline.php b/Digitigrade/Timeline/HomeTimeline.php index 9f420e5..a89c29a 100644 --- a/Digitigrade/Timeline/HomeTimeline.php +++ b/Digitigrade/Timeline/HomeTimeline.php @@ -13,20 +13,27 @@ class HomeTimeline extends Timeline { } protected function getItems(int $limit, int $offset): array { - return array_map( + return $this->filterItems(array_map( fn(HomeTimelineItem $hti) => $hti->toTimelineItem(), HomeTimelineItem::findAllForUser($this->user, $limit, $offset) - ); + )); + } + + private function filterItems(array $items): array { + return array_filter($items, function (TimelineItem $item) { + $obj = $item->getObject(); + if (!($obj instanceof Note)) + return true; + $blocked = $this->user->actor->blocks($obj->author); + $deleted = $obj->deleted; + return !$blocked && !$deleted; + }); } public function getItemsSince(\DateTimeInterface $when, ?int $limit = null, int $offset = 0): array { - return array_filter( - array_map( - fn(HomeTimelineItem $hti) => $hti->toTimelineItem(), - HomeTimelineItem::findAllForUser($this->user, $limit, $offset, $when) - ), - // filter out notes from blocked users - fn(TimelineItem $item) => !($item instanceof Note && $this->user->actor->block($item->author)) - ); + return $this->filterItems(array_map( + fn(HomeTimelineItem $hti) => $hti->toTimelineItem(), + HomeTimelineItem::findAllForUser($this->user, $limit, $offset, $when) + )); } }
\ No newline at end of file |
