From 0de4cd5c18e76077d77cf68cb5e7084e53093c26 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 22 Nov 2023 12:48:19 -0500 Subject: [PATCH] Adding a geohash mipmap to events. --- .../vitorpamplona/quartz/events/ChannelMessageEvent.kt | 2 +- .../com/vitorpamplona/quartz/events/ChatMessageEvent.kt | 2 +- .../quartz/events/LiveActivitiesChatMessageEvent.kt | 2 +- .../java/com/vitorpamplona/quartz/events/PollNoteEvent.kt | 2 +- .../com/vitorpamplona/quartz/events/PrivateDmEvent.kt | 8 +++++++- .../java/com/vitorpamplona/quartz/events/TextNoteEvent.kt | 2 +- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt index 239b8c5f2..f8ffdf599 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt @@ -62,7 +62,7 @@ class ChannelMessageEvent( tags.add(listOf("zapraiser", "$it")) } geohash?.let { - tags.add(listOf("g", it)) + tags.addAll(geohashMipMap(it)) } signer.sign(createdAt, kind, tags, content, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt index 59e83f895..55d7ddfd6 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt @@ -84,7 +84,7 @@ class ChatMessageEvent( tags.add(listOf("zapraiser", "$it")) } geohash?.let { - tags.add(listOf("g", it)) + tags.addAll(geohashMipMap(it)) } subject?.let { tags.add(listOf("subject", it)) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt index 2a8fa8733..e43644211 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt @@ -78,7 +78,7 @@ class LiveActivitiesChatMessageEvent( tags.add(listOf("zapraiser", "$it")) } geohash?.let { - tags.add(listOf("g", it)) + tags.addAll(geohashMipMap(it)) } signer.sign(createdAt, kind, tags, content, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt index 963498349..b8bccf6fe 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt @@ -97,7 +97,7 @@ class PollNoteEvent( tags.add(listOf("zapraiser", "$it")) } geohash?.let { - tags.add(listOf("g", it)) + tags.addAll(geohashMipMap(it)) } signer.sign(createdAt, kind, tags, msg, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt index 46802bf0c..b4dda2c42 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt @@ -129,7 +129,7 @@ class PrivateDmEvent( tags.add(listOf("zapraiser", "$it")) } geohash?.let { - tags.add(listOf("g", it)) + tags.addAll(geohashMipMap(it)) } signer.nip04Encrypt(message, recipientPubKey) { content -> @@ -138,3 +138,9 @@ class PrivateDmEvent( } } } + +fun geohashMipMap(geohash: String): List> { + return geohash.indices.asSequence().map { + listOf("g", geohash.substring(0, it+1)) + }.toList().reversed() +} \ No newline at end of file diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt index c8fb02d38..7014d555d 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt @@ -94,7 +94,7 @@ class TextNoteEvent( tags.add(listOf("zapraiser", "$it")) } geohash?.let { - tags.add(listOf("g", it)) + tags.addAll(geohashMipMap(it)) } signer.sign(createdAt, kind, tags, msg, onReady)