diff --git a/server/src/newsreader.rs b/server/src/newsreader.rs index 8c268a5..fe95f11 100644 --- a/server/src/newsreader.rs +++ b/server/src/newsreader.rs @@ -167,6 +167,7 @@ pub async fn thread(pool: &PgPool, thread_id: String) -> Result, + remainder: Vec, } impl FromStr for Query { @@ -174,15 +175,21 @@ impl FromStr for Query { fn from_str(s: &str) -> Result { let mut unread_only = false; let mut site = None; + let mut remainder = Vec::new(); let site_prefix = format!("tag:{TAG_PREFIX}"); for word in s.split_whitespace() { if word == "is:unread" { unread_only = true - }; - if word.starts_with(&site_prefix) { + } else if word.starts_with(&site_prefix) { site = Some(word[site_prefix.len()..].to_string()) + } else { + remainder.push(word.to_string()); } } - Ok(Query { unread_only, site }) + Ok(Query { + unread_only, + site, + remainder, + }) } }