diff options
author | Andrew Godwin | 2022-12-11 00:25:48 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-12-12 11:56:49 -0700 |
commit | 3e062aed360ca54c26733b175d00d0d4671f3591 (patch) | |
tree | 6109169ac8886a4e38cf0e9816e56e74417a5ade /api/views/timelines.py | |
parent | 1017c71ba1d80a1690e357a938ad46f246a456ae (diff) | |
download | takahe-3e062aed360ca54c26733b175d00d0d4671f3591.tar.gz takahe-3e062aed360ca54c26733b175d00d0d4671f3591.tar.bz2 takahe-3e062aed360ca54c26733b175d00d0d4671f3591.zip |
Timelines working
Diffstat (limited to 'api/views/timelines.py')
-rw-r--r-- | api/views/timelines.py | 23 |
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] |