12345678910111213141516171819202122232425262728293031323334353637383940 |
- use nostr_rs_client::{Error as ClientError, Pool, Url};
- use nostr_rs_types::{client::Subscribe, Response};
- #[derive(Debug, thiserror::Error)]
- pub enum Error {
- #[error("Nostr: {0}")]
- Addr(#[from] nostr_rs_types::types::addr::Error),
- #[error("client: {0}")]
- Client(#[from] ClientError),
- }
- #[tokio::main]
- async fn main() {
- env_logger::init();
- let mut clients = Pool::new_with_clients(vec![
- Url::parse("wss://relay.damus.io/").expect("valid url"),
- Url::parse("wss://brb.io").expect("valid url"),
- Url::parse("wss://nos.lol").expect("valid url"),
- Url::parse("wss://relay.current.fyi").expect("valid url"),
- Url::parse("wss://eden.nostr.land").expect("valid url"),
- Url::parse("wss://relay.snort.social").expect("valid url"),
- ]);
- let _ = clients.subscribe(Subscribe::default().into()).await;
- loop {
- if let Some((msg, relayed_by)) = clients.recv().await {
- match msg {
- Response::Event(x) => {
- println!("{} => {:?}", relayed_by, x);
- }
- Response::EndOfStoredEvents(_) => {}
- msg => {
- println!("{} {:?}", relayed_by, msg);
- }
- }
- }
- }
- }
|