From 5204cf7a1c5d34023952cfe06062333f641587f1 Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Sat, 7 Jan 2023 02:56:36 +1300 Subject: [PATCH] Rename nip35 references to nip05 --- src/comms.rs | 2 +- src/db/mod.rs | 1 + src/db/person_relay.rs | 30 +++++++++++++++--------------- src/db/schema8.sql | 1 + src/error.rs | 6 +++--- src/overlord/mod.rs | 18 +++++++++--------- src/ui/mod.rs | 4 ++-- src/ui/people/follow.rs | 6 +++--- 8 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 src/db/schema8.sql diff --git a/src/comms.rs b/src/comms.rs index 26f56e2f..2985ce00 100644 --- a/src/comms.rs +++ b/src/comms.rs @@ -7,7 +7,7 @@ pub enum ToOverlordMessage { DeletePub, FollowBech32(String, String), FollowHex(String, String), - FollowNip35(String), + FollowNip05(String), GeneratePrivateKey(String), GetMissingEvents, ImportPriv(String, String), diff --git a/src/db/mod.rs b/src/db/mod.rs index c30b258a..99de0b2e 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -109,6 +109,7 @@ fn upgrade(db: &Connection, mut version: u16) -> Result<(), Error> { apply_sql!(db, version, 5, "schema5.sql"); apply_sql!(db, version, 6, "schema6.sql"); apply_sql!(db, version, 7, "schema7.sql"); + apply_sql!(db, version, 8, "schema8.sql"); tracing::info!("Database is at version {}", version); Ok(()) } diff --git a/src/db/person_relay.rs b/src/db/person_relay.rs index ecc41c5d..fb69da6e 100644 --- a/src/db/person_relay.rs +++ b/src/db/person_relay.rs @@ -12,14 +12,14 @@ pub struct DbPersonRelay { pub last_suggested_kind2: Option, pub last_suggested_kind3: Option, pub last_suggested_nip23: Option, - pub last_suggested_nip35: Option, + pub last_suggested_nip05: Option, pub last_suggested_bytag: Option, } impl DbPersonRelay { /* pub async fn fetch(criteria: Option<&str>) -> Result, Error> { - let sql = "SELECT person, relay, last_fetched, last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, last_suggested_nip35, last_suggested_bytag FROM person_relay".to_owned(); + let sql = "SELECT person, relay, last_fetched, last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, last_suggested_nip05, last_suggested_bytag FROM person_relay".to_owned(); let sql = match criteria { None => sql, Some(crit) => format!("{} WHERE {}", sql, crit), @@ -38,7 +38,7 @@ impl DbPersonRelay { last_suggested_kind2: row.get(3)?, last_suggested_kind3: row.get(4)?, last_suggested_nip23: row.get(5)?, - last_suggested_nip35: row.get(6)?, + last_suggested_nip05: row.get(6)?, last_suggested_bytag: row.get(7)?, }) })?; @@ -64,7 +64,7 @@ impl DbPersonRelay { let sql = format!( "SELECT person, relay, person_relay.last_fetched, \ last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \ - last_suggested_nip35, last_suggested_bytag \ + last_suggested_nip05, last_suggested_bytag \ FROM person_relay \ INNER JOIN relay ON person_relay.relay=relay.url \ WHERE person IN ({}) ORDER BY person, relay.rank DESC", @@ -86,7 +86,7 @@ impl DbPersonRelay { last_suggested_kind2: row.get(3)?, last_suggested_kind3: row.get(4)?, last_suggested_nip23: row.get(5)?, - last_suggested_nip35: row.get(6)?, + last_suggested_nip05: row.get(6)?, last_suggested_bytag: row.get(7)?, }) })?; @@ -142,7 +142,7 @@ impl DbPersonRelay { pub async fn insert(person_relay: DbPersonRelay) -> Result<(), Error> { let sql = "INSERT OR IGNORE INTO person_relay (person, relay, last_fetched, \ last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \ - last_suggested_nip35, last_suggested_bytag) \ + last_suggested_nip05, last_suggested_bytag) \ VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; spawn_blocking(move || { @@ -157,7 +157,7 @@ impl DbPersonRelay { &person_relay.last_suggested_kind2, &person_relay.last_suggested_kind3, &person_relay.last_suggested_nip23, - &person_relay.last_suggested_nip35, + &person_relay.last_suggested_nip05, &person_relay.last_suggested_bytag, ))?; Ok::<(), Error>(()) @@ -216,14 +216,14 @@ impl DbPersonRelay { Ok(()) } - pub async fn upsert_last_suggested_nip35( + pub async fn upsert_last_suggested_nip05( person: PublicKeyHex, relay: String, - last_suggested_nip35: u64, + last_suggested_nip05: u64, ) -> Result<(), Error> { - let sql = "INSERT INTO person_relay (person, relay, last_suggested_nip35) \ + let sql = "INSERT INTO person_relay (person, relay, last_suggested_nip05) \ VALUES (?, ?, ?) \ - ON CONFLICT(person, relay) DO UPDATE SET last_suggested_nip35=?"; + ON CONFLICT(person, relay) DO UPDATE SET last_suggested_nip05=?"; spawn_blocking(move || { let maybe_db = GLOBALS.db.blocking_lock(); @@ -233,8 +233,8 @@ impl DbPersonRelay { stmt.execute(( &person.0, &relay, - &last_suggested_nip35, - &last_suggested_nip35, + &last_suggested_nip05, + &last_suggested_nip05, ))?; Ok::<(), Error>(()) }) @@ -259,7 +259,7 @@ impl DbPersonRelay { "SELECT \ person, relay, person_relay.last_fetched, \ last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \ - last_suggested_nip35, last_suggested_bytag \ + last_suggested_nip05, last_suggested_bytag \ FROM person_relay INNER JOIN relay ON person_relay.relay=relay.url \ WHERE person IN ({}) and relay in ({}) \ @@ -286,7 +286,7 @@ impl DbPersonRelay { last_suggested_kind2: row.get(3)?, last_suggested_kind3: row.get(4)?, last_suggested_nip23: row.get(5)?, - last_suggested_nip35: row.get(6)?, + last_suggested_nip05: row.get(6)?, last_suggested_bytag: row.get(7)?, }) })?; diff --git a/src/db/schema8.sql b/src/db/schema8.sql new file mode 100644 index 00000000..0d616a6e --- /dev/null +++ b/src/db/schema8.sql @@ -0,0 +1 @@ +ALTER TABLE person_relay RENAME COLUMN last_suggested_nip35 TO last_suggested_nip05; diff --git a/src/error.rs b/src/error.rs index b56d84ae..b8a0ed54 100644 --- a/src/error.rs +++ b/src/error.rs @@ -22,10 +22,10 @@ pub enum Error { MpscSend(#[from] tokio::sync::mpsc::error::SendError), #[error("NIP-05 public key not found")] - Nip05NotFound, + Nip05KeyNotFound, #[error("NIP-05 relays not found")] - Nip35NotFound, + Nip05RelaysNotFound, #[error("Nostr: {0}")] Nostr(#[from] nostr_types::Error), @@ -42,7 +42,7 @@ pub enum Error { #[error("INTERNAL: {0}")] Internal(String), - #[error("Invalid DNS ID (nip-05 / nip-35), should be user@domain")] + #[error("Invalid DNS ID (nip-05), should be user@domain")] InvalidDnsId, #[error("Invalid URI: {0}")] diff --git a/src/overlord/mod.rs b/src/overlord/mod.rs index ecbfbd25..922827f8 100644 --- a/src/overlord/mod.rs +++ b/src/overlord/mod.rs @@ -371,9 +371,9 @@ impl Overlord { ToOverlordMessage::FollowHex(hex, relay) => { Overlord::follow_hexkey(hex, relay).await?; } - ToOverlordMessage::FollowNip35(dns_id) => { + ToOverlordMessage::FollowNip05(dns_id) => { let _ = tokio::spawn(async move { - if let Err(e) = Overlord::get_and_follow_nip35(dns_id).await { + if let Err(e) = Overlord::get_and_follow_nip05(dns_id).await { tracing::error!("{}", e); } }); @@ -554,8 +554,8 @@ impl Overlord { Ok(()) } - async fn get_and_follow_nip35(nip35: String) -> Result<(), Error> { - let mut parts: Vec<&str> = nip35.split('@').collect(); + async fn get_and_follow_nip05(nip05: String) -> Result<(), Error> { + let mut parts: Vec<&str> = nip05.split('@').collect(); if parts.len() == 1 { parts = Vec::from(["_", parts.first().unwrap()]) } @@ -575,16 +575,16 @@ impl Overlord { let timeout_future = tokio::time::timeout(std::time::Duration::new(15, 0), nip05_future); let response = timeout_future.await??; let nip05 = response.json::().await?; - Overlord::follow_nip35(nip05, user.to_string(), domain.to_string()).await?; + Overlord::follow_nip05(nip05, user.to_string(), domain.to_string()).await?; Ok(()) } - async fn follow_nip35(nip05: Nip05, user: String, domain: String) -> Result<(), Error> { + async fn follow_nip05(nip05: Nip05, user: String, domain: String) -> Result<(), Error> { let dns_id = format!("{}@{}", user, domain); let pubkey = match nip05.names.get(&user) { Some(pk) => pk, - None => return Err(Error::Nip05NotFound), + None => return Err(Error::Nip05KeyNotFound), }; // Save person @@ -612,7 +612,7 @@ impl Overlord { let relays = match nip05.relays.get(pubkey) { Some(relays) => relays, - None => return Err(Error::Nip35NotFound), + None => return Err(Error::Nip05RelaysNotFound), }; for relay in relays.iter() { @@ -623,7 +623,7 @@ impl Overlord { DbRelay::insert(db_relay).await?; // Save person_relay - DbPersonRelay::upsert_last_suggested_nip35( + DbPersonRelay::upsert_last_suggested_nip05( (*pubkey).into(), relay.inner().to_owned(), Unixtime::now().unwrap().0 as u64, diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 41572696..467346f2 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -77,7 +77,7 @@ struct GossipUi { placeholder_avatar: TextureHandle, draft: String, settings: Settings, - nip35follow: String, + nip05follow: String, follow_bech32_pubkey: String, follow_hex_pubkey: String, follow_pubkey_at_relay: String, @@ -147,7 +147,7 @@ impl GossipUi { placeholder_avatar: placeholder_avatar_texture_handle, draft: "".to_owned(), settings, - nip35follow: "".to_owned(), + nip05follow: "".to_owned(), follow_bech32_pubkey: "".to_owned(), follow_hex_pubkey: "".to_owned(), follow_pubkey_at_relay: "".to_owned(), diff --git a/src/ui/people/follow.rs b/src/ui/people/follow.rs index 7c6e602d..48b150c1 100644 --- a/src/ui/people/follow.rs +++ b/src/ui/people/follow.rs @@ -21,13 +21,13 @@ pub(super) fn update(app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::Fr ui.horizontal(|ui| { ui.label("Enter user@domain"); - ui.add(TextEdit::singleline(&mut app.nip35follow).hint_text("user@domain")); + ui.add(TextEdit::singleline(&mut app.nip05follow).hint_text("user@domain")); }); if ui.button("follow").clicked() { let _ = GLOBALS .to_overlord - .send(ToOverlordMessage::FollowNip35(app.nip35follow.clone())); - app.nip35follow = "".to_owned(); + .send(ToOverlordMessage::FollowNip05(app.nip05follow.clone())); + app.nip05follow = "".to_owned(); } ui.add_space(10.0);