mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-19 11:43:43 +00:00
Rename nip35 references to nip05
This commit is contained in:
parent
f094c27ca6
commit
5204cf7a1c
@ -7,7 +7,7 @@ pub enum ToOverlordMessage {
|
|||||||
DeletePub,
|
DeletePub,
|
||||||
FollowBech32(String, String),
|
FollowBech32(String, String),
|
||||||
FollowHex(String, String),
|
FollowHex(String, String),
|
||||||
FollowNip35(String),
|
FollowNip05(String),
|
||||||
GeneratePrivateKey(String),
|
GeneratePrivateKey(String),
|
||||||
GetMissingEvents,
|
GetMissingEvents,
|
||||||
ImportPriv(String, String),
|
ImportPriv(String, String),
|
||||||
|
@ -109,6 +109,7 @@ fn upgrade(db: &Connection, mut version: u16) -> Result<(), Error> {
|
|||||||
apply_sql!(db, version, 5, "schema5.sql");
|
apply_sql!(db, version, 5, "schema5.sql");
|
||||||
apply_sql!(db, version, 6, "schema6.sql");
|
apply_sql!(db, version, 6, "schema6.sql");
|
||||||
apply_sql!(db, version, 7, "schema7.sql");
|
apply_sql!(db, version, 7, "schema7.sql");
|
||||||
|
apply_sql!(db, version, 8, "schema8.sql");
|
||||||
tracing::info!("Database is at version {}", version);
|
tracing::info!("Database is at version {}", version);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -12,14 +12,14 @@ pub struct DbPersonRelay {
|
|||||||
pub last_suggested_kind2: Option<u64>,
|
pub last_suggested_kind2: Option<u64>,
|
||||||
pub last_suggested_kind3: Option<u64>,
|
pub last_suggested_kind3: Option<u64>,
|
||||||
pub last_suggested_nip23: Option<u64>,
|
pub last_suggested_nip23: Option<u64>,
|
||||||
pub last_suggested_nip35: Option<u64>,
|
pub last_suggested_nip05: Option<u64>,
|
||||||
pub last_suggested_bytag: Option<u64>,
|
pub last_suggested_bytag: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DbPersonRelay {
|
impl DbPersonRelay {
|
||||||
/*
|
/*
|
||||||
pub async fn fetch(criteria: Option<&str>) -> Result<Vec<DbPersonRelay>, Error> {
|
pub async fn fetch(criteria: Option<&str>) -> Result<Vec<DbPersonRelay>, 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 {
|
let sql = match criteria {
|
||||||
None => sql,
|
None => sql,
|
||||||
Some(crit) => format!("{} WHERE {}", sql, crit),
|
Some(crit) => format!("{} WHERE {}", sql, crit),
|
||||||
@ -38,7 +38,7 @@ impl DbPersonRelay {
|
|||||||
last_suggested_kind2: row.get(3)?,
|
last_suggested_kind2: row.get(3)?,
|
||||||
last_suggested_kind3: row.get(4)?,
|
last_suggested_kind3: row.get(4)?,
|
||||||
last_suggested_nip23: row.get(5)?,
|
last_suggested_nip23: row.get(5)?,
|
||||||
last_suggested_nip35: row.get(6)?,
|
last_suggested_nip05: row.get(6)?,
|
||||||
last_suggested_bytag: row.get(7)?,
|
last_suggested_bytag: row.get(7)?,
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
@ -64,7 +64,7 @@ impl DbPersonRelay {
|
|||||||
let sql = format!(
|
let sql = format!(
|
||||||
"SELECT person, relay, person_relay.last_fetched, \
|
"SELECT person, relay, person_relay.last_fetched, \
|
||||||
last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \
|
last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \
|
||||||
last_suggested_nip35, last_suggested_bytag \
|
last_suggested_nip05, last_suggested_bytag \
|
||||||
FROM person_relay \
|
FROM person_relay \
|
||||||
INNER JOIN relay ON person_relay.relay=relay.url \
|
INNER JOIN relay ON person_relay.relay=relay.url \
|
||||||
WHERE person IN ({}) ORDER BY person, relay.rank DESC",
|
WHERE person IN ({}) ORDER BY person, relay.rank DESC",
|
||||||
@ -86,7 +86,7 @@ impl DbPersonRelay {
|
|||||||
last_suggested_kind2: row.get(3)?,
|
last_suggested_kind2: row.get(3)?,
|
||||||
last_suggested_kind3: row.get(4)?,
|
last_suggested_kind3: row.get(4)?,
|
||||||
last_suggested_nip23: row.get(5)?,
|
last_suggested_nip23: row.get(5)?,
|
||||||
last_suggested_nip35: row.get(6)?,
|
last_suggested_nip05: row.get(6)?,
|
||||||
last_suggested_bytag: row.get(7)?,
|
last_suggested_bytag: row.get(7)?,
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
@ -142,7 +142,7 @@ impl DbPersonRelay {
|
|||||||
pub async fn insert(person_relay: DbPersonRelay) -> Result<(), Error> {
|
pub async fn insert(person_relay: DbPersonRelay) -> Result<(), Error> {
|
||||||
let sql = "INSERT OR IGNORE INTO person_relay (person, relay, last_fetched, \
|
let sql = "INSERT OR IGNORE INTO person_relay (person, relay, last_fetched, \
|
||||||
last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \
|
last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \
|
||||||
last_suggested_nip35, last_suggested_bytag) \
|
last_suggested_nip05, last_suggested_bytag) \
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
|
|
||||||
spawn_blocking(move || {
|
spawn_blocking(move || {
|
||||||
@ -157,7 +157,7 @@ impl DbPersonRelay {
|
|||||||
&person_relay.last_suggested_kind2,
|
&person_relay.last_suggested_kind2,
|
||||||
&person_relay.last_suggested_kind3,
|
&person_relay.last_suggested_kind3,
|
||||||
&person_relay.last_suggested_nip23,
|
&person_relay.last_suggested_nip23,
|
||||||
&person_relay.last_suggested_nip35,
|
&person_relay.last_suggested_nip05,
|
||||||
&person_relay.last_suggested_bytag,
|
&person_relay.last_suggested_bytag,
|
||||||
))?;
|
))?;
|
||||||
Ok::<(), Error>(())
|
Ok::<(), Error>(())
|
||||||
@ -216,14 +216,14 @@ impl DbPersonRelay {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn upsert_last_suggested_nip35(
|
pub async fn upsert_last_suggested_nip05(
|
||||||
person: PublicKeyHex,
|
person: PublicKeyHex,
|
||||||
relay: String,
|
relay: String,
|
||||||
last_suggested_nip35: u64,
|
last_suggested_nip05: u64,
|
||||||
) -> Result<(), Error> {
|
) -> 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 (?, ?, ?) \
|
VALUES (?, ?, ?) \
|
||||||
ON CONFLICT(person, relay) DO UPDATE SET last_suggested_nip35=?";
|
ON CONFLICT(person, relay) DO UPDATE SET last_suggested_nip05=?";
|
||||||
|
|
||||||
spawn_blocking(move || {
|
spawn_blocking(move || {
|
||||||
let maybe_db = GLOBALS.db.blocking_lock();
|
let maybe_db = GLOBALS.db.blocking_lock();
|
||||||
@ -233,8 +233,8 @@ impl DbPersonRelay {
|
|||||||
stmt.execute((
|
stmt.execute((
|
||||||
&person.0,
|
&person.0,
|
||||||
&relay,
|
&relay,
|
||||||
&last_suggested_nip35,
|
&last_suggested_nip05,
|
||||||
&last_suggested_nip35,
|
&last_suggested_nip05,
|
||||||
))?;
|
))?;
|
||||||
Ok::<(), Error>(())
|
Ok::<(), Error>(())
|
||||||
})
|
})
|
||||||
@ -259,7 +259,7 @@ impl DbPersonRelay {
|
|||||||
"SELECT \
|
"SELECT \
|
||||||
person, relay, person_relay.last_fetched, \
|
person, relay, person_relay.last_fetched, \
|
||||||
last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \
|
last_suggested_kind2, last_suggested_kind3, last_suggested_nip23, \
|
||||||
last_suggested_nip35, last_suggested_bytag \
|
last_suggested_nip05, last_suggested_bytag \
|
||||||
FROM person_relay
|
FROM person_relay
|
||||||
INNER JOIN relay ON person_relay.relay=relay.url \
|
INNER JOIN relay ON person_relay.relay=relay.url \
|
||||||
WHERE person IN ({}) and relay in ({}) \
|
WHERE person IN ({}) and relay in ({}) \
|
||||||
@ -286,7 +286,7 @@ impl DbPersonRelay {
|
|||||||
last_suggested_kind2: row.get(3)?,
|
last_suggested_kind2: row.get(3)?,
|
||||||
last_suggested_kind3: row.get(4)?,
|
last_suggested_kind3: row.get(4)?,
|
||||||
last_suggested_nip23: row.get(5)?,
|
last_suggested_nip23: row.get(5)?,
|
||||||
last_suggested_nip35: row.get(6)?,
|
last_suggested_nip05: row.get(6)?,
|
||||||
last_suggested_bytag: row.get(7)?,
|
last_suggested_bytag: row.get(7)?,
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
|
1
src/db/schema8.sql
Normal file
1
src/db/schema8.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE person_relay RENAME COLUMN last_suggested_nip35 TO last_suggested_nip05;
|
@ -22,10 +22,10 @@ pub enum Error {
|
|||||||
MpscSend(#[from] tokio::sync::mpsc::error::SendError<ToOverlordMessage>),
|
MpscSend(#[from] tokio::sync::mpsc::error::SendError<ToOverlordMessage>),
|
||||||
|
|
||||||
#[error("NIP-05 public key not found")]
|
#[error("NIP-05 public key not found")]
|
||||||
Nip05NotFound,
|
Nip05KeyNotFound,
|
||||||
|
|
||||||
#[error("NIP-05 relays not found")]
|
#[error("NIP-05 relays not found")]
|
||||||
Nip35NotFound,
|
Nip05RelaysNotFound,
|
||||||
|
|
||||||
#[error("Nostr: {0}")]
|
#[error("Nostr: {0}")]
|
||||||
Nostr(#[from] nostr_types::Error),
|
Nostr(#[from] nostr_types::Error),
|
||||||
@ -42,7 +42,7 @@ pub enum Error {
|
|||||||
#[error("INTERNAL: {0}")]
|
#[error("INTERNAL: {0}")]
|
||||||
Internal(String),
|
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,
|
InvalidDnsId,
|
||||||
|
|
||||||
#[error("Invalid URI: {0}")]
|
#[error("Invalid URI: {0}")]
|
||||||
|
@ -371,9 +371,9 @@ impl Overlord {
|
|||||||
ToOverlordMessage::FollowHex(hex, relay) => {
|
ToOverlordMessage::FollowHex(hex, relay) => {
|
||||||
Overlord::follow_hexkey(hex, relay).await?;
|
Overlord::follow_hexkey(hex, relay).await?;
|
||||||
}
|
}
|
||||||
ToOverlordMessage::FollowNip35(dns_id) => {
|
ToOverlordMessage::FollowNip05(dns_id) => {
|
||||||
let _ = tokio::spawn(async move {
|
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);
|
tracing::error!("{}", e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -554,8 +554,8 @@ impl Overlord {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn get_and_follow_nip35(nip35: String) -> Result<(), Error> {
|
async fn get_and_follow_nip05(nip05: String) -> Result<(), Error> {
|
||||||
let mut parts: Vec<&str> = nip35.split('@').collect();
|
let mut parts: Vec<&str> = nip05.split('@').collect();
|
||||||
if parts.len() == 1 {
|
if parts.len() == 1 {
|
||||||
parts = Vec::from(["_", parts.first().unwrap()])
|
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 timeout_future = tokio::time::timeout(std::time::Duration::new(15, 0), nip05_future);
|
||||||
let response = timeout_future.await??;
|
let response = timeout_future.await??;
|
||||||
let nip05 = response.json::<Nip05>().await?;
|
let nip05 = response.json::<Nip05>().await?;
|
||||||
Overlord::follow_nip35(nip05, user.to_string(), domain.to_string()).await?;
|
Overlord::follow_nip05(nip05, user.to_string(), domain.to_string()).await?;
|
||||||
Ok(())
|
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 dns_id = format!("{}@{}", user, domain);
|
||||||
|
|
||||||
let pubkey = match nip05.names.get(&user) {
|
let pubkey = match nip05.names.get(&user) {
|
||||||
Some(pk) => pk,
|
Some(pk) => pk,
|
||||||
None => return Err(Error::Nip05NotFound),
|
None => return Err(Error::Nip05KeyNotFound),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Save person
|
// Save person
|
||||||
@ -612,7 +612,7 @@ impl Overlord {
|
|||||||
|
|
||||||
let relays = match nip05.relays.get(pubkey) {
|
let relays = match nip05.relays.get(pubkey) {
|
||||||
Some(relays) => relays,
|
Some(relays) => relays,
|
||||||
None => return Err(Error::Nip35NotFound),
|
None => return Err(Error::Nip05RelaysNotFound),
|
||||||
};
|
};
|
||||||
|
|
||||||
for relay in relays.iter() {
|
for relay in relays.iter() {
|
||||||
@ -623,7 +623,7 @@ impl Overlord {
|
|||||||
DbRelay::insert(db_relay).await?;
|
DbRelay::insert(db_relay).await?;
|
||||||
|
|
||||||
// Save person_relay
|
// Save person_relay
|
||||||
DbPersonRelay::upsert_last_suggested_nip35(
|
DbPersonRelay::upsert_last_suggested_nip05(
|
||||||
(*pubkey).into(),
|
(*pubkey).into(),
|
||||||
relay.inner().to_owned(),
|
relay.inner().to_owned(),
|
||||||
Unixtime::now().unwrap().0 as u64,
|
Unixtime::now().unwrap().0 as u64,
|
||||||
|
@ -77,7 +77,7 @@ struct GossipUi {
|
|||||||
placeholder_avatar: TextureHandle,
|
placeholder_avatar: TextureHandle,
|
||||||
draft: String,
|
draft: String,
|
||||||
settings: Settings,
|
settings: Settings,
|
||||||
nip35follow: String,
|
nip05follow: String,
|
||||||
follow_bech32_pubkey: String,
|
follow_bech32_pubkey: String,
|
||||||
follow_hex_pubkey: String,
|
follow_hex_pubkey: String,
|
||||||
follow_pubkey_at_relay: String,
|
follow_pubkey_at_relay: String,
|
||||||
@ -147,7 +147,7 @@ impl GossipUi {
|
|||||||
placeholder_avatar: placeholder_avatar_texture_handle,
|
placeholder_avatar: placeholder_avatar_texture_handle,
|
||||||
draft: "".to_owned(),
|
draft: "".to_owned(),
|
||||||
settings,
|
settings,
|
||||||
nip35follow: "".to_owned(),
|
nip05follow: "".to_owned(),
|
||||||
follow_bech32_pubkey: "".to_owned(),
|
follow_bech32_pubkey: "".to_owned(),
|
||||||
follow_hex_pubkey: "".to_owned(),
|
follow_hex_pubkey: "".to_owned(),
|
||||||
follow_pubkey_at_relay: "".to_owned(),
|
follow_pubkey_at_relay: "".to_owned(),
|
||||||
|
@ -21,13 +21,13 @@ pub(super) fn update(app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::Fr
|
|||||||
|
|
||||||
ui.horizontal(|ui| {
|
ui.horizontal(|ui| {
|
||||||
ui.label("Enter user@domain");
|
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() {
|
if ui.button("follow").clicked() {
|
||||||
let _ = GLOBALS
|
let _ = GLOBALS
|
||||||
.to_overlord
|
.to_overlord
|
||||||
.send(ToOverlordMessage::FollowNip35(app.nip35follow.clone()));
|
.send(ToOverlordMessage::FollowNip05(app.nip05follow.clone()));
|
||||||
app.nip35follow = "".to_owned();
|
app.nip05follow = "".to_owned();
|
||||||
}
|
}
|
||||||
|
|
||||||
ui.add_space(10.0);
|
ui.add_space(10.0);
|
||||||
|
Loading…
Reference in New Issue
Block a user