mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-10-05 21:52:52 +02:00
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:
@@ -2358,6 +2358,16 @@ class Account(
|
|||||||
RelayAuthEvent.create(relayUrl, challenge, signer, onReady = onReady)
|
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(
|
fun isInPrivateBookmarks(
|
||||||
note: Note,
|
note: Note,
|
||||||
onReady: (Boolean) -> Unit,
|
onReady: (Boolean) -> Unit,
|
||||||
|
@@ -55,7 +55,7 @@ class RegisterAccounts(
|
|||||||
|
|
||||||
private suspend fun signAllAuths(
|
private suspend fun signAllAuths(
|
||||||
notificationToken: String,
|
notificationToken: String,
|
||||||
remainingTos: List<Pair<Account, String>>,
|
remainingTos: List<Pair<Account, List<String>>>,
|
||||||
output: MutableList<RelayAuthEvent>,
|
output: MutableList<RelayAuthEvent>,
|
||||||
onReady: (List<RelayAuthEvent>) -> Unit,
|
onReady: (List<RelayAuthEvent>) -> Unit,
|
||||||
) {
|
) {
|
||||||
@@ -100,7 +100,7 @@ class RegisterAccounts(
|
|||||||
) {
|
) {
|
||||||
val readyToSend =
|
val readyToSend =
|
||||||
accounts
|
accounts
|
||||||
.map {
|
.mapNotNull {
|
||||||
Log.d(tag, "Register Account ${it.npub}")
|
Log.d(tag, "Register Account ${it.npub}")
|
||||||
|
|
||||||
val acc = LocalPreferences.loadCurrentAccountFromEncryptedStorage(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(", ")}")
|
Log.d(tag, "Register Account ${acc.userProfile().toBestDisplayName()} Kind3 Reads ${readKind3Relays.joinToString(", ")}")
|
||||||
|
|
||||||
(nip65Read + nip17Read + readKind3Relays).map {
|
val relays = (nip65Read + nip17Read + readKind3Relays)
|
||||||
Pair(acc, it)
|
|
||||||
|
if (relays.isNotEmpty()) {
|
||||||
|
Pair(acc, relays)
|
||||||
|
} else {
|
||||||
|
null
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
emptyList<Pair<Account, String>>()
|
null
|
||||||
}
|
}
|
||||||
}.flatten()
|
}
|
||||||
|
|
||||||
val listOfAuthEvents = mutableListOf<RelayAuthEvent>()
|
val listOfAuthEvents = mutableListOf<RelayAuthEvent>()
|
||||||
signAllAuths(
|
signAllAuths(
|
||||||
|
@@ -56,5 +56,23 @@ class RelayAuthEvent(
|
|||||||
)
|
)
|
||||||
signer.sign(createdAt, KIND, tags, content, onReady)
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user