Fix longstanding bug that breaks initial community view (fixes #3529)

community-first-fetch
Felix Ableitner 2 months ago
parent 255e695633
commit 0f3b883829

@ -27,8 +27,11 @@ pub async fn list_comments(
check_private_instance(&local_user_view, &local_site)?; check_private_instance(&local_user_view, &local_site)?;
let community_id = if let Some(name) = &data.community_name { let community_id = if let Some(name) = &data.community_name {
Some(resolve_actor_identifier::<ApubCommunity, Community>(name, &context, &None, true).await?) Some(
.map(|c| c.id) resolve_actor_identifier::<ApubCommunity, Community>(name, &context, &local_user_view, true)
.await?,
)
.map(|c| c.id)
} else { } else {
data.community_id data.community_id
}; };

@ -30,8 +30,11 @@ pub async fn list_posts(
let page = data.page; let page = data.page;
let limit = data.limit; let limit = data.limit;
let community_id = if let Some(name) = &data.community_name { let community_id = if let Some(name) = &data.community_name {
Some(resolve_actor_identifier::<ApubCommunity, Community>(name, &context, &None, true).await?) Some(
.map(|c| c.id) resolve_actor_identifier::<ApubCommunity, Community>(name, &context, &local_user_view, true)
.await?,
)
.map(|c| c.id)
} else { } else {
data.community_id data.community_id
}; };

@ -177,18 +177,21 @@ impl Object for ApubCommunity {
let community: ApubCommunity = community.into(); let community: ApubCommunity = community.into();
// Fetching mods and outbox is not necessary for Lemmy to work, so ignore errors. Besides, // These collections are not necessary for Lemmy to work, so ignore errors.
// we need to ignore these errors so that tests can work entirely offline.
let community_ = community.clone(); let community_ = community.clone();
let context_ = context.reset_request_count(); let context_ = context.reset_request_count();
spawn_try_task(async move { spawn_try_task(async move {
group.outbox.dereference(&community_, &context_).await?; group.outbox.dereference(&community_, &context_).await.ok();
group.followers.dereference(&community_, &context_).await?; group
.followers
.dereference(&community_, &context_)
.await
.ok();
if let Some(featured) = group.featured { if let Some(featured) = group.featured {
featured.dereference(&community_, &context_).await?; featured.dereference(&community_, &context_).await.ok();
} }
if let Some(moderators) = group.attributed_to { if let Some(moderators) = group.attributed_to {
moderators.dereference(&community_, &context_).await?; moderators.dereference(&community_, &context_).await.ok();
} }
Ok(()) Ok(())
}); });

Loading…
Cancel
Save