Signs for just one auth event to register with the push notification service instead of the dozens of events, one per relay.

This commit is contained in:
Vitor Pamplona 2024-07-23 10:15:36 -04:00
parent bca941e045
commit 38ba456a22
3 changed files with 38 additions and 6 deletions

View File

@ -2358,6 +2358,16 @@ class Account(
RelayAuthEvent.create(relayUrl, challenge, signer, onReady = onReady)
}
fun createAuthEvent(
relayUrls: List<String>,
challenge: String,
onReady: (RelayAuthEvent) -> Unit,
) {
if (!isWriteable()) return
RelayAuthEvent.create(relayUrls, challenge, signer, onReady = onReady)
}
fun isInPrivateBookmarks(
note: Note,
onReady: (Boolean) -> Unit,

View File

@ -55,7 +55,7 @@ class RegisterAccounts(
private suspend fun signAllAuths(
notificationToken: String,
remainingTos: List<Pair<Account, String>>,
remainingTos: List<Pair<Account, List<String>>>,
output: MutableList<RelayAuthEvent>,
onReady: (List<RelayAuthEvent>) -> Unit,
) {
@ -100,7 +100,7 @@ class RegisterAccounts(
) {
val readyToSend =
accounts
.map {
.mapNotNull {
Log.d(tag, "Register Account ${it.npub}")
val acc = LocalPreferences.loadCurrentAccountFromEncryptedStorage(it.npub)
@ -131,13 +131,17 @@ class RegisterAccounts(
Log.d(tag, "Register Account ${acc.userProfile().toBestDisplayName()} Kind3 Reads ${readKind3Relays.joinToString(", ")}")
(nip65Read + nip17Read + readKind3Relays).map {
Pair(acc, it)
val relays = (nip65Read + nip17Read + readKind3Relays)
if (relays.isNotEmpty()) {
Pair(acc, relays)
} else {
null
}
} else {
emptyList<Pair<Account, String>>()
null
}
}.flatten()
}
val listOfAuthEvents = mutableListOf<RelayAuthEvent>()
signAllAuths(

View File

@ -56,5 +56,23 @@ class RelayAuthEvent(
)
signer.sign(createdAt, KIND, tags, content, onReady)
}
fun create(
relays: List<String>,
challenge: String,
signer: NostrSigner,
createdAt: Long = TimeUtils.now(),
onReady: (RelayAuthEvent) -> Unit,
) {
val content = ""
val tags =
relays
.map {
arrayOf("relay", it)
}.plusElement(
arrayOf("challenge", challenge),
).toTypedArray()
signer.sign(createdAt, KIND, tags, content, onReady)
}
}
}