From 2d17200f03001ce961c27d8dbb3a821de9b63e2b Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 15 Mar 2024 19:29:27 -0400 Subject: [PATCH] Adds two additional helper methods to ATags and Classifieds. --- .../com/vitorpamplona/quartz/encoders/ATag.kt | 9 +++++++++ .../quartz/events/ClassifiedsEvent.kt | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/encoders/ATag.kt b/quartz/src/main/java/com/vitorpamplona/quartz/encoders/ATag.kt index c04e664db..6c3f3410c 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/encoders/ATag.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/encoders/ATag.kt @@ -69,6 +69,15 @@ data class ATag(val kind: Int, val pubKeyHex: String, val dTag: String, val rela } } + fun parseAtagUnckecked(atag: String): ATag? { + return try { + val parts = atag.split(":") + ATag(parts[0].toInt(), parts[1], parts[2], null) + } catch (t: Throwable) { + null + } + } + fun parseNAddr(naddr: String): ATag? { try { val key = naddr.removePrefix("nostr:") diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt index 5b8597400..cd8bff93e 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt @@ -52,6 +52,26 @@ class ClassifiedsEvent( fun location() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1) + fun isWellFormed(): Boolean { + var hasImage = false + var hasTitle = false + var hasPrice = false + + tags.forEach { + if (it.size > 1) { + if (it[0] == "image") { + hasImage = true + } else if (it[0] == "title") { + hasTitle = true + } else if (it[0] == "price") { + hasPrice = true + } + } + } + + return hasImage && hasPrice && hasTitle + } + fun publishedAt() = try { tags.firstOrNull { it.size > 1 && it[0] == "published_at" }?.get(1)?.toLongOrNull()