Crate sentrystr_collector

Crate sentrystr_collector 

Source
Expand description

§SentryStr Collector

Event collection and monitoring from Nostr relays with optional direct message alerting.

§Quick Start

use sentrystr_collector::{EventCollector, EventFilter};

    let relays = vec!["wss://relay.damus.io".to_string()];
    // let collector = EventCollector::new(relays).await?;
    // let filter = EventFilter::new().with_limit(10);
    // let events = collector.collect_events(filter).await?;
    println!("Would collect events from {} relays", relays.len());
    Ok(())

§With Private Messaging

use sentrystr_collector::{EventCollector, PrivateMessageConfig, EventFilter};
use sentrystr::Level;
use nostr::Keys;

    let relays = vec!["wss://relay.damus.io".to_string()];
    // let mut collector = EventCollector::new(relays).await?;
    let recipient = Keys::generate().public_key();
    println!("Would setup DM alerts to {}", recipient.to_hex());
    Ok(())

§Event Filtering

use sentrystr_collector::{EventCollector, EventFilter};
use sentrystr::Level;
use nostr::Keys;
use chrono::{Utc, Duration};

    let relays = vec!["wss://relay.damus.io".to_string()];
    // let collector = EventCollector::new(relays).await?;
    let author = Keys::generate().public_key();
    let since = Utc::now() - Duration::hours(24);
    println!("Would filter events from {} since {}", author.to_hex(), since);
    Ok(())

Re-exports§

pub use collector::EventCollector;
pub use collector::PrivateMessageConfig;
pub use error::CollectorError;
pub use filter::EventFilter;

Modules§

collector
error
filter

Type Aliases§

Result