diff --git a/README.md b/README.md index abab32af1..83bfc49a8 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,6 @@ height="80">](https://github.com/vitorpamplona/amethyst/releases) - [ ] Delegated Event Signing (NIP-26, Will not implement) - [x] Text Note References (NIP-27) - [x] Public Chats (NIP-28) -- [x] Inline Metadata (NIP-29) - [x] Custom Emoji (NIP-30) - [x] Event kind summaries (NIP-31) - [ ] Labeling (NIP-32) @@ -82,6 +81,7 @@ height="80">](https://github.com/vitorpamplona/amethyst/releases) - [x] Highlights (NIP-84) - [x] Recommended Application Handlers (NIP-89) - [ ] Data Vending Machine (NIP-90) +- [x] Inline Metadata (NIP-92) - [x] Verifiable file URLs (NIP-94) - [x] Binary Blobs (NIP-95) - [x] HTTP File Storage Integration (NIP-96 Draft) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt index e0f944138..70816cd69 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt @@ -34,8 +34,8 @@ import com.vitorpamplona.amethyst.ui.components.imageExtensions import com.vitorpamplona.amethyst.ui.components.removeQueryParamsForExtensionComparison import com.vitorpamplona.amethyst.ui.components.tagIndex import com.vitorpamplona.amethyst.ui.components.videoExtensions -import com.vitorpamplona.quartz.encoders.Nip29 import com.vitorpamplona.quartz.encoders.Nip54 +import com.vitorpamplona.quartz.encoders.Nip92 import com.vitorpamplona.quartz.events.FileHeaderEvent import com.vitorpamplona.quartz.events.ImmutableListOfLists import kotlinx.collections.immutable.ImmutableList @@ -104,7 +104,7 @@ class RichTextParser() { val removedParamsFromUrl = removeQueryParamsForExtensionComparison(fullUrl) return if (imageExtensions.any { removedParamsFromUrl.endsWith(it) }) { val frags = Nip54().parse(fullUrl) - val tags = Nip29().parse(fullUrl, tags.lists) + val tags = Nip92().parse(fullUrl, tags.lists) ZoomableUrlImage( url = fullUrl, @@ -116,7 +116,7 @@ class RichTextParser() { ) } else if (videoExtensions.any { removedParamsFromUrl.endsWith(it) }) { val frags = Nip54().parse(fullUrl) - val tags = Nip29().parse(fullUrl, tags.lists) + val tags = Nip92().parse(fullUrl, tags.lists) ZoomableUrlVideo( url = fullUrl, description = frags[FileHeaderEvent.ALT] ?: tags[FileHeaderEvent.ALT], diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/encoders/Nip29.kt b/quartz/src/main/java/com/vitorpamplona/quartz/encoders/Nip92.kt similarity index 99% rename from quartz/src/main/java/com/vitorpamplona/quartz/encoders/Nip29.kt rename to quartz/src/main/java/com/vitorpamplona/quartz/encoders/Nip92.kt index 6457ac843..cd8191348 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/encoders/Nip29.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/encoders/Nip92.kt @@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.encoders import com.vitorpamplona.quartz.events.FileHeaderEvent -class Nip29 { +class Nip92 { companion object { private const val IMETA = "imeta" } 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 ce9de89e0..31d690b38 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt @@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.events import androidx.compose.runtime.Immutable import com.vitorpamplona.quartz.encoders.HexKey -import com.vitorpamplona.quartz.encoders.Nip29 +import com.vitorpamplona.quartz.encoders.Nip92 import com.vitorpamplona.quartz.signers.NostrSigner import com.vitorpamplona.quartz.utils.TimeUtils @@ -78,7 +78,7 @@ class ChannelMessageEvent( geohash?.let { tags.addAll(geohashMipMap(it)) } nip94attachments?.let { it.forEach { - Nip29().convertFromFileHeader(it)?.let { + Nip92().convertFromFileHeader(it)?.let { tags.add(it) } } 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 e17753029..d07c40d05 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt @@ -23,7 +23,7 @@ package com.vitorpamplona.quartz.events import androidx.compose.runtime.Immutable import androidx.compose.runtime.Stable import com.vitorpamplona.quartz.encoders.HexKey -import com.vitorpamplona.quartz.encoders.Nip29 +import com.vitorpamplona.quartz.encoders.Nip92 import com.vitorpamplona.quartz.signers.NostrSigner import com.vitorpamplona.quartz.utils.TimeUtils import kotlinx.collections.immutable.ImmutableSet @@ -99,7 +99,7 @@ class ChatMessageEvent( subject?.let { tags.add(arrayOf("subject", it)) } nip94attachments?.let { it.forEach { - Nip29().convertFromFileHeader(it)?.let { + Nip92().convertFromFileHeader(it)?.let { tags.add(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 efeb2441e..d840d57bf 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt @@ -23,7 +23,7 @@ package com.vitorpamplona.quartz.events import androidx.compose.runtime.Immutable import com.vitorpamplona.quartz.encoders.ATag import com.vitorpamplona.quartz.encoders.HexKey -import com.vitorpamplona.quartz.encoders.Nip29 +import com.vitorpamplona.quartz.encoders.Nip92 import com.vitorpamplona.quartz.signers.NostrSigner import com.vitorpamplona.quartz.utils.TimeUtils @@ -91,7 +91,7 @@ class LiveActivitiesChatMessageEvent( geohash?.let { tags.addAll(geohashMipMap(it)) } nip94attachments?.let { it.forEach { - Nip29().convertFromFileHeader(it)?.let { + Nip92().convertFromFileHeader(it)?.let { tags.add(it) } } 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 13d90d82a..fbf512fdf 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt @@ -23,7 +23,7 @@ package com.vitorpamplona.quartz.events import androidx.compose.runtime.Immutable import com.vitorpamplona.quartz.encoders.ATag import com.vitorpamplona.quartz.encoders.HexKey -import com.vitorpamplona.quartz.encoders.Nip29 +import com.vitorpamplona.quartz.encoders.Nip92 import com.vitorpamplona.quartz.signers.NostrSigner import com.vitorpamplona.quartz.utils.TimeUtils @@ -105,7 +105,7 @@ class PollNoteEvent( geohash?.let { tags.addAll(geohashMipMap(it)) } nip94attachments?.let { it.forEach { - Nip29().convertFromFileHeader(it)?.let { + Nip92().convertFromFileHeader(it)?.let { tags.add(it) } } 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 dd1d619cb..5929a6e5d 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt @@ -156,7 +156,7 @@ class PrivateDmEvent( /* Privacy issue: DO NOT ADD THESE TO THE TAGS. nip94attachments?.let { it.forEach { - Nip29().convertFromFileHeader(it)?.let { + Nip92().convertFromFileHeader(it)?.let { tags.add(it) } } 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 ac97f781a..91104aaa8 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/TextNoteEvent.kt @@ -25,7 +25,7 @@ import com.linkedin.urls.detection.UrlDetector import com.linkedin.urls.detection.UrlDetectorOptions import com.vitorpamplona.quartz.encoders.ATag import com.vitorpamplona.quartz.encoders.HexKey -import com.vitorpamplona.quartz.encoders.Nip29 +import com.vitorpamplona.quartz.encoders.Nip92 import com.vitorpamplona.quartz.signers.NostrSigner import com.vitorpamplona.quartz.utils.TimeUtils @@ -107,7 +107,7 @@ class TextNoteEvent( geohash?.let { tags.addAll(geohashMipMap(it)) } nip94attachments?.let { it.forEach { - Nip29().convertFromFileHeader(it)?.let { + Nip92().convertFromFileHeader(it)?.let { tags.add(it) } }