commit 01bea06d20cbe186690d0e8c0358dce25b0ca027
parent add23c78f38830595e143bab02580f933e77f24b
Author: William Casarin <jb55@jb55.com>
Date: Thu, 5 Feb 2026 09:38:26 -0800
refactor: replace tuple with QuoteProfileInfo struct in build_embedded_quotes_html
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat:
1 file changed, 27 insertions(+), 9 deletions(-)
diff --git a/src/html.rs b/src/html.rs
@@ -18,6 +18,12 @@ use std::io::Write;
use std::str::FromStr;
use tracing::warn;
+struct QuoteProfileInfo {
+ display_name: Option<String>,
+ username: Option<String>,
+ pfp_url: Option<String>,
+}
+
#[derive(Debug, Clone, PartialEq, Eq)]
struct RelayEntry {
url: String,
@@ -799,29 +805,40 @@ fn build_embedded_quotes_html(ndb: &Ndb, txn: &Transaction, quote_refs: &[QuoteR
};
// Get author profile (filter empty strings for proper fallback)
- let (display_name, username, pfp_url) = ndb
+ let profile_info = ndb
.get_profile_by_pubkey(txn, quoted_note.pubkey())
.ok()
.and_then(|rec| {
rec.record().profile().map(|p| {
- let name = p
+ let display_name = p
.display_name()
.filter(|s| !s.is_empty())
.or_else(|| p.name().filter(|s| !s.is_empty()))
.map(|n| n.to_owned());
- let handle = p
+ let username = p
.name()
.filter(|s| !s.is_empty())
.map(|n| format!("@{}", n));
- let picture = p.picture().filter(|s| !s.is_empty()).map(|s| s.to_owned());
- (name, handle, picture)
+ let pfp_url = p.picture().filter(|s| !s.is_empty()).map(|s| s.to_owned());
+ QuoteProfileInfo {
+ display_name,
+ username,
+ pfp_url,
+ }
})
})
- .unwrap_or((None, None, None));
+ .unwrap_or(QuoteProfileInfo {
+ display_name: None,
+ username: None,
+ pfp_url: None,
+ });
- let display_name = display_name.unwrap_or_else(|| "nostrich".to_string());
+ let display_name = profile_info
+ .display_name
+ .unwrap_or_else(|| "nostrich".to_string());
let display_name_html = html_escape::encode_text(&display_name);
- let username_html = username
+ let username_html = profile_info
+ .username
.map(|u| {
format!(
r#" <span class="damus-embedded-quote-username">{}</span>"#,
@@ -830,7 +847,8 @@ fn build_embedded_quotes_html(ndb: &Ndb, txn: &Transaction, quote_refs: &[QuoteR
})
.unwrap_or_default();
- let pfp_html = pfp_url
+ let pfp_html = profile_info
+ .pfp_url
.filter(|url| !url.trim().is_empty())
.map(|url| {
let pfp_attr = html_escape::encode_double_quoted_attribute(&url);