From daac5a52c70955e270be98044e0dfa34568e84d0 Mon Sep 17 00:00:00 2001 From: freamon Date: Thu, 20 Jun 2024 04:38:51 +0100 Subject: [PATCH] Refine local community outbox response --- app/activitypub/routes.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/activitypub/routes.py b/app/activitypub/routes.py index 481cbee3..a2dbcc04 100644 --- a/app/activitypub/routes.py +++ b/app/activitypub/routes.py @@ -27,6 +27,7 @@ from app.utils import gibberish, get_setting, is_image_url, allowlist_html, rend domain_from_url, markdown_to_html, community_membership, ap_datetime, ip_address, can_downvote, \ can_upvote, can_create_post, awaken_dormant_instance, shorten_string, can_create_post_reply, sha256_digest, \ community_moderators, lemmy_markdown_to_html +from sqlalchemy import desc import werkzeug.exceptions @@ -1230,7 +1231,10 @@ def community_outbox(actor): actor = actor.strip() community = Community.query.filter_by(name=actor, banned=False, ap_id=None).first() if community is not None: - posts = community.posts.filter(Post.deleted == False).limit(50).all() + sticky_posts = community.posts.filter(Post.sticky == True, Post.deleted == False).order_by(desc(Post.posted_at)).limit(50).all() + remaining_limit = 50 - len(sticky_posts) + remaining_posts = community.posts.filter(Post.sticky == False, Post.deleted == False).order_by(desc(Post.posted_at)).limit(remaining_limit).all() + posts = sticky_posts + remaining_posts community_data = { "@context": default_context(),