From fccfb2aaba8956e75ef7c291cb6f16a42ba02553 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 15 Dec 2023 18:19:37 -0500 Subject: [PATCH] Support for NIP-31 alt tags --- .../com/vitorpamplona/amethyst/model/Account.kt | 4 ++-- .../ui/actions/NewUserMetadataViewModel.kt | 2 +- .../quartz/events/AdvertisedRelayListEvent.kt | 2 +- .../quartz/events/AppDefinitionEvent.kt | 5 ++++- .../quartz/events/AppRecommendationEvent.kt | 5 ++++- .../quartz/events/AudioHeaderEvent.kt | 4 +++- .../vitorpamplona/quartz/events/AudioTrackEvent.kt | 4 +++- .../vitorpamplona/quartz/events/BadgeAwardEvent.kt | 1 + .../quartz/events/BadgeDefinitionEvent.kt | 1 + .../quartz/events/BadgeProfilesEvent.kt | 1 + .../quartz/events/BookmarkListEvent.kt | 10 +++++++++- .../quartz/events/CalendarDateSlotEvent.kt | 3 ++- .../vitorpamplona/quartz/events/CalendarEvent.kt | 3 ++- .../quartz/events/CalendarRSVPEvent.kt | 3 ++- .../quartz/events/CalendarTimeSlotEvent.kt | 3 ++- .../quartz/events/ChannelCreateEvent.kt | 6 +++++- .../quartz/events/ChannelHideMessageEvent.kt | 5 +++-- .../quartz/events/ChannelMessageEvent.kt | 4 ++++ .../quartz/events/ChannelMetadataEvent.kt | 6 +++++- .../quartz/events/ChannelMuteUserEvent.kt | 5 +++-- .../quartz/events/ChatMessageEvent.kt | 2 ++ .../quartz/events/ClassifiedsEvent.kt | 2 ++ .../quartz/events/CommunityDefinitionEvent.kt | 6 ++++-- .../quartz/events/CommunityPostApprovalEvent.kt | 4 +++- .../quartz/events/ContactListEvent.kt | 9 ++++++++- .../vitorpamplona/quartz/events/DeletionEvent.kt | 3 ++- .../vitorpamplona/quartz/events/EmojiPackEvent.kt | 2 ++ .../quartz/events/EmojiPackSelectionEvent.kt | 3 +++ .../vitorpamplona/quartz/events/FileHeaderEvent.kt | 3 ++- .../quartz/events/FileServersEvent.kt | 2 ++ .../quartz/events/FileStorageEvent.kt | 4 +++- .../quartz/events/FileStorageHeaderEvent.kt | 3 ++- .../quartz/events/GenericRepostEvent.kt | 14 ++++++++------ .../vitorpamplona/quartz/events/GiftWrapEvent.kt | 3 ++- .../vitorpamplona/quartz/events/HighlightEvent.kt | 3 ++- .../events/LiveActivitiesChatMessageEvent.kt | 2 ++ .../quartz/events/LiveActivitiesEvent.kt | 3 ++- .../com/vitorpamplona/quartz/events/LnZapEvent.kt | 1 + .../quartz/events/LnZapPaymentRequestEvent.kt | 3 ++- .../quartz/events/LnZapPaymentResponseEvent.kt | 1 + .../quartz/events/LnZapPrivateEvent.kt | 1 + .../quartz/events/LnZapRequestEvent.kt | 4 +++- .../quartz/events/LongTextNoteEvent.kt | 5 +++++ .../vitorpamplona/quartz/events/MetadataEvent.kt | 5 +++++ .../vitorpamplona/quartz/events/MuteListEvent.kt | 9 ++++++++- .../com/vitorpamplona/quartz/events/NNSEvent.kt | 3 ++- .../vitorpamplona/quartz/events/PeopleListEvent.kt | 9 ++++++++- .../vitorpamplona/quartz/events/PinListEvent.kt | 2 ++ .../vitorpamplona/quartz/events/PollNoteEvent.kt | 2 ++ .../vitorpamplona/quartz/events/PrivateDmEvent.kt | 3 ++- .../vitorpamplona/quartz/events/RelaySetEvent.kt | 2 ++ .../com/vitorpamplona/quartz/events/ReportEvent.kt | 7 +++++-- .../com/vitorpamplona/quartz/events/RepostEvent.kt | 5 ++++- 53 files changed, 162 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index ba1309fa7..5e5a38e08 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -477,10 +477,10 @@ class Account( } } - suspend fun sendNewUserMetadata(toString: String, identities: List) { + suspend fun sendNewUserMetadata(toString: String, newName: String, identities: List) { if (!isWriteable()) return - MetadataEvent.create(toString, identities, signer) { + MetadataEvent.create(toString, newName, identities, signer) { Client.send(it) LocalCache.justConsume(it, null) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt index 881bfdeaf..f19471f47 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt @@ -124,7 +124,7 @@ class NewUserMetadataViewModel : ViewModel() { ObjectMapper().writeValue(writer, currentJson) viewModelScope.launch(Dispatchers.IO) { - account.sendNewUserMetadata(writer.buffer.toString(), newClaims) + account.sendNewUserMetadata(writer.buffer.toString(), displayName.value.trim(), newClaims) } clear() } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt index 687fdd88d..24dd2174c 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/AdvertisedRelayListEvent.kt @@ -51,7 +51,7 @@ class AdvertisedRelayListEvent( } else { arrayOf(it.relayUrl, it.type.code) } - }.toTypedArray() + }.plusElement(arrayOf("alt", "Relay list event with ${list.size} relays")).toTypedArray() val msg = "" signer.sign(createdAt, kind, tags, msg, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/AppDefinitionEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/AppDefinitionEvent.kt index 39c20096b..230cbe098 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/AppDefinitionEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/AppDefinitionEvent.kt @@ -50,11 +50,14 @@ class AppDefinitionEvent( const val kind = 31990 fun create( + details: UserMetadata, signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (AppDefinitionEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf( + arrayOf("alt", "App definition event for ${details.name}") + ) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/AppRecommendationEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/AppRecommendationEvent.kt index f3a02dba3..e6bbfb27b 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/AppRecommendationEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/AppRecommendationEvent.kt @@ -21,13 +21,16 @@ class AppRecommendationEvent( companion object { const val kind = 31989 + const val alt = "App recommendations by the author" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (AppRecommendationEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf( + arrayOf("alt", alt) + ) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioHeaderEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioHeaderEvent.kt index d9fa178a2..a455f3177 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioHeaderEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioHeaderEvent.kt @@ -24,6 +24,7 @@ class AudioHeaderEvent( companion object { const val kind = 1808 + const val alt = "Audio header" private const val DOWNLOAD_URL = "download_url" private const val STREAM_URL = "stream_url" @@ -49,7 +50,8 @@ class AudioHeaderEvent( } else { null } - } + }, + arrayOf("alt", alt) ).toTypedArray() signer.sign(createdAt, kind, tags, description, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioTrackEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioTrackEvent.kt index 77b47cda5..6cf46e1c4 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioTrackEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/AudioTrackEvent.kt @@ -28,6 +28,7 @@ class AudioTrackEvent( companion object { const val kind = 31337 + const val alt = "Audio track" private const val TYPE = "c" private const val PRICE = "price" @@ -50,7 +51,8 @@ class AudioTrackEvent( arrayOf(TYPE, type), price?.let { arrayOf(PRICE, it) }, cover?.let { arrayOf(COVER, it) }, - subject?.let { arrayOf(SUBJECT, it) } + subject?.let { arrayOf(SUBJECT, it) }, + arrayOf("alt", alt) ).toTypedArray() signer.sign(createdAt, kind, tags, "", onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeAwardEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeAwardEvent.kt index dfddf65af..3a8cc25f2 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeAwardEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeAwardEvent.kt @@ -18,5 +18,6 @@ class BadgeAwardEvent( companion object { const val kind = 8 + const val alt = "Badge award" } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeDefinitionEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeDefinitionEvent.kt index e6b4d9456..5a5ff9555 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeDefinitionEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeDefinitionEvent.kt @@ -20,5 +20,6 @@ class BadgeDefinitionEvent( companion object { const val kind = 30009 + const val alt = "Badge definition" } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeProfilesEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeProfilesEvent.kt index 92db2f6a7..a7275269a 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeProfilesEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/BadgeProfilesEvent.kt @@ -24,5 +24,6 @@ class BadgeProfilesEvent( companion object { const val kind = 30008 const val standardDTAg = "profile_badges" + const val alt = "List of accepted badges by the author" } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/BookmarkListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/BookmarkListEvent.kt index 259ac747e..1d5fb9b01 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/BookmarkListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/BookmarkListEvent.kt @@ -19,6 +19,7 @@ class BookmarkListEvent( ) : GeneralListEvent(id, pubKey, createdAt, kind, tags, content, sig) { companion object { const val kind = 30001 + const val alt = "List of bookmarks" fun addEvent( earlierVersion: BookmarkListEvent?, @@ -166,7 +167,13 @@ class BookmarkListEvent( createdAt: Long = TimeUtils.now(), onReady: (BookmarkListEvent) -> Unit ) { - signer.sign(createdAt, kind, tags, content, onReady) + val newTags = if (tags.any { it.size > 1 && it[0] == "alt" }) { + tags + } else { + tags + arrayOf("alt", alt) + } + + signer.sign(createdAt, kind, newTags, content, onReady) } fun create( @@ -196,6 +203,7 @@ class BookmarkListEvent( addresses?.forEach { tags.add(arrayOf("a", it.toTag())) } + tags.add(arrayOf("alt", alt)) createPrivateTags(privEvents, privUsers, privAddresses, signer) { content -> signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarDateSlotEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarDateSlotEvent.kt index 767ce995d..0125afe56 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarDateSlotEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarDateSlotEvent.kt @@ -27,13 +27,14 @@ class CalendarDateSlotEvent( companion object { const val kind = 31922 + const val alt = "Full-day calendar event" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (CalendarDateSlotEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarEvent.kt index 33bc3c6cd..b6ab5bd54 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarEvent.kt @@ -19,13 +19,14 @@ class CalendarEvent( ) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) { companion object { const val kind = 31924 + const val alt = "Calendar" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (CalendarEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarRSVPEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarRSVPEvent.kt index 757e47caf..a1eedf370 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarRSVPEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarRSVPEvent.kt @@ -29,13 +29,14 @@ class CalendarRSVPEvent( companion object { const val kind = 31925 + const val alt = "Calendar event's invitation response" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (CalendarRSVPEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarTimeSlotEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarTimeSlotEvent.kt index cf33e5280..376fda943 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarTimeSlotEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/CalendarTimeSlotEvent.kt @@ -31,13 +31,14 @@ class CalendarTimeSlotEvent( companion object { const val kind = 31923 + const val alt = "Calendar time-slot event" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (CalendarTimeSlotEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelCreateEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelCreateEvent.kt index 681ca49f3..71305b9b5 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelCreateEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelCreateEvent.kt @@ -65,7 +65,11 @@ class ChannelCreateEvent( "" } - signer.sign(createdAt, kind, emptyArray(), content, onReady) + val tags = arrayOf( + arrayOf("alt", "Public chat creation event ${channelInfo?.name?.let { "about ${it}" }}") + ) + + signer.sign(createdAt, kind, tags, content, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelHideMessageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelHideMessageEvent.kt index f2242fb11..6704a2840 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelHideMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelHideMessageEvent.kt @@ -26,6 +26,7 @@ class ChannelHideMessageEvent( companion object { const val kind = 43 + const val alt = "Hide message instruction for public chats" fun create( reason: String, @@ -35,9 +36,9 @@ class ChannelHideMessageEvent( onReady: (ChannelHideMessageEvent) -> Unit ) { val tags = - messagesToHide?.map { + (messagesToHide?.map { arrayOf("e", it) - }?.toTypedArray() ?: emptyArray() + }?.toTypedArray() ?: emptyArray()) + arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, reason, onReady) } 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 1d3d1f152..b561d20c6 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMessageEvent.kt @@ -25,6 +25,7 @@ class ChannelMessageEvent( companion object { const val kind = 42 + const val alt = "Public chat message" fun create( message: String, @@ -66,6 +67,9 @@ class ChannelMessageEvent( //tags.add(arrayOf("nip94", it.toJson())) } } + tags.add( + arrayOf("alt", alt) + ) signer.sign(createdAt, kind, tags.toTypedArray(), message, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMetadataEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMetadataEvent.kt index 9fae95bae..6c53095b8 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMetadataEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMetadataEvent.kt @@ -30,6 +30,7 @@ class ChannelMetadataEvent( companion object { const val kind = 41 + const val alt = "This is a public chat definition update" fun create( name: String?, @@ -65,7 +66,10 @@ class ChannelMetadataEvent( "" } - val tags = listOf(arrayOf("e", originalChannelIdHex, "", "root")) + val tags = listOf( + arrayOf("e", originalChannelIdHex, "", "root"), + arrayOf("alt", "Public chat update to ${newChannelInfo?.name}") + ) signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMuteUserEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMuteUserEvent.kt index 16a7e1cdc..03f0beff3 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMuteUserEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChannelMuteUserEvent.kt @@ -26,6 +26,7 @@ class ChannelMuteUserEvent( companion object { const val kind = 44 + const val alt = "Mute user instruction for public chats" fun create( reason: String, @@ -35,9 +36,9 @@ class ChannelMuteUserEvent( onReady: (ChannelMuteUserEvent) -> Unit ) { val content = reason - val tags = usersToMute?.map { + val tags = (usersToMute?.map { arrayOf("p", it) - }?.toTypedArray() ?: emptyArray() + }?.toTypedArray() ?: emptyArray()) + arrayOf(arrayOf("alt", alt)) 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 5a9264aba..a5b418453 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ChatMessageEvent.kt @@ -49,6 +49,7 @@ class ChatMessageEvent( companion object { const val kind = 14 + const val alt = "Direct message" fun create( msg: String, @@ -89,6 +90,7 @@ class ChatMessageEvent( subject?.let { tags.add(arrayOf("subject", it)) } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady) } 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 895379301..4f0cd15d0 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ClassifiedsEvent.kt @@ -43,6 +43,7 @@ class ClassifiedsEvent( companion object { const val kind = 30402 private val imageExtensions = listOf("png", "jpg", "gif", "bmp", "jpeg", "webp", "svg") + const val alt = "Classifieds listing" fun create( dTag: String, @@ -145,6 +146,7 @@ class ClassifiedsEvent( //tags.add(arrayOf("nip94", it.toJson())) } } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), message, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityDefinitionEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityDefinitionEvent.kt index 570816bf6..b847de624 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityDefinitionEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityDefinitionEvent.kt @@ -25,14 +25,16 @@ class CommunityDefinitionEvent( companion object { const val kind = 34550 + const val alt = "Community definition" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (CommunityDefinitionEvent) -> Unit ) { - val tags = emptyArray>() - signer.sign(createdAt, kind, tags, "", onReady) + val tags = mutableListOf>() + tags.add(arrayOf("alt", alt)) + signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady) } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityPostApprovalEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityPostApprovalEvent.kt index 346f8c304..5ced06d7f 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityPostApprovalEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/CommunityPostApprovalEvent.kt @@ -45,6 +45,7 @@ class CommunityPostApprovalEvent( companion object { const val kind = 4550 + const val alt = "Community post approval" fun create( approvedPost: Event, @@ -59,8 +60,9 @@ class CommunityPostApprovalEvent( val replyToPost = arrayOf("e", approvedPost.id()) val replyToAuthor = arrayOf("p", approvedPost.pubKey()) val innerKind = arrayOf("k", "${approvedPost.kind()}") + val alt = arrayOf("alt", alt) - val tags: Array> = arrayOf(communities, replyToPost, replyToAuthor, innerKind) + val tags: Array> = arrayOf(communities, replyToPost, replyToAuthor, innerKind, alt) signer.sign(createdAt, kind, tags, content, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ContactListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ContactListEvent.kt index 77c245d90..4b5452f90 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ContactListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ContactListEvent.kt @@ -92,6 +92,7 @@ class ContactListEvent( companion object { const val kind = 3 + const val alt = "Follow List" fun createFromScratch( followUsers: List, @@ -282,7 +283,13 @@ class ContactListEvent( createdAt: Long = TimeUtils.now(), onReady: (ContactListEvent) -> Unit ) { - signer.sign(createdAt, kind, tags, content, onReady) + val newTags = if (tags.any { it.size > 1 && it[0] == "alt" }) { + tags + } else { + tags + arrayOf("alt", alt) + } + + signer.sign(createdAt, kind, newTags, content, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/DeletionEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/DeletionEvent.kt index fd7788ead..eb90bac8a 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/DeletionEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/DeletionEvent.kt @@ -21,10 +21,11 @@ class DeletionEvent( companion object { const val kind = 5 + const val alt = "Deletion event" fun create(deleteEvents: List, signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (DeletionEvent) -> Unit) { val content = "" - val tags = deleteEvents.map { arrayOf("e", it) }.toTypedArray() + val tags = deleteEvents.map { arrayOf("e", it) }.plusElement(arrayOf("alt", alt)).toTypedArray() signer.sign(createdAt, kind, tags, content, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackEvent.kt index 8e74178bc..c5f162598 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackEvent.kt @@ -19,6 +19,7 @@ class EmojiPackEvent( companion object { const val kind = 30030 + const val alt = "Emoji pack" fun create( name: String = "", @@ -30,6 +31,7 @@ class EmojiPackEvent( val tags = mutableListOf>() tags.add(arrayOf("d", name)) + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackSelectionEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackSelectionEvent.kt index 46887c78d..52486a1a2 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackSelectionEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/EmojiPackSelectionEvent.kt @@ -23,6 +23,7 @@ class EmojiPackSelectionEvent( companion object { const val kind = 10030 const val fixedDTag = "" + const val alt = "Emoji selection" fun create( listOfEmojiPacks: List?, @@ -37,6 +38,8 @@ class EmojiPackSelectionEvent( tags.add(arrayOf("a", it.toTag())) } + tags.add(arrayOf("alt", alt)) + signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileHeaderEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileHeaderEvent.kt index 4c177d6fc..1a5214430 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileHeaderEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileHeaderEvent.kt @@ -35,6 +35,7 @@ class FileHeaderEvent( companion object { const val kind = 1063 + const val altDescription = "Verifiable file url" private const val URL = "url" private const val ENCRYPTION_KEY = "aes-256-gcm" @@ -70,7 +71,7 @@ class FileHeaderEvent( arrayOf(URL, url), magnetUri?.let { arrayOf(MAGNET_URI, it) }, mimeType?.let { arrayOf(MIME_TYPE, it) }, - alt?.ifBlank { null }?.let { arrayOf(ALT, it) }, + alt?.ifBlank { null }?.let { arrayOf(ALT, it) } ?: arrayOf("alt", altDescription), hash?.let { arrayOf(HASH, it) }, size?.let { arrayOf(FILE_SIZE, it) }, dimensions?.let { arrayOf(DIMENSION, it) }, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileServersEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileServersEvent.kt index 9f5480dda..0e6846a05 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileServersEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileServersEvent.kt @@ -23,6 +23,7 @@ class FileServersEvent( companion object { const val kind = 10096 const val fixedDTag = "" + const val alt = "File servers used by the author" fun create( listOfServers: List, @@ -36,6 +37,7 @@ class FileServersEvent( listOfServers.forEach { tags.add(arrayOf("server", it)) } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageEvent.kt index eb283328d..646d85680 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageEvent.kt @@ -33,6 +33,7 @@ class FileStorageEvent( companion object { const val kind = 1064 + const val alt = "Binary data" private const val TYPE = "type" private const val DECRYPT = "decrypt" @@ -49,7 +50,8 @@ class FileStorageEvent( onReady: (FileStorageEvent) -> Unit ) { val tags = listOfNotNull( - arrayOf(TYPE, mimeType) + arrayOf(TYPE, mimeType), + arrayOf("alt", alt) ) val content = encode(data) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageHeaderEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageHeaderEvent.kt index 84e31d338..be079f93d 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageHeaderEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/FileStorageHeaderEvent.kt @@ -31,6 +31,7 @@ class FileStorageHeaderEvent( companion object { const val kind = 1065 + const val altDescription = "Descriptors for a binary file" private const val ENCRYPTION_KEY = "aes-256-gcm" private const val MIME_TYPE = "m" @@ -62,7 +63,7 @@ class FileStorageHeaderEvent( arrayOf("e", storageEvent.id), mimeType?.let { arrayOf(MIME_TYPE, mimeType) }, hash?.let { arrayOf(HASH, it) }, - alt?.let { arrayOf(ALT, it) }, + alt?.let { arrayOf(ALT, it) } ?: arrayOf("alt", altDescription), size?.let { arrayOf(FILE_SIZE, it) }, dimensions?.let { arrayOf(DIMENSION, it) }, blurhash?.let { arrayOf(BLUR_HASH, it) }, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/GenericRepostEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/GenericRepostEvent.kt index d0759611b..6815ee2a9 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/GenericRepostEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/GenericRepostEvent.kt @@ -29,6 +29,7 @@ class GenericRepostEvent( companion object { const val kind = 16 + const val alt = "Generic repost" fun create( boostedPost: EventInterface, @@ -38,16 +39,17 @@ class GenericRepostEvent( ) { val content = boostedPost.toJson() - val replyToPost = arrayOf("e", boostedPost.id()) - val replyToAuthor = arrayOf("p", boostedPost.pubKey()) - - var tags: List> = listOf(replyToPost, replyToAuthor) + val tags = mutableListOf( + arrayOf("e", boostedPost.id()), + arrayOf("p", boostedPost.pubKey()) + ) if (boostedPost is AddressableEvent) { - tags = tags + listOf(arrayOf("a", boostedPost.address().toTag())) + tags.add(arrayOf("a", boostedPost.address().toTag())) } - tags = tags + listOf(arrayOf("k", "${boostedPost.kind()}")) + tags.add(arrayOf("k", "${boostedPost.kind()}")) + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/GiftWrapEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/GiftWrapEvent.kt index 0ca442d72..9c36291da 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/GiftWrapEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/GiftWrapEvent.kt @@ -62,6 +62,7 @@ class GiftWrapEvent( companion object { const val kind = 1059 + const val alt = "Encrypted event" fun create( event: Event, @@ -71,7 +72,7 @@ class GiftWrapEvent( ) { val signer = NostrSignerInternal(KeyPair()) // GiftWrap is always a random key val serializedContent = toJson(event) - val tags = arrayOf(arrayOf("p", recipientPubKey)) + val tags = arrayOf(arrayOf("p", recipientPubKey), arrayOf("alt", alt)) signer.nip44Encrypt(serializedContent, recipientPubKey) { signer.sign(createdAt, kind, tags, it, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/HighlightEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/HighlightEvent.kt index ee15aa8e0..3e29e5cfa 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/HighlightEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/HighlightEvent.kt @@ -25,6 +25,7 @@ class HighlightEvent( companion object { const val kind = 9802 + const val alt = "Highlight/quote event" fun create( msg: String, @@ -32,7 +33,7 @@ class HighlightEvent( createdAt: Long = TimeUtils.now(), onReady: (HighlightEvent) -> Unit ) { - signer.sign(createdAt, kind, emptyArray(), msg, onReady) + signer.sign(createdAt, kind, arrayOf(arrayOf("alt", alt)), msg, onReady) } } } 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 eeca36235..b52c62ddd 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesChatMessageEvent.kt @@ -44,6 +44,7 @@ class LiveActivitiesChatMessageEvent( companion object { const val kind = 1311 + const val alt = "Live activity chat message" fun create( message: String, @@ -86,6 +87,7 @@ class LiveActivitiesChatMessageEvent( //tags.add(arrayOf("nip94", it.toJson())) } } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesEvent.kt index 770e27767..469056485 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LiveActivitiesEvent.kt @@ -45,6 +45,7 @@ class LiveActivitiesEvent( companion object { const val kind = 30311 + const val alt = "Live activity event" const val STATUS_LIVE = "live" const val STATUS_PLANNED = "planned" @@ -55,7 +56,7 @@ class LiveActivitiesEvent( createdAt: Long = TimeUtils.now(), onReady: (LiveActivitiesEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapEvent.kt index c26b9892d..ae8dc8266 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapEvent.kt @@ -63,6 +63,7 @@ class LnZapEvent( companion object { const val kind = 9735 + const val alt = "Zap event" } enum class ZapType() { diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentRequestEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentRequestEvent.kt index 5bab9c113..4eeb6ab50 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentRequestEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentRequestEvent.kt @@ -56,6 +56,7 @@ class LnZapPaymentRequestEvent( companion object { const val kind = 23194 + const val alt = "Zap payment request" fun create( lnInvoice: String, @@ -66,7 +67,7 @@ class LnZapPaymentRequestEvent( ) { val serializedRequest = mapper.writeValueAsString(PayInvoiceMethod.create(lnInvoice)) - val tags = arrayOf(arrayOf("p", walletServicePubkey)) + val tags = arrayOf(arrayOf("p", walletServicePubkey), arrayOf("alt", alt)) signer.nip04Encrypt( serializedRequest, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentResponseEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentResponseEvent.kt index 98cc288f2..ed28ddb26 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentResponseEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPaymentResponseEvent.kt @@ -63,6 +63,7 @@ class LnZapPaymentResponseEvent( companion object { const val kind = 23195 + const val alt = "Zap payment response" } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPrivateEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPrivateEvent.kt index ffb8ff5b5..a3600583a 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPrivateEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapPrivateEvent.kt @@ -28,6 +28,7 @@ class LnZapPrivateEvent( companion object { const val kind = 9733 + const val alt = "Private zap" fun create( signer: NostrSigner, diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapRequestEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapRequestEvent.kt index cc4540aa0..83d494182 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapRequestEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LnZapRequestEvent.kt @@ -74,6 +74,7 @@ class LnZapRequestEvent( companion object { const val kind = 9734 + const val alt = "Zap request" fun create( originalNote: EventInterface, @@ -91,7 +92,8 @@ class LnZapRequestEvent( var tags = listOf( arrayOf("e", originalNote.id()), arrayOf("p", toUserPubHex ?: originalNote.pubKey()), - arrayOf("relays") + relays + arrayOf("relays") + relays, + arrayOf("alt", alt) ) if (originalNote is AddressableEvent) { tags = tags + listOf(arrayOf("a", originalNote.address().toTag())) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/LongTextNoteEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/LongTextNoteEvent.kt index b67d98183..c26b8abcc 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/LongTextNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/LongTextNoteEvent.kt @@ -36,6 +36,7 @@ class LongTextNoteEvent( fun create( msg: String, + title: String?, replyTos: List?, mentions: List?, signer: NostrSigner, @@ -49,6 +50,10 @@ class LongTextNoteEvent( mentions?.forEach { tags.add(arrayOf("p", it)) } + title?.let { + tags.add(arrayOf("title", it)) + } + tags.add(arrayOf("alt","Blog post: $title")) signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt index 62636751d..7406539c5 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt @@ -152,6 +152,7 @@ class MetadataEvent( fun create( contactMetaData: String, + newName: String, identities: List, signer: NostrSigner, createdAt: Long = TimeUtils.now(), @@ -159,6 +160,10 @@ class MetadataEvent( ) { val tags = mutableListOf>() + tags.add( + arrayOf("alt", "User profile for ${newName}") + ) + identities.forEach { tags.add(arrayOf("i", it.platformIdentity(), it.proof)) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/MuteListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/MuteListEvent.kt index eaede330f..280c1a8db 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/MuteListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/MuteListEvent.kt @@ -54,6 +54,7 @@ class MuteListEvent( companion object { const val kind = 10000 const val fixedDTag = "" + const val alt = "Mute List" fun blockListFor(pubKeyHex: HexKey): String { return "10000:$pubKeyHex:" @@ -209,7 +210,13 @@ class MuteListEvent( createdAt: Long = TimeUtils.now(), onReady: (MuteListEvent) -> Unit ) { - signer.sign(createdAt, kind, tags, content, onReady) + val newTags = if (tags.any { it.size > 1 && it[0] == "alt" }) { + tags + } else { + tags + arrayOf("alt", alt) + } + + signer.sign(createdAt, kind, newTags, content, onReady) } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/NNSEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/NNSEvent.kt index 9f1066dd6..50ae3aa40 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/NNSEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/NNSEvent.kt @@ -23,13 +23,14 @@ class NNSEvent( companion object { const val kind = 30053 + const val alt = "DNS records" fun create( signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (NNSEvent) -> Unit ) { - val tags = emptyArray>() + val tags = arrayOf(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags, "", onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/PeopleListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/PeopleListEvent.kt index 142ef05bd..c9d689791 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PeopleListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PeopleListEvent.kt @@ -87,6 +87,7 @@ class PeopleListEvent( companion object { const val kind = 30000 const val blockList = "mute" + const val alt = "List of people" fun blockListFor(pubKeyHex: HexKey): String { return "30000:$pubKeyHex:$blockList" @@ -242,7 +243,13 @@ class PeopleListEvent( createdAt: Long = TimeUtils.now(), onReady: (PeopleListEvent) -> Unit ) { - signer.sign(createdAt, kind, tags, content, onReady) + val newTags = if (tags.any { it.size > 1 && it[0] == "alt" }) { + tags + } else { + tags + arrayOf("alt", alt) + } + + signer.sign(createdAt, kind, newTags, content, onReady) } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/PinListEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/PinListEvent.kt index 15616809a..4b08a8c87 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PinListEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PinListEvent.kt @@ -22,6 +22,7 @@ class PinListEvent( companion object { const val kind = 33888 + const val alt = "Pinned Posts" fun create( pins: List, @@ -33,6 +34,7 @@ class PinListEvent( pins.forEach { tags.add(arrayOf("pin", it)) } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), "", 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 732c72e6f..0d8968581 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PollNoteEvent.kt @@ -43,6 +43,7 @@ class PollNoteEvent( companion object { const val kind = 6969 + const val alt = "Poll event" fun create( msg: String, @@ -105,6 +106,7 @@ class PollNoteEvent( //tags.add(arrayOf("nip94", it.toJson())) } } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), 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 bcd8f2fd4..26ef0e412 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/PrivateDmEvent.kt @@ -90,7 +90,7 @@ class PrivateDmEvent( companion object { const val kind = 4 - + const val alt = "Private Message" const val nip18Advertisement = "[//]: # (nip18)\n" fun create( @@ -131,6 +131,7 @@ class PrivateDmEvent( geohash?.let { tags.addAll(geohashMipMap(it)) } + tags.add(arrayOf("alt", alt)) signer.nip04Encrypt(message, recipientPubKey) { content -> signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/RelaySetEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/RelaySetEvent.kt index ff830a6fd..c462fa14b 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/RelaySetEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/RelaySetEvent.kt @@ -22,6 +22,7 @@ class RelaySetEvent( companion object { const val kind = 30022 + const val alt = "Relay list" fun create( relays: List, @@ -33,6 +34,7 @@ class RelaySetEvent( relays.forEach { tags.add(arrayOf("r", it)) } + tags.add(arrayOf("alt", alt)) signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady) } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/ReportEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/ReportEvent.kt index 86bfc211d..7e84fa2dd 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/ReportEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/ReportEvent.kt @@ -69,9 +69,11 @@ class ReportEvent( var tags: Array> = arrayOf(reportPostTag, reportAuthorTag) if (reportedPost is AddressableEvent) { - tags = tags + listOf(arrayOf("a", reportedPost.address().toTag())) + tags += listOf(arrayOf("a", reportedPost.address().toTag())) } + tags += listOf(arrayOf("alt", "Report for ${type.name}")) + signer.sign(createdAt, kind, tags, content, onReady) } @@ -85,8 +87,9 @@ class ReportEvent( val content = "" val reportAuthorTag = arrayOf("p", reportedUser, type.name.lowercase()) + val alt = arrayOf("alt", "Report for ${type.name}") - val tags: Array> = arrayOf(reportAuthorTag) + val tags: Array> = arrayOf(reportAuthorTag, alt) signer.sign(createdAt, kind, tags, content, onReady) } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/RepostEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/RepostEvent.kt index b67a45f60..0722bf053 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/RepostEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/RepostEvent.kt @@ -29,6 +29,7 @@ class RepostEvent( companion object { const val kind = 6 + const val alt = "Repost event" fun create( boostedPost: EventInterface, @@ -44,9 +45,11 @@ class RepostEvent( var tags: Array> = arrayOf(replyToPost, replyToAuthor) if (boostedPost is AddressableEvent) { - tags = tags + listOf(arrayOf("a", boostedPost.address().toTag())) + tags += listOf(arrayOf("a", boostedPost.address().toTag())) } + tags += listOf(arrayOf("alt", alt)) + signer.sign(createdAt, kind, tags, content, onReady) } }