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.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/api/views/timelines.py b/api/views/timelines.py
index d560596..84eed7a 100644
--- a/api/views/timelines.py
+++ b/api/views/timelines.py
@@ -1,4 +1,4 @@
-from activities.models import Post, TimelineEvent
+from activities.models import Post, PostInteraction, TimelineEvent
from .. import schemas
from ..decorators import identity_required
@@ -36,7 +36,12 @@ def home(
# invert the ordering to accomodate
anchor_post = Post.objects.get(pk=min_id)
events = events.filter(created__gt=anchor_post.created).order_by("created")
- return [event.subject_post.to_mastodon_json() for event in events[:limit]]
+ events = list(events[:limit])
+ interactions = PostInteraction.get_event_interactions(events, request.identity)
+ return [
+ event.subject_post.to_mastodon_json(interactions=interactions)
+ for event in events
+ ]
@api_router.get("/v1/timelines/public", response=list[schemas.Status])
@@ -76,7 +81,9 @@ def public(
# invert the ordering to accomodate
anchor_post = Post.objects.get(pk=min_id)
posts = posts.filter(created__gt=anchor_post.created).order_by("created")
- return [post.to_mastodon_json() for post in posts[:limit]]
+ posts = list(posts[:limit])
+ interactions = PostInteraction.get_post_interactions(posts, request.identity)
+ return [post.to_mastodon_json(interactions=interactions) for post in posts]
@api_router.get("/v1/timelines/tag/{hashtag}", response=list[schemas.Status])
@@ -115,7 +122,9 @@ def hashtag(
# invert the ordering to accomodate
anchor_post = Post.objects.get(pk=min_id)
posts = posts.filter(created__gt=anchor_post.created).order_by("created")
- return [post.to_mastodon_json() for post in posts[:limit]]
+ posts = list(posts[:limit])
+ interactions = PostInteraction.get_post_interactions(posts, request.identity)
+ return [post.to_mastodon_json(interactions=interactions) for post in posts]
@api_router.get("/v1/conversations", response=list[schemas.Status])