X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fdb_views%2Fsrc%2Fpost_view.rs;h=f3319a90c0815c42c4d64a6a836eb1412989af25;hb=1b5437cbe3fe0b9726c5760c05f52054ab4e54c2;hp=06cd4f294ea81491a89e5ec68d07c607e1a849f3;hpb=17527d0e7e8c9fd3cc16aa41c636432b7b6b5650;p=lemmy.git diff --git a/crates/db_views/src/post_view.rs b/crates/db_views/src/post_view.rs index 06cd4f29..f3319a90 100644 --- a/crates/db_views/src/post_view.rs +++ b/crates/db_views/src/post_view.rs @@ -82,12 +82,7 @@ impl PostView { community_person_ban::table.on( post::community_id .eq(community_person_ban::community_id) - .and(community_person_ban::person_id.eq(post::creator_id)) - .and( - community_person_ban::expires - .is_null() - .or(community_person_ban::expires.gt(now)), - ), + .and(community_person_ban::person_id.eq(post::creator_id)), ), ) .inner_join(post_aggregates::table) @@ -230,12 +225,7 @@ impl<'a> PostQuery<'a> { community_person_ban::table.on( post::community_id .eq(community_person_ban::community_id) - .and(community_person_ban::person_id.eq(post::creator_id)) - .and( - community_person_ban::expires - .is_null() - .or(community_person_ban::expires.gt(now)), - ), + .and(community_person_ban::person_id.eq(post::creator_id)), ), ) .inner_join(post_aggregates::table) @@ -269,7 +259,7 @@ impl<'a> PostQuery<'a> { ) .left_join( community_block::table.on( - community::id + post::community_id .eq(community_block::community_id) .and(community_block::person_id.eq(person_id_join)), ), @@ -321,6 +311,18 @@ impl<'a> PostQuery<'a> { .filter(community::deleted.eq(false)); } + if self.community_id.is_none() { + query = query.then_order_by(post_aggregates::featured_local.desc()); + } else if let Some(community_id) = self.community_id { + query = query + .filter(post::community_id.eq(community_id)) + .then_order_by(post_aggregates::featured_community.desc()); + } + + if let Some(creator_id) = self.creator_id { + query = query.filter(post::creator_id.eq(creator_id)); + } + if let Some(listing_type) = self.listing_type { match listing_type { ListingType::Subscribed => { @@ -342,13 +344,6 @@ impl<'a> PostQuery<'a> { } } } - if self.community_id.is_none() { - query = query.then_order_by(post_aggregates::featured_local.desc()); - } else if let Some(community_id) = self.community_id { - query = query - .filter(post::community_id.eq(community_id)) - .then_order_by(post_aggregates::featured_community.desc()); - } if let Some(url_search) = self.url_search { query = query.filter(post::url.eq(url_search)); @@ -363,10 +358,6 @@ impl<'a> PostQuery<'a> { ); } - if let Some(creator_id) = self.creator_id { - query = query.filter(post::creator_id.eq(creator_id)); - } - if !self.local_user.map(|l| l.show_nsfw).unwrap_or(false) { query = query .filter(post::nsfw.eq(false))