24 lines
720 B
Python
24 lines
720 B
Python
![]() |
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]
|