chore: connect to search relays only when needed

This commit is contained in:
2026-06-01 15:07:11 +07:00
parent 2e451aae12
commit 4efeec08c4
2 changed files with 27 additions and 23 deletions

30
Cargo.lock generated
View File

@@ -238,7 +238,7 @@ dependencies = [
[[package]] [[package]]
name = "assets" name = "assets"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"gpui", "gpui",
@@ -535,7 +535,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]] [[package]]
name = "auto_update" name = "auto_update"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -1005,7 +1005,7 @@ dependencies = [
[[package]] [[package]]
name = "chat" name = "chat"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -1028,7 +1028,7 @@ dependencies = [
[[package]] [[package]]
name = "chat_ui" name = "chat_ui"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"chat", "chat",
@@ -1253,7 +1253,7 @@ dependencies = [
[[package]] [[package]]
name = "common" name = "common"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bech32", "bech32",
@@ -1350,7 +1350,7 @@ dependencies = [
[[package]] [[package]]
name = "coop" name = "coop"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"assets", "assets",
@@ -1391,7 +1391,7 @@ dependencies = [
[[package]] [[package]]
name = "coop_web" name = "coop_web"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"assets", "assets",
@@ -1722,7 +1722,7 @@ dependencies = [
[[package]] [[package]]
name = "device" name = "device"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -4970,7 +4970,7 @@ dependencies = [
[[package]] [[package]]
name = "person" name = "person"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -5720,7 +5720,7 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
[[package]] [[package]]
name = "relay_auth" name = "relay_auth"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -6382,7 +6382,7 @@ dependencies = [
[[package]] [[package]]
name = "settings" name = "settings"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -6633,7 +6633,7 @@ dependencies = [
[[package]] [[package]]
name = "state" name = "state"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -6971,7 +6971,7 @@ dependencies = [
[[package]] [[package]]
name = "theme" name = "theme"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"gpui", "gpui",
@@ -7108,7 +7108,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]] [[package]]
name = "title_bar" name = "title_bar"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",
@@ -7481,7 +7481,7 @@ dependencies = [
[[package]] [[package]]
name = "ui" name = "ui"
version = "1.0.0-beta3" version = "1.0.0-beta4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common", "common",

View File

@@ -220,14 +220,6 @@ impl NostrRegistry {
let client = self.client(); let client = self.client();
let task: Task<Result<(), Error>> = cx.background_spawn(async move { let task: Task<Result<(), Error>> = cx.background_spawn(async move {
// Add search relay to the relay pool
for url in SEARCH_RELAYS.into_iter() {
client
.add_relay(url)
.capabilities(RelayCapabilities::READ)
.await?;
}
// Add indexer relay to the relay pool // Add indexer relay to the relay pool
for url in INDEXER_RELAYS.into_iter() { for url in INDEXER_RELAYS.into_iter() {
client client
@@ -633,6 +625,18 @@ impl NostrRegistry {
return Ok(results); return Ok(results);
} }
// Add search relay to the relay pool
for url in SEARCH_RELAYS.into_iter() {
if client.relay(url).await.is_ok() {
client
.add_relay(url)
.capabilities(RelayCapabilities::READ)
.await?;
} else {
return Err(anyhow!("Failed to add search relay: {}", url));
}
}
// Return early if the query is a valid public key // Return early if the query is a valid public key
if let Ok(public_key) = PublicKey::parse(&query) { if let Ok(public_key) = PublicKey::parse(&query) {
results.push(public_key); results.push(public_key);