};
use lemmy_apub::{fetcher::resolve_actor_identifier, objects::community::ApubCommunity};
use lemmy_db_schema::{
- source::community::Community,
+ source::{community::Community, local_site::LocalSite},
traits::DeleteableOrRemoveable,
utils::post_to_comment_sort_type,
SearchType,
let local_user_view =
get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
.await?;
+ let local_site = blocking(context.pool(), LocalSite::read).await??;
- check_private_instance(&local_user_view, context.pool()).await?;
+ check_private_instance(&local_user_view, &local_site)?;
- let show_nsfw = local_user_view.as_ref().map(|t| t.local_user.show_nsfw);
- let show_bot_accounts = local_user_view
- .as_ref()
- .map(|t| t.local_user.show_bot_accounts);
- let show_read_posts = local_user_view
- .as_ref()
- .map(|t| t.local_user.show_read_posts);
-
- let person_id = local_user_view.map(|u| u.person.id);
+ let person_id = local_user_view.as_ref().map(|u| u.person.id);
+ let local_user = local_user_view.map(|l| l.local_user);
let mut posts = Vec::new();
let mut comments = Vec::new();
let search_type = data.type_.unwrap_or(SearchType::All);
let community_id = data.community_id;
let community_actor_id = if let Some(name) = &data.community_name {
- resolve_actor_identifier::<ApubCommunity, Community>(name, context)
+ resolve_actor_identifier::<ApubCommunity, Community>(name, context, false)
.await
.ok()
.map(|c| c.actor_id)
PostQuery::builder()
.conn(conn)
.sort(sort)
- .show_nsfw(show_nsfw)
- .show_bot_accounts(show_bot_accounts)
- .show_read_posts(show_read_posts)
.listing_type(listing_type)
.community_id(community_id)
.community_actor_id(community_actor_id)
.creator_id(creator_id)
- .my_person_id(person_id)
+ .local_user(local_user.as_ref())
.search_term(Some(q))
.page(page)
.limit(limit)
.sort(sort.map(post_to_comment_sort_type))
.listing_type(listing_type)
.search_term(Some(q))
- .show_bot_accounts(show_bot_accounts)
.community_id(community_id)
.community_actor_id(community_actor_id)
.creator_id(creator_id)
- .my_person_id(person_id)
+ .local_user(local_user.as_ref())
.page(page)
.limit(limit)
.build()
.sort(sort)
.listing_type(listing_type)
.search_term(Some(q))
- .my_person_id(person_id)
+ .local_user(local_user.as_ref())
.page(page)
.limit(limit)
.build()
data.community_id.is_some() || data.community_name.is_some() || data.creator_id.is_some();
let community_actor_id_2 = community_actor_id.to_owned();
+ let local_user_ = local_user.clone();
posts = blocking(context.pool(), move |conn| {
PostQuery::builder()
.conn(conn)
.sort(sort)
- .show_nsfw(show_nsfw)
- .show_bot_accounts(show_bot_accounts)
- .show_read_posts(show_read_posts)
.listing_type(listing_type)
.community_id(community_id)
.community_actor_id(community_actor_id_2)
.creator_id(creator_id)
- .my_person_id(person_id)
+ .local_user(local_user_.as_ref())
.search_term(Some(q))
.page(page)
.limit(limit)
let q = data.q.to_owned();
let community_actor_id = community_actor_id.to_owned();
+ let local_user_ = local_user.clone();
comments = blocking(context.pool(), move |conn| {
CommentQuery::builder()
.conn(conn)
.sort(sort.map(post_to_comment_sort_type))
.listing_type(listing_type)
.search_term(Some(q))
- .show_bot_accounts(show_bot_accounts)
.community_id(community_id)
.community_actor_id(community_actor_id)
.creator_id(creator_id)
- .my_person_id(person_id)
+ .local_user(local_user_.as_ref())
.page(page)
.limit(limit)
.build()
.sort(sort)
.listing_type(listing_type)
.search_term(Some(q))
- .my_person_id(person_id)
+ .local_user(local_user.as_ref())
.page(page)
.limit(limit)
.build()
PostQuery::builder()
.conn(conn)
.sort(sort)
- .show_nsfw(show_nsfw)
- .show_bot_accounts(show_bot_accounts)
- .show_read_posts(show_read_posts)
.listing_type(listing_type)
- .my_person_id(person_id)
.community_id(community_id)
.community_actor_id(community_actor_id)
.creator_id(creator_id)