aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade')
-rw-r--r--Digitigrade/Timeline/HomeTimeline.php27
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