aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Timeline/HomeTimeline.php
diff options
context:
space:
mode:
authorwinter2025-01-23 18:55:52 +0000
committerwinter2025-01-23 18:55:58 +0000
commitbc9c83b6c33d460a574fbeb764c23bfbe941b4c0 (patch)
tree5d9e816b56feea462d15e391544b0b13eeb47c8d /Digitigrade/Timeline/HomeTimeline.php
parentddccaf16f39a4bf710266edc389fcde124e7ef56 (diff)
implement blocking users
it doesn't work yet for notifications! but i think i got it in most other places
Diffstat (limited to 'Digitigrade/Timeline/HomeTimeline.php')
-rw-r--r--Digitigrade/Timeline/HomeTimeline.php11
1 files changed, 8 insertions, 3 deletions
diff --git a/Digitigrade/Timeline/HomeTimeline.php b/Digitigrade/Timeline/HomeTimeline.php
index 0867541..9f420e5 100644
--- a/Digitigrade/Timeline/HomeTimeline.php
+++ b/Digitigrade/Timeline/HomeTimeline.php
@@ -1,6 +1,7 @@
<?php
namespace Digitigrade\Timeline;
+use Digitigrade\Model\Note;
use Digitigrade\Model\UserAccount;
use Digitigrade\Model\HomeTimelineItem;
@@ -19,9 +20,13 @@ class HomeTimeline extends Timeline {
}
public function getItemsSince(\DateTimeInterface $when, ?int $limit = null, int $offset = 0): array {
- return array_map(
- fn(HomeTimelineItem $hti) => $hti->toTimelineItem(),
- HomeTimelineItem::findAllForUser($this->user, $limit, $offset, $when)
+ 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))
);
}
} \ No newline at end of file