Compare commits
No commits in common. "fd970b370921b71f0456ecf84ae0c887b2de7034" and "a297f61363373d279dea1f0f116174ca12a2f957" have entirely different histories.
fd970b3709
...
a297f61363
2 changed files with 7 additions and 36 deletions
21
src/main.rs
21
src/main.rs
|
@ -203,9 +203,7 @@ async fn main() -> Result<()> {
|
||||||
};
|
};
|
||||||
|
|
||||||
let client = ClientBuilder::new()
|
let client = ClientBuilder::new()
|
||||||
.opts(Options::new()
|
.opts(Options::new().automatic_authentication(true))
|
||||||
.automatic_authentication(true)
|
|
||||||
.pool(RelayPoolOptions::new().notification_channel_size(8192)))
|
|
||||||
.signer(&keys)
|
.signer(&keys)
|
||||||
.build();
|
.build();
|
||||||
info!("My public key: {}", keys.public_key());
|
info!("My public key: {}", keys.public_key());
|
||||||
|
@ -248,22 +246,6 @@ async fn main() -> Result<()> {
|
||||||
let sub2 = client.subscribe(vec![Filter::new().kinds(PROP_KINDS)], None).await;
|
let sub2 = client.subscribe(vec![Filter::new().kinds(PROP_KINDS)], None).await;
|
||||||
info!("Subscribed to updates with {:?}", sub2);
|
info!("Subscribed to updates with {:?}", sub2);
|
||||||
|
|
||||||
if args.peek().is_some_and(|arg| arg == "--watch-events") {
|
|
||||||
loop {
|
|
||||||
match notifications.recv().await {
|
|
||||||
Ok(notification) => {
|
|
||||||
if let RelayPoolNotification::Event { event, .. } = notification {
|
|
||||||
println!("At {} found {} kind {} content \"{}\"", event.created_at, event.id, event.kind, event.content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
println!("Aborting due to {:?}", e);
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let metadata = var("USER").ok().map(
|
let metadata = var("USER").ok().map(
|
||||||
|user| Metadata::new().name(user));
|
|user| Metadata::new().name(user));
|
||||||
let moved_metadata = metadata.clone();
|
let moved_metadata = metadata.clone();
|
||||||
|
@ -697,7 +679,6 @@ async fn main() -> Result<()> {
|
||||||
info!("Moving up {} tasks", dots - 1)
|
info!("Moving up {} tasks", dots - 1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO regex match
|
|
||||||
let mut transform: Box<dyn Fn(&str) -> String> = Box::new(|s: &str| s.to_string());
|
let mut transform: Box<dyn Fn(&str) -> String> = Box::new(|s: &str| s.to_string());
|
||||||
if !remaining.chars().any(|c| c.is_ascii_uppercase()) {
|
if !remaining.chars().any(|c| c.is_ascii_uppercase()) {
|
||||||
// Smart-case - case-sensitive if any uppercase char is entered
|
// Smart-case - case-sensitive if any uppercase char is entered
|
||||||
|
|
22
src/tasks.rs
22
src/tasks.rs
|
@ -15,7 +15,6 @@ use itertools::{Either, Itertools};
|
||||||
use log::{debug, error, info, trace, warn};
|
use log::{debug, error, info, trace, warn};
|
||||||
use nostr_sdk::prelude::Marker;
|
use nostr_sdk::prelude::Marker;
|
||||||
use nostr_sdk::{Event, EventBuilder, EventId, JsonUtil, Keys, Kind, Metadata, PublicKey, Tag, TagStandard, Timestamp, UncheckedUrl, Url};
|
use nostr_sdk::{Event, EventBuilder, EventId, JsonUtil, Keys, Kind, Metadata, PublicKey, Tag, TagStandard, Timestamp, UncheckedUrl, Url};
|
||||||
use regex::bytes::Regex;
|
|
||||||
use tokio::sync::mpsc::Sender;
|
use tokio::sync::mpsc::Sender;
|
||||||
use TagStandard::Hashtag;
|
use TagStandard::Hashtag;
|
||||||
|
|
||||||
|
@ -716,8 +715,7 @@ impl TasksRelay {
|
||||||
return vec![id];
|
return vec![id];
|
||||||
}
|
}
|
||||||
let lowercase_arg = arg.to_ascii_lowercase();
|
let lowercase_arg = arg.to_ascii_lowercase();
|
||||||
// TODO apply regex to all matching
|
let has_space = lowercase_arg.split_ascii_whitespace().count() > 1;
|
||||||
let regex = Regex::new(&format!(r"\b{}", lowercase_arg)).unwrap();
|
|
||||||
|
|
||||||
let mut filtered: Vec<EventId> = Vec::with_capacity(32);
|
let mut filtered: Vec<EventId> = Vec::with_capacity(32);
|
||||||
let mut filtered_fuzzy: Vec<EventId> = Vec::with_capacity(32);
|
let mut filtered_fuzzy: Vec<EventId> = Vec::with_capacity(32);
|
||||||
|
@ -728,7 +726,7 @@ impl TasksRelay {
|
||||||
return vec![task.event.id];
|
return vec![task.event.id];
|
||||||
} else if content.starts_with(arg) {
|
} else if content.starts_with(arg) {
|
||||||
filtered.push(task.event.id)
|
filtered.push(task.event.id)
|
||||||
} else if regex.is_match(lowercase.as_bytes()) {
|
} else if if has_space { lowercase.starts_with(&lowercase_arg) } else { lowercase.split_ascii_whitespace().any(|word| word.trim_start_matches('#').starts_with(&lowercase_arg)) } {
|
||||||
filtered_fuzzy.push(task.event.id)
|
filtered_fuzzy.push(task.event.id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1549,25 +1547,17 @@ mod tasks_test {
|
||||||
assert_eq!(tasks.visible_tasks().len(), 2);
|
assert_eq!(tasks.visible_tasks().len(), 2);
|
||||||
assert_eq!(tasks.get_by_id(&sub).unwrap().parent_id(), zero);
|
assert_eq!(tasks.get_by_id(&sub).unwrap().parent_id(), zero);
|
||||||
|
|
||||||
// Do not substring match invisible subtask
|
let id2 = tasks.filter_or_create(None, "new");
|
||||||
let id2 = tasks.filter_or_create(None, "#new-is gold wrapped").unwrap();
|
|
||||||
assert_eq!(tasks.len(), 3);
|
assert_eq!(tasks.len(), 3);
|
||||||
assert_eq!(tasks.visible_tasks().len(), 2);
|
assert_eq!(tasks.visible_tasks().len(), 2);
|
||||||
let new2 = tasks.get_by_id(&id2).unwrap();
|
let new2 = tasks.get_by_id(&id2.unwrap()).unwrap();
|
||||||
assert_eq!(new2.props, Default::default());
|
assert_eq!(new2.props, Default::default());
|
||||||
|
|
||||||
tasks.move_up();
|
assert_eq!(tasks.get_own_events_history().count(), 1);
|
||||||
assert_eq!(tasks.get_matching(tasks.get_position_ref(), "wrapped").len(), 1);
|
|
||||||
assert_eq!(tasks.get_matching(tasks.get_position_ref(), "new-i").len(), 1);
|
|
||||||
tasks.filter_or_create(None, "is gold");
|
|
||||||
assert_position!(tasks, id2);
|
|
||||||
|
|
||||||
assert_eq!(tasks.get_own_events_history().count(), 3);
|
|
||||||
// Global match
|
|
||||||
let idagain = tasks.filter_or_create(None, "newer");
|
let idagain = tasks.filter_or_create(None, "newer");
|
||||||
assert_eq!(idagain, None);
|
assert_eq!(idagain, None);
|
||||||
assert_position!(tasks, id1.unwrap());
|
assert_position!(tasks, id1.unwrap());
|
||||||
assert_eq!(tasks.get_own_events_history().count(), 4);
|
assert_eq!(tasks.get_own_events_history().count(), 2);
|
||||||
assert_eq!(tasks.len(), 3);
|
assert_eq!(tasks.len(), 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue