Generalise the implementation of PeopleListEvent.removeTag() to also support public list events. Use defaults in already dependent code.

This commit is contained in:
KotlinGeekDev
2025-06-06 18:34:45 +01:00
parent 94243f4060
commit af2b2328cf
2 changed files with 37 additions and 17 deletions
@@ -3125,6 +3125,8 @@ class Account(
PeopleListEvent.removeWord( PeopleListEvent.removeWord(
earlierVersion = blockList, earlierVersion = blockList,
word = word, word = word,
// It is true here, since PeopleListEvent.removeTag(..) defaulted to private tags.
isPrivate = true,
signer = signer, signer = signer,
) { ) {
Amethyst.instance.client.send(it) Amethyst.instance.client.send(it)
@@ -3178,6 +3180,8 @@ class Account(
PeopleListEvent.removeUser( PeopleListEvent.removeUser(
earlierVersion = blockList, earlierVersion = blockList,
pubKeyHex = pubkeyHex, pubKeyHex = pubkeyHex,
// Reason: refer to showWord(..) above.
isPrivate = true,
signer = signer, signer = signer,
) { ) {
Amethyst.instance.client.send(it) Amethyst.instance.client.send(it)
@@ -270,46 +270,62 @@ class PeopleListEvent(
fun removeWord( fun removeWord(
earlierVersion: PeopleListEvent, earlierVersion: PeopleListEvent,
word: String, word: String,
isPrivate: Boolean,
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
onReady: (PeopleListEvent) -> Unit, onReady: (PeopleListEvent) -> Unit,
) = removeTag(earlierVersion, "word", word, signer, createdAt, onReady) ) = removeTag(earlierVersion, "word", word, isPrivate, signer, createdAt, onReady)
fun removeUser( fun removeUser(
earlierVersion: PeopleListEvent, earlierVersion: PeopleListEvent,
pubKeyHex: String, pubKeyHex: String,
isPrivate: Boolean,
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
onReady: (PeopleListEvent) -> Unit, onReady: (PeopleListEvent) -> Unit,
) = removeTag(earlierVersion, "p", pubKeyHex, signer, createdAt, onReady) ) = removeTag(earlierVersion, "p", pubKeyHex, isPrivate, signer, createdAt, onReady)
fun removeTag( fun removeTag(
earlierVersion: PeopleListEvent, earlierVersion: PeopleListEvent,
key: String, key: String,
tag: String, tag: String,
isPrivate: Boolean,
signer: NostrSigner, signer: NostrSigner,
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
onReady: (PeopleListEvent) -> Unit, onReady: (PeopleListEvent) -> Unit,
) { ) {
earlierVersion.privateTagsOrEmpty(signer) { privateTags -> if (isPrivate) {
encryptTags( earlierVersion.privateTagsOrEmpty(signer) { privateTags ->
privateTags = encryptTags(
privateTags privateTags =
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) } privateTags
.toTypedArray(),
signer = signer,
) { encryptedTags ->
create(
content = encryptedTags,
tags =
earlierVersion.tags
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) } .filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
.toTypedArray(), .toTypedArray(),
signer = signer, signer = signer,
createdAt = createdAt, ) { encryptedTags ->
onReady = onReady, create(
) content = encryptedTags,
tags =
earlierVersion.tags
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
.toTypedArray(),
signer = signer,
createdAt = createdAt,
onReady = onReady,
)
}
} }
} else {
create(
content = earlierVersion.content,
tags =
earlierVersion.tags
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
.toTypedArray(),
signer,
createdAt,
onReady,
)
} }
} }