feat: add until for request filters

This implements an additional filter criteria for selecting events
prior to some timestamp.

See https://github.com/fiatjaf/nostr/issues/39x
This commit is contained in:
Greg Heartsfield 2021-12-23 21:38:32 -06:00
parent 0e288fe678
commit 100f890284
2 changed files with 8 additions and 0 deletions

View File

@ -229,6 +229,12 @@ fn query_from_sub(sub: &Subscription) -> String {
let created_clause = format!("created_at > {}", f.since.unwrap()); let created_clause = format!("created_at > {}", f.since.unwrap());
filter_components.push(created_clause); filter_components.push(created_clause);
} }
// Query for timestamp
if f.until.is_some() {
let until_clause = format!("created_at < {}", f.until.unwrap());
filter_components.push(until_clause);
}
// combine all clauses, and add to filter_clauses // combine all clauses, and add to filter_clauses
if !filter_components.is_empty() { if !filter_components.is_empty() {
let mut fc = "( ".to_owned(); let mut fc = "( ".to_owned();

View File

@ -29,6 +29,8 @@ pub struct ReqFilter {
pub pubkey: Option<String>, pub pubkey: Option<String>,
/// Events published after this time /// Events published after this time
pub since: Option<u64>, pub since: Option<u64>,
/// Events published before this time
pub until: Option<u64>,
/// List of author public keys /// List of author public keys
pub authors: Option<Vec<String>>, pub authors: Option<Vec<String>>,
} }