summaryrefslogtreecommitdiffstats
path: root/api/views/timelines.py
diff options
context:
space:
mode:
Diffstat (limited to 'api/views/timelines.py')
-rw-r--r--api/views/timelines.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/api/views/timelines.py b/api/views/timelines.py
new file mode 100644
index 0000000..5de0e0f
--- /dev/null
+++ b/api/views/timelines.py
@@ -0,0 +1,23 @@
+from activities.models import TimelineEvent
+
+from .. import schemas
+from ..decorators import identity_required
+from .base import api
+
+
+@api.get("/v1/timelines/home", response=list[schemas.Status])
+@identity_required
+def home(request):
+ if request.GET.get("max_id"):
+ return []
+ limit = int(request.GET.get("limit", "20"))
+ events = (
+ TimelineEvent.objects.filter(
+ identity=request.identity,
+ type__in=[TimelineEvent.Types.post],
+ )
+ .select_related("subject_post", "subject_post__author")
+ .prefetch_related("subject_post__attachments")
+ .order_by("-created")[:limit]
+ )
+ return [event.subject_post.to_mastodon_json() for event in events]