Support for NIP-31 alt tags
This commit is contained in:
@@ -477,10 +477,10 @@ class Account(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun sendNewUserMetadata(toString: String, identities: List<IdentityClaim>) {
|
suspend fun sendNewUserMetadata(toString: String, newName: String, identities: List<IdentityClaim>) {
|
||||||
if (!isWriteable()) return
|
if (!isWriteable()) return
|
||||||
|
|
||||||
MetadataEvent.create(toString, identities, signer) {
|
MetadataEvent.create(toString, newName, identities, signer) {
|
||||||
Client.send(it)
|
Client.send(it)
|
||||||
LocalCache.justConsume(it, null)
|
LocalCache.justConsume(it, null)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ class NewUserMetadataViewModel : ViewModel() {
|
|||||||
ObjectMapper().writeValue(writer, currentJson)
|
ObjectMapper().writeValue(writer, currentJson)
|
||||||
|
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
account.sendNewUserMetadata(writer.buffer.toString(), newClaims)
|
account.sendNewUserMetadata(writer.buffer.toString(), displayName.value.trim(), newClaims)
|
||||||
}
|
}
|
||||||
clear()
|
clear()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class AdvertisedRelayListEvent(
|
|||||||
} else {
|
} else {
|
||||||
arrayOf(it.relayUrl, it.type.code)
|
arrayOf(it.relayUrl, it.type.code)
|
||||||
}
|
}
|
||||||
}.toTypedArray()
|
}.plusElement(arrayOf("alt", "Relay list event with ${list.size} relays")).toTypedArray()
|
||||||
val msg = ""
|
val msg = ""
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags, msg, onReady)
|
signer.sign(createdAt, kind, tags, msg, onReady)
|
||||||
|
|||||||
@@ -50,11 +50,14 @@ class AppDefinitionEvent(
|
|||||||
const val kind = 31990
|
const val kind = 31990
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
|
details: UserMetadata,
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (AppDefinitionEvent) -> Unit
|
onReady: (AppDefinitionEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(
|
||||||
|
arrayOf("alt", "App definition event for ${details.name}")
|
||||||
|
)
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,13 +21,16 @@ class AppRecommendationEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31989
|
const val kind = 31989
|
||||||
|
const val alt = "App recommendations by the author"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (AppRecommendationEvent) -> Unit
|
onReady: (AppRecommendationEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(
|
||||||
|
arrayOf("alt", alt)
|
||||||
|
)
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class AudioHeaderEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 1808
|
const val kind = 1808
|
||||||
|
const val alt = "Audio header"
|
||||||
|
|
||||||
private const val DOWNLOAD_URL = "download_url"
|
private const val DOWNLOAD_URL = "download_url"
|
||||||
private const val STREAM_URL = "stream_url"
|
private const val STREAM_URL = "stream_url"
|
||||||
@@ -49,7 +50,8 @@ class AudioHeaderEvent(
|
|||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
arrayOf("alt", alt)
|
||||||
).toTypedArray()
|
).toTypedArray()
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags, description, onReady)
|
signer.sign(createdAt, kind, tags, description, onReady)
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class AudioTrackEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31337
|
const val kind = 31337
|
||||||
|
const val alt = "Audio track"
|
||||||
|
|
||||||
private const val TYPE = "c"
|
private const val TYPE = "c"
|
||||||
private const val PRICE = "price"
|
private const val PRICE = "price"
|
||||||
@@ -50,7 +51,8 @@ class AudioTrackEvent(
|
|||||||
arrayOf(TYPE, type),
|
arrayOf(TYPE, type),
|
||||||
price?.let { arrayOf(PRICE, it) },
|
price?.let { arrayOf(PRICE, it) },
|
||||||
cover?.let { arrayOf(COVER, it) },
|
cover?.let { arrayOf(COVER, it) },
|
||||||
subject?.let { arrayOf(SUBJECT, it) }
|
subject?.let { arrayOf(SUBJECT, it) },
|
||||||
|
arrayOf("alt", alt)
|
||||||
).toTypedArray()
|
).toTypedArray()
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
|
|||||||
@@ -18,5 +18,6 @@ class BadgeAwardEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 8
|
const val kind = 8
|
||||||
|
const val alt = "Badge award"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,5 +20,6 @@ class BadgeDefinitionEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30009
|
const val kind = 30009
|
||||||
|
const val alt = "Badge definition"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,5 +24,6 @@ class BadgeProfilesEvent(
|
|||||||
companion object {
|
companion object {
|
||||||
const val kind = 30008
|
const val kind = 30008
|
||||||
const val standardDTAg = "profile_badges"
|
const val standardDTAg = "profile_badges"
|
||||||
|
const val alt = "List of accepted badges by the author"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ class BookmarkListEvent(
|
|||||||
) : GeneralListEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
) : GeneralListEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30001
|
const val kind = 30001
|
||||||
|
const val alt = "List of bookmarks"
|
||||||
|
|
||||||
fun addEvent(
|
fun addEvent(
|
||||||
earlierVersion: BookmarkListEvent?,
|
earlierVersion: BookmarkListEvent?,
|
||||||
@@ -166,7 +167,13 @@ class BookmarkListEvent(
|
|||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (BookmarkListEvent) -> Unit
|
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(
|
fun create(
|
||||||
@@ -196,6 +203,7 @@ class BookmarkListEvent(
|
|||||||
addresses?.forEach {
|
addresses?.forEach {
|
||||||
tags.add(arrayOf("a", it.toTag()))
|
tags.add(arrayOf("a", it.toTag()))
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
createPrivateTags(privEvents, privUsers, privAddresses, signer) { content ->
|
createPrivateTags(privEvents, privUsers, privAddresses, signer) { content ->
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
||||||
|
|||||||
@@ -27,13 +27,14 @@ class CalendarDateSlotEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31922
|
const val kind = 31922
|
||||||
|
const val alt = "Full-day calendar event"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (CalendarDateSlotEvent) -> Unit
|
onReady: (CalendarDateSlotEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(arrayOf("alt", alt))
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,13 +19,14 @@ class CalendarEvent(
|
|||||||
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31924
|
const val kind = 31924
|
||||||
|
const val alt = "Calendar"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (CalendarEvent) -> Unit
|
onReady: (CalendarEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(arrayOf("alt", alt))
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,13 +29,14 @@ class CalendarRSVPEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31925
|
const val kind = 31925
|
||||||
|
const val alt = "Calendar event's invitation response"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (CalendarRSVPEvent) -> Unit
|
onReady: (CalendarRSVPEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(arrayOf("alt", alt))
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,13 +31,14 @@ class CalendarTimeSlotEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31923
|
const val kind = 31923
|
||||||
|
const val alt = "Calendar time-slot event"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (CalendarTimeSlotEvent) -> Unit
|
onReady: (CalendarTimeSlotEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(arrayOf("alt", alt))
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class ChannelHideMessageEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 43
|
const val kind = 43
|
||||||
|
const val alt = "Hide message instruction for public chats"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
reason: String,
|
reason: String,
|
||||||
@@ -35,9 +36,9 @@ class ChannelHideMessageEvent(
|
|||||||
onReady: (ChannelHideMessageEvent) -> Unit
|
onReady: (ChannelHideMessageEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags =
|
val tags =
|
||||||
messagesToHide?.map {
|
(messagesToHide?.map {
|
||||||
arrayOf("e", it)
|
arrayOf("e", it)
|
||||||
}?.toTypedArray() ?: emptyArray()
|
}?.toTypedArray() ?: emptyArray()) + arrayOf(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags, reason, onReady)
|
signer.sign(createdAt, kind, tags, reason, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class ChannelMessageEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 42
|
const val kind = 42
|
||||||
|
const val alt = "Public chat message"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
message: String,
|
message: String,
|
||||||
@@ -66,6 +67,9 @@ class ChannelMessageEvent(
|
|||||||
//tags.add(arrayOf("nip94", it.toJson()))
|
//tags.add(arrayOf("nip94", it.toJson()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tags.add(
|
||||||
|
arrayOf("alt", alt)
|
||||||
|
)
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), message, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), message, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ class ChannelMetadataEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 41
|
const val kind = 41
|
||||||
|
const val alt = "This is a public chat definition update"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
name: String?,
|
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)
|
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class ChannelMuteUserEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 44
|
const val kind = 44
|
||||||
|
const val alt = "Mute user instruction for public chats"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
reason: String,
|
reason: String,
|
||||||
@@ -35,9 +36,9 @@ class ChannelMuteUserEvent(
|
|||||||
onReady: (ChannelMuteUserEvent) -> Unit
|
onReady: (ChannelMuteUserEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val content = reason
|
val content = reason
|
||||||
val tags = usersToMute?.map {
|
val tags = (usersToMute?.map {
|
||||||
arrayOf("p", it)
|
arrayOf("p", it)
|
||||||
}?.toTypedArray() ?: emptyArray()
|
}?.toTypedArray() ?: emptyArray()) + arrayOf(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags, content, onReady)
|
signer.sign(createdAt, kind, tags, content, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class ChatMessageEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 14
|
const val kind = 14
|
||||||
|
const val alt = "Direct message"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
msg: String,
|
msg: String,
|
||||||
@@ -89,6 +90,7 @@ class ChatMessageEvent(
|
|||||||
subject?.let {
|
subject?.let {
|
||||||
tags.add(arrayOf("subject", it))
|
tags.add(arrayOf("subject", it))
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ class ClassifiedsEvent(
|
|||||||
companion object {
|
companion object {
|
||||||
const val kind = 30402
|
const val kind = 30402
|
||||||
private val imageExtensions = listOf("png", "jpg", "gif", "bmp", "jpeg", "webp", "svg")
|
private val imageExtensions = listOf("png", "jpg", "gif", "bmp", "jpeg", "webp", "svg")
|
||||||
|
const val alt = "Classifieds listing"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
dTag: String,
|
dTag: String,
|
||||||
@@ -145,6 +146,7 @@ class ClassifiedsEvent(
|
|||||||
//tags.add(arrayOf("nip94", it.toJson()))
|
//tags.add(arrayOf("nip94", it.toJson()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), message, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), message, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,14 +25,16 @@ class CommunityDefinitionEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 34550
|
const val kind = 34550
|
||||||
|
const val alt = "Community definition"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (CommunityDefinitionEvent) -> Unit
|
onReady: (CommunityDefinitionEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = mutableListOf<Array<String>>()
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
tags.add(arrayOf("alt", alt))
|
||||||
|
signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ class CommunityPostApprovalEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 4550
|
const val kind = 4550
|
||||||
|
const val alt = "Community post approval"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
approvedPost: Event,
|
approvedPost: Event,
|
||||||
@@ -59,8 +60,9 @@ class CommunityPostApprovalEvent(
|
|||||||
val replyToPost = arrayOf("e", approvedPost.id())
|
val replyToPost = arrayOf("e", approvedPost.id())
|
||||||
val replyToAuthor = arrayOf("p", approvedPost.pubKey())
|
val replyToAuthor = arrayOf("p", approvedPost.pubKey())
|
||||||
val innerKind = arrayOf("k", "${approvedPost.kind()}")
|
val innerKind = arrayOf("k", "${approvedPost.kind()}")
|
||||||
|
val alt = arrayOf("alt", alt)
|
||||||
|
|
||||||
val tags: Array<Array<String>> = arrayOf(communities, replyToPost, replyToAuthor, innerKind)
|
val tags: Array<Array<String>> = arrayOf(communities, replyToPost, replyToAuthor, innerKind, alt)
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags, content, onReady)
|
signer.sign(createdAt, kind, tags, content, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ class ContactListEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 3
|
const val kind = 3
|
||||||
|
const val alt = "Follow List"
|
||||||
|
|
||||||
fun createFromScratch(
|
fun createFromScratch(
|
||||||
followUsers: List<Contact>,
|
followUsers: List<Contact>,
|
||||||
@@ -282,7 +283,13 @@ class ContactListEvent(
|
|||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (ContactListEvent) -> Unit
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,10 +21,11 @@ class DeletionEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 5
|
const val kind = 5
|
||||||
|
const val alt = "Deletion event"
|
||||||
|
|
||||||
fun create(deleteEvents: List<String>, signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (DeletionEvent) -> Unit) {
|
fun create(deleteEvents: List<String>, signer: NostrSigner, createdAt: Long = TimeUtils.now(), onReady: (DeletionEvent) -> Unit) {
|
||||||
val content = ""
|
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)
|
signer.sign(createdAt, kind, tags, content, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ class EmojiPackEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30030
|
const val kind = 30030
|
||||||
|
const val alt = "Emoji pack"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
name: String = "",
|
name: String = "",
|
||||||
@@ -30,6 +31,7 @@ class EmojiPackEvent(
|
|||||||
|
|
||||||
val tags = mutableListOf<Array<String>>()
|
val tags = mutableListOf<Array<String>>()
|
||||||
tags.add(arrayOf("d", name))
|
tags.add(arrayOf("d", name))
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ class EmojiPackSelectionEvent(
|
|||||||
companion object {
|
companion object {
|
||||||
const val kind = 10030
|
const val kind = 10030
|
||||||
const val fixedDTag = ""
|
const val fixedDTag = ""
|
||||||
|
const val alt = "Emoji selection"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
listOfEmojiPacks: List<ATag>?,
|
listOfEmojiPacks: List<ATag>?,
|
||||||
@@ -37,6 +38,8 @@ class EmojiPackSelectionEvent(
|
|||||||
tags.add(arrayOf("a", it.toTag()))
|
tags.add(arrayOf("a", it.toTag()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class FileHeaderEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 1063
|
const val kind = 1063
|
||||||
|
const val altDescription = "Verifiable file url"
|
||||||
|
|
||||||
private const val URL = "url"
|
private const val URL = "url"
|
||||||
private const val ENCRYPTION_KEY = "aes-256-gcm"
|
private const val ENCRYPTION_KEY = "aes-256-gcm"
|
||||||
@@ -70,7 +71,7 @@ class FileHeaderEvent(
|
|||||||
arrayOf(URL, url),
|
arrayOf(URL, url),
|
||||||
magnetUri?.let { arrayOf(MAGNET_URI, it) },
|
magnetUri?.let { arrayOf(MAGNET_URI, it) },
|
||||||
mimeType?.let { arrayOf(MIME_TYPE, 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) },
|
hash?.let { arrayOf(HASH, it) },
|
||||||
size?.let { arrayOf(FILE_SIZE, it) },
|
size?.let { arrayOf(FILE_SIZE, it) },
|
||||||
dimensions?.let { arrayOf(DIMENSION, it) },
|
dimensions?.let { arrayOf(DIMENSION, it) },
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ class FileServersEvent(
|
|||||||
companion object {
|
companion object {
|
||||||
const val kind = 10096
|
const val kind = 10096
|
||||||
const val fixedDTag = ""
|
const val fixedDTag = ""
|
||||||
|
const val alt = "File servers used by the author"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
listOfServers: List<String>,
|
listOfServers: List<String>,
|
||||||
@@ -36,6 +37,7 @@ class FileServersEvent(
|
|||||||
listOfServers.forEach {
|
listOfServers.forEach {
|
||||||
tags.add(arrayOf("server", it))
|
tags.add(arrayOf("server", it))
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ class FileStorageEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 1064
|
const val kind = 1064
|
||||||
|
const val alt = "Binary data"
|
||||||
|
|
||||||
private const val TYPE = "type"
|
private const val TYPE = "type"
|
||||||
private const val DECRYPT = "decrypt"
|
private const val DECRYPT = "decrypt"
|
||||||
@@ -49,7 +50,8 @@ class FileStorageEvent(
|
|||||||
onReady: (FileStorageEvent) -> Unit
|
onReady: (FileStorageEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = listOfNotNull(
|
val tags = listOfNotNull(
|
||||||
arrayOf(TYPE, mimeType)
|
arrayOf(TYPE, mimeType),
|
||||||
|
arrayOf("alt", alt)
|
||||||
)
|
)
|
||||||
|
|
||||||
val content = encode(data)
|
val content = encode(data)
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class FileStorageHeaderEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 1065
|
const val kind = 1065
|
||||||
|
const val altDescription = "Descriptors for a binary file"
|
||||||
|
|
||||||
private const val ENCRYPTION_KEY = "aes-256-gcm"
|
private const val ENCRYPTION_KEY = "aes-256-gcm"
|
||||||
private const val MIME_TYPE = "m"
|
private const val MIME_TYPE = "m"
|
||||||
@@ -62,7 +63,7 @@ class FileStorageHeaderEvent(
|
|||||||
arrayOf("e", storageEvent.id),
|
arrayOf("e", storageEvent.id),
|
||||||
mimeType?.let { arrayOf(MIME_TYPE, mimeType) },
|
mimeType?.let { arrayOf(MIME_TYPE, mimeType) },
|
||||||
hash?.let { arrayOf(HASH, it) },
|
hash?.let { arrayOf(HASH, it) },
|
||||||
alt?.let { arrayOf(ALT, it) },
|
alt?.let { arrayOf(ALT, it) } ?: arrayOf("alt", altDescription),
|
||||||
size?.let { arrayOf(FILE_SIZE, it) },
|
size?.let { arrayOf(FILE_SIZE, it) },
|
||||||
dimensions?.let { arrayOf(DIMENSION, it) },
|
dimensions?.let { arrayOf(DIMENSION, it) },
|
||||||
blurhash?.let { arrayOf(BLUR_HASH, it) },
|
blurhash?.let { arrayOf(BLUR_HASH, it) },
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ class GenericRepostEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 16
|
const val kind = 16
|
||||||
|
const val alt = "Generic repost"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
boostedPost: EventInterface,
|
boostedPost: EventInterface,
|
||||||
@@ -38,16 +39,17 @@ class GenericRepostEvent(
|
|||||||
) {
|
) {
|
||||||
val content = boostedPost.toJson()
|
val content = boostedPost.toJson()
|
||||||
|
|
||||||
val replyToPost = arrayOf("e", boostedPost.id())
|
val tags = mutableListOf(
|
||||||
val replyToAuthor = arrayOf("p", boostedPost.pubKey())
|
arrayOf("e", boostedPost.id()),
|
||||||
|
arrayOf("p", boostedPost.pubKey())
|
||||||
var tags: List<Array<String>> = listOf(replyToPost, replyToAuthor)
|
)
|
||||||
|
|
||||||
if (boostedPost is AddressableEvent) {
|
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)
|
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ class GiftWrapEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 1059
|
const val kind = 1059
|
||||||
|
const val alt = "Encrypted event"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
event: Event,
|
event: Event,
|
||||||
@@ -71,7 +72,7 @@ class GiftWrapEvent(
|
|||||||
) {
|
) {
|
||||||
val signer = NostrSignerInternal(KeyPair()) // GiftWrap is always a random key
|
val signer = NostrSignerInternal(KeyPair()) // GiftWrap is always a random key
|
||||||
val serializedContent = toJson(event)
|
val serializedContent = toJson(event)
|
||||||
val tags = arrayOf(arrayOf("p", recipientPubKey))
|
val tags = arrayOf(arrayOf("p", recipientPubKey), arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.nip44Encrypt(serializedContent, recipientPubKey) {
|
signer.nip44Encrypt(serializedContent, recipientPubKey) {
|
||||||
signer.sign(createdAt, kind, tags, it, onReady)
|
signer.sign(createdAt, kind, tags, it, onReady)
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class HighlightEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 9802
|
const val kind = 9802
|
||||||
|
const val alt = "Highlight/quote event"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
msg: String,
|
msg: String,
|
||||||
@@ -32,7 +33,7 @@ class HighlightEvent(
|
|||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (HighlightEvent) -> Unit
|
onReady: (HighlightEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
signer.sign(createdAt, kind, emptyArray(), msg, onReady)
|
signer.sign(createdAt, kind, arrayOf(arrayOf("alt", alt)), msg, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ class LiveActivitiesChatMessageEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 1311
|
const val kind = 1311
|
||||||
|
const val alt = "Live activity chat message"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
message: String,
|
message: String,
|
||||||
@@ -86,6 +87,7 @@ class LiveActivitiesChatMessageEvent(
|
|||||||
//tags.add(arrayOf("nip94", it.toJson()))
|
//tags.add(arrayOf("nip94", it.toJson()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ class LiveActivitiesEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30311
|
const val kind = 30311
|
||||||
|
const val alt = "Live activity event"
|
||||||
|
|
||||||
const val STATUS_LIVE = "live"
|
const val STATUS_LIVE = "live"
|
||||||
const val STATUS_PLANNED = "planned"
|
const val STATUS_PLANNED = "planned"
|
||||||
@@ -55,7 +56,7 @@ class LiveActivitiesEvent(
|
|||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (LiveActivitiesEvent) -> Unit
|
onReady: (LiveActivitiesEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(arrayOf("alt", alt))
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class LnZapEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 9735
|
const val kind = 9735
|
||||||
|
const val alt = "Zap event"
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class ZapType() {
|
enum class ZapType() {
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class LnZapPaymentRequestEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 23194
|
const val kind = 23194
|
||||||
|
const val alt = "Zap payment request"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
lnInvoice: String,
|
lnInvoice: String,
|
||||||
@@ -66,7 +67,7 @@ class LnZapPaymentRequestEvent(
|
|||||||
) {
|
) {
|
||||||
val serializedRequest = mapper.writeValueAsString(PayInvoiceMethod.create(lnInvoice))
|
val serializedRequest = mapper.writeValueAsString(PayInvoiceMethod.create(lnInvoice))
|
||||||
|
|
||||||
val tags = arrayOf(arrayOf("p", walletServicePubkey))
|
val tags = arrayOf(arrayOf("p", walletServicePubkey), arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.nip04Encrypt(
|
signer.nip04Encrypt(
|
||||||
serializedRequest,
|
serializedRequest,
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class LnZapPaymentResponseEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 23195
|
const val kind = 23195
|
||||||
|
const val alt = "Zap payment response"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class LnZapPrivateEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 9733
|
const val kind = 9733
|
||||||
|
const val alt = "Private zap"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ class LnZapRequestEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 9734
|
const val kind = 9734
|
||||||
|
const val alt = "Zap request"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
originalNote: EventInterface,
|
originalNote: EventInterface,
|
||||||
@@ -91,7 +92,8 @@ class LnZapRequestEvent(
|
|||||||
var tags = listOf(
|
var tags = listOf(
|
||||||
arrayOf("e", originalNote.id()),
|
arrayOf("e", originalNote.id()),
|
||||||
arrayOf("p", toUserPubHex ?: originalNote.pubKey()),
|
arrayOf("p", toUserPubHex ?: originalNote.pubKey()),
|
||||||
arrayOf("relays") + relays
|
arrayOf("relays") + relays,
|
||||||
|
arrayOf("alt", alt)
|
||||||
)
|
)
|
||||||
if (originalNote is AddressableEvent) {
|
if (originalNote is AddressableEvent) {
|
||||||
tags = tags + listOf(arrayOf("a", originalNote.address().toTag()))
|
tags = tags + listOf(arrayOf("a", originalNote.address().toTag()))
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ class LongTextNoteEvent(
|
|||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
msg: String,
|
msg: String,
|
||||||
|
title: String?,
|
||||||
replyTos: List<String>?,
|
replyTos: List<String>?,
|
||||||
mentions: List<String>?,
|
mentions: List<String>?,
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
@@ -49,6 +50,10 @@ class LongTextNoteEvent(
|
|||||||
mentions?.forEach {
|
mentions?.forEach {
|
||||||
tags.add(arrayOf("p", it))
|
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)
|
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,6 +152,7 @@ class MetadataEvent(
|
|||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
contactMetaData: String,
|
contactMetaData: String,
|
||||||
|
newName: String,
|
||||||
identities: List<IdentityClaim>,
|
identities: List<IdentityClaim>,
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
@@ -159,6 +160,10 @@ class MetadataEvent(
|
|||||||
) {
|
) {
|
||||||
val tags = mutableListOf<Array<String>>()
|
val tags = mutableListOf<Array<String>>()
|
||||||
|
|
||||||
|
tags.add(
|
||||||
|
arrayOf("alt", "User profile for ${newName}")
|
||||||
|
)
|
||||||
|
|
||||||
identities.forEach {
|
identities.forEach {
|
||||||
tags.add(arrayOf("i", it.platformIdentity(), it.proof))
|
tags.add(arrayOf("i", it.platformIdentity(), it.proof))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class MuteListEvent(
|
|||||||
companion object {
|
companion object {
|
||||||
const val kind = 10000
|
const val kind = 10000
|
||||||
const val fixedDTag = ""
|
const val fixedDTag = ""
|
||||||
|
const val alt = "Mute List"
|
||||||
|
|
||||||
fun blockListFor(pubKeyHex: HexKey): String {
|
fun blockListFor(pubKeyHex: HexKey): String {
|
||||||
return "10000:$pubKeyHex:"
|
return "10000:$pubKeyHex:"
|
||||||
@@ -209,7 +210,13 @@ class MuteListEvent(
|
|||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (MuteListEvent) -> Unit
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,13 +23,14 @@ class NNSEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30053
|
const val kind = 30053
|
||||||
|
const val alt = "DNS records"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
signer: NostrSigner,
|
signer: NostrSigner,
|
||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (NNSEvent) -> Unit
|
onReady: (NNSEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val tags = emptyArray<Array<String>>()
|
val tags = arrayOf(arrayOf("alt", alt))
|
||||||
signer.sign(createdAt, kind, tags, "", onReady)
|
signer.sign(createdAt, kind, tags, "", onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ class PeopleListEvent(
|
|||||||
companion object {
|
companion object {
|
||||||
const val kind = 30000
|
const val kind = 30000
|
||||||
const val blockList = "mute"
|
const val blockList = "mute"
|
||||||
|
const val alt = "List of people"
|
||||||
|
|
||||||
fun blockListFor(pubKeyHex: HexKey): String {
|
fun blockListFor(pubKeyHex: HexKey): String {
|
||||||
return "30000:$pubKeyHex:$blockList"
|
return "30000:$pubKeyHex:$blockList"
|
||||||
@@ -242,7 +243,13 @@ class PeopleListEvent(
|
|||||||
createdAt: Long = TimeUtils.now(),
|
createdAt: Long = TimeUtils.now(),
|
||||||
onReady: (PeopleListEvent) -> Unit
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ class PinListEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 33888
|
const val kind = 33888
|
||||||
|
const val alt = "Pinned Posts"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
pins: List<String>,
|
pins: List<String>,
|
||||||
@@ -33,6 +34,7 @@ class PinListEvent(
|
|||||||
pins.forEach {
|
pins.forEach {
|
||||||
tags.add(arrayOf("pin", it))
|
tags.add(arrayOf("pin", it))
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ class PollNoteEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 6969
|
const val kind = 6969
|
||||||
|
const val alt = "Poll event"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
msg: String,
|
msg: String,
|
||||||
@@ -105,6 +106,7 @@ class PollNoteEvent(
|
|||||||
//tags.add(arrayOf("nip94", it.toJson()))
|
//tags.add(arrayOf("nip94", it.toJson()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), msg, onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ class PrivateDmEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 4
|
const val kind = 4
|
||||||
|
const val alt = "Private Message"
|
||||||
const val nip18Advertisement = "[//]: # (nip18)\n"
|
const val nip18Advertisement = "[//]: # (nip18)\n"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
@@ -131,6 +131,7 @@ class PrivateDmEvent(
|
|||||||
geohash?.let {
|
geohash?.let {
|
||||||
tags.addAll(geohashMipMap(it))
|
tags.addAll(geohashMipMap(it))
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.nip04Encrypt(message, recipientPubKey) { content ->
|
signer.nip04Encrypt(message, recipientPubKey) { content ->
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ class RelaySetEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30022
|
const val kind = 30022
|
||||||
|
const val alt = "Relay list"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
relays: List<String>,
|
relays: List<String>,
|
||||||
@@ -33,6 +34,7 @@ class RelaySetEvent(
|
|||||||
relays.forEach {
|
relays.forEach {
|
||||||
tags.add(arrayOf("r", it))
|
tags.add(arrayOf("r", it))
|
||||||
}
|
}
|
||||||
|
tags.add(arrayOf("alt", alt))
|
||||||
|
|
||||||
signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady)
|
signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,9 +69,11 @@ class ReportEvent(
|
|||||||
var tags: Array<Array<String>> = arrayOf(reportPostTag, reportAuthorTag)
|
var tags: Array<Array<String>> = arrayOf(reportPostTag, reportAuthorTag)
|
||||||
|
|
||||||
if (reportedPost is AddressableEvent) {
|
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)
|
signer.sign(createdAt, kind, tags, content, onReady)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,8 +87,9 @@ class ReportEvent(
|
|||||||
val content = ""
|
val content = ""
|
||||||
|
|
||||||
val reportAuthorTag = arrayOf("p", reportedUser, type.name.lowercase())
|
val reportAuthorTag = arrayOf("p", reportedUser, type.name.lowercase())
|
||||||
|
val alt = arrayOf("alt", "Report for ${type.name}")
|
||||||
|
|
||||||
val tags: Array<Array<String>> = arrayOf(reportAuthorTag)
|
val tags: Array<Array<String>> = arrayOf(reportAuthorTag, alt)
|
||||||
signer.sign(createdAt, kind, tags, content, onReady)
|
signer.sign(createdAt, kind, tags, content, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ class RepostEvent(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 6
|
const val kind = 6
|
||||||
|
const val alt = "Repost event"
|
||||||
|
|
||||||
fun create(
|
fun create(
|
||||||
boostedPost: EventInterface,
|
boostedPost: EventInterface,
|
||||||
@@ -44,9 +45,11 @@ class RepostEvent(
|
|||||||
var tags: Array<Array<String>> = arrayOf(replyToPost, replyToAuthor)
|
var tags: Array<Array<String>> = arrayOf(replyToPost, replyToAuthor)
|
||||||
|
|
||||||
if (boostedPost is AddressableEvent) {
|
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)
|
signer.sign(createdAt, kind, tags, content, onReady)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user