mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-10-06 03:18:23 +00:00
Use a new connection to check for the bunker relay to avoid the mute error
This commit is contained in:
@@ -333,6 +333,9 @@ fun onAddRelay(
|
||||
val client = NostrClient(
|
||||
socket,
|
||||
)
|
||||
val clientSub = NostrClient(
|
||||
socket,
|
||||
)
|
||||
AmberListenerSingleton.getListener()?.let { listener ->
|
||||
client.subscribe(listener)
|
||||
}
|
||||
@@ -347,6 +350,17 @@ fun onAddRelay(
|
||||
),
|
||||
),
|
||||
)
|
||||
clientSub.reconnect(
|
||||
arrayOf(
|
||||
RelaySetupInfoToConnect(
|
||||
addedWSS,
|
||||
read = true,
|
||||
write = true,
|
||||
feedTypes = COMMON_FEED_TYPES,
|
||||
forceProxy = if (isPrivateIp) false else Amber.instance.settings.useProxy,
|
||||
),
|
||||
),
|
||||
)
|
||||
var filterResult = false
|
||||
val listener2 = BunkerValidationRelayListener(
|
||||
account,
|
||||
@@ -357,10 +371,15 @@ fun onAddRelay(
|
||||
},
|
||||
)
|
||||
val relay = client.getRelay(addedWSS) ?: return@secondLaunch
|
||||
val relaySub = clientSub.getRelay(addedWSS) ?: return@secondLaunch
|
||||
client.subscribe(
|
||||
listener2,
|
||||
)
|
||||
clientSub.subscribe(
|
||||
listener2,
|
||||
)
|
||||
relay.connect()
|
||||
relaySub.connect()
|
||||
delay(3000)
|
||||
relay.sendFilter(
|
||||
UUID.randomUUID().toString().substring(0, 4),
|
||||
@@ -374,6 +393,18 @@ fun onAddRelay(
|
||||
),
|
||||
),
|
||||
)
|
||||
relaySub.sendFilter(
|
||||
UUID.randomUUID().toString().substring(0, 4),
|
||||
filters = listOf(
|
||||
TypedFilter(
|
||||
types = COMMON_FEED_TYPES,
|
||||
filter = SincePerRelayFilter(
|
||||
kinds = listOf(NostrConnectEvent.KIND),
|
||||
tags = mapOf("p" to listOf(signedEvent.pubKey)),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
delay(3000)
|
||||
val result = client.sendAndWaitForResponse(
|
||||
signedEvent = signedEvent,
|
||||
@@ -394,7 +425,9 @@ fun onAddRelay(
|
||||
client.unsubscribe(listener)
|
||||
}
|
||||
client.unsubscribe(listener2)
|
||||
clientSub.unsubscribe(listener2)
|
||||
client.getRelay(addedWSS)?.disconnect()
|
||||
clientSub.getRelay(addedWSS)?.disconnect()
|
||||
|
||||
if (result && filterResult) {
|
||||
relays2.add(
|
||||
|
||||
Reference in New Issue
Block a user