diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NIP90ContentDiscoveryFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NIP90ContentDiscoveryFilter.kt index 6a8241713..0fc4cc2a9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NIP90ContentDiscoveryFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NIP90ContentDiscoveryFilter.kt @@ -25,7 +25,6 @@ import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.model.Note -import com.vitorpamplona.quartz.encoders.toHexKey import com.vitorpamplona.quartz.events.MuteListEvent import com.vitorpamplona.quartz.events.NIP90ContentDiscoveryResponseEvent import com.vitorpamplona.quartz.events.PeopleListEvent @@ -66,14 +65,10 @@ open class NIP90ContentDiscoveryFilter( var collection: MutableSet = mutableSetOf() val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - var json = mapper.readValue(eventContent, Array::class.java) - for (element in json) { - // var test = mapper.readValue(element.toString(), Array::class.java) - // TODO. This is ugly. how to Kotlin? - - var id = element.toString().trimStart('[').trimStart('e').trimStart(',').trimEnd(']').trimStart().trimEnd() - var note = LocalCache.checkGetOrCreateNote(id) - + var etags = mapper.readValue(eventContent, List::class.java) + for (element in etags) { + var tag = mapper.readValue(mapper.writeValueAsString(element), Array::class.java) + val note = LocalCache.checkGetOrCreateNote(tag[1].toString()) if (note != null) { collection.add(note) } @@ -113,19 +108,15 @@ open class NIP90ContentDiscoveryFilter( var note = sorted.first() var eventContent = note.event?.content() - println(eventContent) + // println(eventContent) val collection: MutableSet = mutableSetOf() val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - var json = mapper.readValue(eventContent, Array::class.java) - for (element in json) { - // var test = mapper.readValue(element.toString(), Array::class.java) - // TODO. This is ugly. how to Kotlin? - var id = element.toString().trimStart('[').trimStart('e').trimStart(',').trimEnd(']').trimStart().trimEnd() - - val note = LocalCache.checkGetOrCreateNote(id) + var etags = mapper.readValue(eventContent, Array::class.java) + for (element in etags) { + var tag = mapper.readValue(mapper.writeValueAsString(element), Array::class.java) + val note = LocalCache.checkGetOrCreateNote(tag[1].toString()) if (note != null) { - println(note.id().toHexKey()) collection.add(note) } }