Support for NIP-31 alt tags

pull/722/head
Vitor Pamplona 2023-12-15 18:19:37 -05:00
rodzic 7b55b69c12
commit fccfb2aaba
53 zmienionych plików z 162 dodań i 45 usunięć

Wyświetl plik

@ -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
MetadataEvent.create(toString, identities, signer) {
MetadataEvent.create(toString, newName, identities, signer) {
Client.send(it)
LocalCache.justConsume(it, null)
}

Wyświetl plik

@ -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()
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(
arrayOf("alt", "App definition event for ${details.name}")
)
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(
arrayOf("alt", alt)
)
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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)

Wyświetl plik

@ -18,5 +18,6 @@ class BadgeAwardEvent(
companion object {
const val kind = 8
const val alt = "Badge award"
}
}

Wyświetl plik

@ -20,5 +20,6 @@ class BadgeDefinitionEvent(
companion object {
const val kind = 30009
const val alt = "Badge definition"
}
}

Wyświetl plik

@ -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"
}
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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)
}
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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)
}
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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<Array<String>>()
signer.sign(createdAt, kind, tags, "", onReady)
val tags = mutableListOf<Array<String>>()
tags.add(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags.toTypedArray(), "", onReady)
}
}
}

Wyświetl plik

@ -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<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)
}

Wyświetl plik

@ -92,6 +92,7 @@ class ContactListEvent(
companion object {
const val kind = 3
const val alt = "Follow List"
fun createFromScratch(
followUsers: List<Contact>,
@ -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)
}
}

Wyświetl plik

@ -21,10 +21,11 @@ class DeletionEvent(
companion object {
const val kind = 5
const val alt = "Deletion event"
fun create(deleteEvents: List<String>, 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)
}
}

Wyświetl plik

@ -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<Array<String>>()
tags.add(arrayOf("d", name))
tags.add(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags.toTypedArray(), content, onReady)
}

Wyświetl plik

@ -23,6 +23,7 @@ class EmojiPackSelectionEvent(
companion object {
const val kind = 10030
const val fixedDTag = ""
const val alt = "Emoji selection"
fun create(
listOfEmojiPacks: List<ATag>?,
@ -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)
}
}

Wyświetl plik

@ -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) },

Wyświetl plik

@ -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<String>,
@ -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)
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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) },

Wyświetl plik

@ -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<Array<String>> = 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)
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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)
}
}
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -63,6 +63,7 @@ class LnZapEvent(
companion object {
const val kind = 9735
const val alt = "Zap event"
}
enum class ZapType() {

Wyświetl plik

@ -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,

Wyświetl plik

@ -63,6 +63,7 @@ class LnZapPaymentResponseEvent(
companion object {
const val kind = 23195
const val alt = "Zap payment response"
}
}

Wyświetl plik

@ -28,6 +28,7 @@ class LnZapPrivateEvent(
companion object {
const val kind = 9733
const val alt = "Private zap"
fun create(
signer: NostrSigner,

Wyświetl plik

@ -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()))

Wyświetl plik

@ -36,6 +36,7 @@ class LongTextNoteEvent(
fun create(
msg: String,
title: String?,
replyTos: List<String>?,
mentions: List<String>?,
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)
}
}

Wyświetl plik

@ -152,6 +152,7 @@ class MetadataEvent(
fun create(
contactMetaData: String,
newName: String,
identities: List<IdentityClaim>,
signer: NostrSigner,
createdAt: Long = TimeUtils.now(),
@ -159,6 +160,10 @@ class MetadataEvent(
) {
val tags = mutableListOf<Array<String>>()
tags.add(
arrayOf("alt", "User profile for ${newName}")
)
identities.forEach {
tags.add(arrayOf("i", it.platformIdentity(), it.proof))
}

Wyświetl plik

@ -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)
}
}
}

Wyświetl plik

@ -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<Array<String>>()
val tags = arrayOf(arrayOf("alt", alt))
signer.sign(createdAt, kind, tags, "", onReady)
}
}

Wyświetl plik

@ -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)
}
}
}

Wyświetl plik

@ -22,6 +22,7 @@ class PinListEvent(
companion object {
const val kind = 33888
const val alt = "Pinned Posts"
fun create(
pins: List<String>,
@ -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)
}

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -22,6 +22,7 @@ class RelaySetEvent(
companion object {
const val kind = 30022
const val alt = "Relay list"
fun create(
relays: List<String>,
@ -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)
}

Wyświetl plik

@ -69,9 +69,11 @@ class ReportEvent(
var tags: Array<Array<String>> = 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<Array<String>> = arrayOf(reportAuthorTag)
val tags: Array<Array<String>> = arrayOf(reportAuthorTag, alt)
signer.sign(createdAt, kind, tags, content, onReady)
}
}

Wyświetl plik

@ -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<Array<String>> = 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)
}
}