From 8676752f19a62da1298a5b1ba92253b0cb393c94 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 6 Apr 2023 11:57:28 -0400 Subject: [PATCH] Fixes Channel's reply to filtration (removes citations and the channel id from replies) --- .../main/java/com/vitorpamplona/amethyst/model/LocalCache.kt | 4 ++-- .../amethyst/service/model/BaseTextNoteEvent.kt | 2 +- .../amethyst/service/model/ChannelMessageEvent.kt | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index 4a5e93e2e..cef63d463 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -565,9 +565,9 @@ object LocalCache { return } - val replyTo = event.replyTos() + val replyTo = event.tagsWithoutCitations() + .filter { it != event.channel() } .mapNotNull { checkGetOrCreateNote(it) } - .filter { it.event !is ChannelCreateEvent } note.loadEvent(event, author, replyTo) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/BaseTextNoteEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/BaseTextNoteEvent.kt index 4583e39d8..c401ff260 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/BaseTextNoteEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/BaseTextNoteEvent.kt @@ -13,7 +13,7 @@ open class BaseTextNoteEvent( sig: HexKey ) : Event(id, pubKey, createdAt, kind, tags, content, sig) { fun mentions() = taggedUsers() - fun replyTos() = tags.filter { it.firstOrNull() == "e" }.mapNotNull { it.getOrNull(1) } + open fun replyTos() = tags.filter { it.firstOrNull() == "e" }.mapNotNull { it.getOrNull(1) } fun findCitations(): Set { var citations = mutableSetOf() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMessageEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMessageEvent.kt index 76a05c6cd..e2db58fbd 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMessageEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMessageEvent.kt @@ -12,11 +12,10 @@ class ChannelMessageEvent( tags: List>, content: String, sig: HexKey -) : Event(id, pubKey, createdAt, kind, tags, content, sig) { +) : BaseTextNoteEvent(id, pubKey, createdAt, kind, tags, content, sig) { fun channel() = tags.firstOrNull { it[0] == "e" && it.size > 3 && it[3] == "root" }?.getOrNull(1) ?: tags.firstOrNull { it.firstOrNull() == "e" }?.getOrNull(1) - fun replyTos() = tags.filter { it.getOrNull(1) != channel() }.mapNotNull { it.getOrNull(1) } - fun mentions() = tags.filter { it.firstOrNull() == "p" }.mapNotNull { it.getOrNull(1) } + override fun replyTos() = tags.filter { it.firstOrNull() == "e" && it.getOrNull(1) != channel() }.mapNotNull { it.getOrNull(1) } companion object { const val kind = 42