mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-04-10 12:59:51 +02:00
Adds k-tag to the Deletion events.
This commit is contained in:
parent
539433014e
commit
cd84c07fcc
@ -859,10 +859,11 @@ class Account(
|
||||
suspend fun delete(notes: List<Note>) {
|
||||
if (!isWriteable()) return
|
||||
|
||||
val myNotes = notes.filter { it.author == userProfile() }.mapNotNull { it.event?.id() }
|
||||
val myEvents = notes.filter { it.author == userProfile() }
|
||||
val myNoteVersions = myEvents.mapNotNull { it.event as? Event }
|
||||
|
||||
if (myNotes.isNotEmpty()) {
|
||||
DeletionEvent.create(myNotes, signer) {
|
||||
if (myNoteVersions.isNotEmpty()) {
|
||||
DeletionEvent.create(myNoteVersions, signer) {
|
||||
Client.send(it)
|
||||
LocalCache.justConsume(it, null)
|
||||
}
|
||||
@ -1891,7 +1892,7 @@ class Account(
|
||||
Client.send(event)
|
||||
LocalCache.justConsume(event, null)
|
||||
|
||||
DeletionEvent.create(listOf(event.id), signer) { event2 ->
|
||||
DeletionEvent.createForVersionOnly(listOf(event), signer) { event2 ->
|
||||
Client.send(event2)
|
||||
LocalCache.justConsume(event2, null)
|
||||
}
|
||||
|
@ -34,22 +34,59 @@ class DeletionEvent(
|
||||
content: String,
|
||||
sig: HexKey,
|
||||
) : Event(id, pubKey, createdAt, KIND, tags, content, sig) {
|
||||
fun deleteEvents() = tags.map { it[1] }
|
||||
fun deleteEvents() = taggedEvents()
|
||||
|
||||
fun deleteAddresses() = taggedAddresses()
|
||||
|
||||
companion object {
|
||||
const val KIND = 5
|
||||
const val ALT = "Deletion event"
|
||||
|
||||
fun create(
|
||||
deleteEvents: List<String>,
|
||||
deleteEvents: List<Event>,
|
||||
signer: NostrSigner,
|
||||
createdAt: Long = TimeUtils.now(),
|
||||
onReady: (DeletionEvent) -> Unit,
|
||||
) {
|
||||
val content = ""
|
||||
val tags =
|
||||
deleteEvents.map { arrayOf("e", it) }.plusElement(arrayOf("alt", ALT)).toTypedArray()
|
||||
signer.sign(createdAt, KIND, tags, content, onReady)
|
||||
val tags = mutableListOf<Array<String>>()
|
||||
|
||||
val kinds =
|
||||
deleteEvents.mapTo(HashSet()) {
|
||||
"${it.kind}"
|
||||
}.map {
|
||||
arrayOf("k", it)
|
||||
}
|
||||
|
||||
tags.addAll(deleteEvents.map { arrayOf("e", it.id) })
|
||||
tags.addAll(deleteEvents.mapNotNull { if (it is AddressableEvent) arrayOf("a", it.address().toTag()) else null })
|
||||
tags.addAll(kinds)
|
||||
tags.add(arrayOf("alt", ALT))
|
||||
|
||||
signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady)
|
||||
}
|
||||
|
||||
fun createForVersionOnly(
|
||||
deleteEvents: List<Event>,
|
||||
signer: NostrSigner,
|
||||
createdAt: Long = TimeUtils.now(),
|
||||
onReady: (DeletionEvent) -> Unit,
|
||||
) {
|
||||
val content = ""
|
||||
val tags = mutableListOf<Array<String>>()
|
||||
|
||||
val kinds =
|
||||
deleteEvents.mapTo(HashSet()) {
|
||||
"${it.kind}"
|
||||
}.map {
|
||||
arrayOf("k", it)
|
||||
}
|
||||
|
||||
tags.addAll(deleteEvents.map { arrayOf("e", it.id) })
|
||||
tags.addAll(kinds)
|
||||
tags.add(arrayOf("alt", ALT))
|
||||
|
||||
signer.sign(createdAt, KIND, tags.toTypedArray(), content, onReady)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user