From cb0dbd8e988d5e385cff4277314101c9ec079c07 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Wed, 19 Jan 2022 17:47:39 +0100 Subject: [PATCH] Put community last in webfinger response (fixes #2037) --- crates/routes/src/webfinger.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/crates/routes/src/webfinger.rs b/crates/routes/src/webfinger.rs index db5e662c0..82b8a619e 100644 --- a/crates/routes/src/webfinger.rs +++ b/crates/routes/src/webfinger.rs @@ -43,21 +43,24 @@ async fn get_webfinger_response( .to_string(); let name_ = name.clone(); - let community_id: Option = blocking(context.pool(), move |conn| { - Community::read_from_name(conn, &name_) - }) - .await? - .ok() - .map(|c| c.actor_id.into()); let user_id: Option = blocking(context.pool(), move |conn| { - Person::find_by_name(conn, &name) + Person::find_by_name(conn, &name_) }) .await? .ok() .map(|c| c.actor_id.into()); + let community_id: Option = blocking(context.pool(), move |conn| { + Community::read_from_name(conn, &name) + }) + .await? + .ok() + .map(|c| c.actor_id.into()); + + // Mastodon seems to prioritize the last webfinger item in case of duplicates. Put + // community last so that it gets prioritized. For Lemmy the order doesnt matter. let links = vec![ - webfinger_link_for_actor(community_id), webfinger_link_for_actor(user_id), + webfinger_link_for_actor(community_id), ] .into_iter() .flatten()