Migrates Addressable Events to a Base class
This commit is contained in:
@@ -15,9 +15,8 @@ class AdvertisedRelayListEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
override fun dTag() = fixedDTag
|
override fun dTag() = fixedDTag
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun relays(): List<AdvertisedRelayInfo> {
|
fun relays(): List<AdvertisedRelayInfo> {
|
||||||
return tags.mapNotNull {
|
return tags.mapNotNull {
|
||||||
|
|||||||
@@ -14,10 +14,7 @@ class AppDefinitionEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun appMetaData() = try {
|
fun appMetaData() = try {
|
||||||
mapper.readValue(
|
mapper.readValue(
|
||||||
ByteArrayInputStream(content.toByteArray(Charsets.UTF_8)),
|
ByteArrayInputStream(content.toByteArray(Charsets.UTF_8)),
|
||||||
|
|||||||
@@ -12,16 +12,11 @@ class AppRecommendationEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
fun recommendations() = tags.filter { it.size > 1 && it[0] == "a" }.mapNotNull {
|
fun recommendations() = tags.filter { it.size > 1 && it[0] == "a" }.mapNotNull {
|
||||||
ATag.parse(it[1], it.getOrNull(2))
|
ATag.parse(it[1], it.getOrNull(2))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun forKind() = runCatching { dTag().toInt() }.getOrNull()
|
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31989
|
const val kind = 31989
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ class AudioTrackEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun participants() = tags.filter { it.size > 1 && it[0] == "p" }.map { Participant(it[1], it.getOrNull(2)) }
|
fun participants() = tags.filter { it.size > 1 && it[0] == "p" }.map { Participant(it[1], it.getOrNull(2)) }
|
||||||
fun type() = tags.firstOrNull { it.size > 1 && it[0] == TYPE }?.get(1)
|
fun type() = tags.firstOrNull { it.size > 1 && it[0] == TYPE }?.get(1)
|
||||||
|
|||||||
@@ -12,10 +12,7 @@ class BadgeDefinitionEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun name() = tags.firstOrNull { it.size > 1 && it[0] == "name" }?.get(1)
|
fun name() = tags.firstOrNull { it.size > 1 && it[0] == "name" }?.get(1)
|
||||||
fun thumb() = tags.firstOrNull { it.size > 1 && it[0] == "thumb" }?.get(1)
|
fun thumb() = tags.firstOrNull { it.size > 1 && it[0] == "thumb" }?.get(1)
|
||||||
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class BadgeProfilesEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
fun badgeAwardEvents() = tags.filter { it.firstOrNull() == "e" }.mapNotNull { it.getOrNull(1) }
|
fun badgeAwardEvents() = tags.filter { it.firstOrNull() == "e" }.mapNotNull { it.getOrNull(1) }
|
||||||
fun badgeAwardDefinitions() = tags.filter { it.firstOrNull() == "a" }.mapNotNull {
|
fun badgeAwardDefinitions() = tags.filter { it.firstOrNull() == "a" }.mapNotNull {
|
||||||
val aTagValue = it.getOrNull(1)
|
val aTagValue = it.getOrNull(1)
|
||||||
@@ -21,9 +21,6 @@ class BadgeProfilesEvent(
|
|||||||
if (aTagValue != null) ATag.parse(aTagValue, relay) else null
|
if (aTagValue != null) ATag.parse(aTagValue, relay) else null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dTag() = tags.filter { it.firstOrNull() == "d" }.mapNotNull { it.getOrNull(1) }.firstOrNull() ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 30008
|
const val kind = 30008
|
||||||
const val standardDTAg = "profile_badges"
|
const val standardDTAg = "profile_badges"
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ class CalendarDateSlotEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun location() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1)
|
fun location() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1)
|
||||||
fun start() = tags.firstOrNull { it.size > 1 && it[0] == "start" }?.get(1)
|
fun start() = tags.firstOrNull { it.size > 1 && it[0] == "start" }?.get(1)
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ class CalendarEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 31924
|
const val kind = 31924
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ class CalendarRSVPEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun status() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1)
|
fun status() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1)
|
||||||
fun start() = tags.firstOrNull { it.size > 1 && it[0] == "start" }?.get(1)
|
fun start() = tags.firstOrNull { it.size > 1 && it[0] == "start" }?.get(1)
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class CalendarTimeSlotEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun location() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1)
|
fun location() = tags.firstOrNull { it.size > 1 && it[0] == "location" }?.get(1)
|
||||||
fun start() = tags.firstOrNull { it.size > 1 && it[0] == "start" }?.get(1)?.toLongOrNull()
|
fun start() = tags.firstOrNull { it.size > 1 && it[0] == "start" }?.get(1)?.toLongOrNull()
|
||||||
fun end() = tags.firstOrNull { it.size > 1 && it[0] == "end" }?.get(1)?.toLongOrNull()
|
fun end() = tags.firstOrNull { it.size > 1 && it[0] == "end" }?.get(1)?.toLongOrNull()
|
||||||
|
|||||||
@@ -71,5 +71,5 @@ class ChannelMessageEvent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface IsInPublicChatChannel {
|
interface IsInPublicChatChannel {
|
||||||
open fun channel(): String?
|
fun channel(): String?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class ClassifiedsEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun title() = tags.firstOrNull { it.size > 1 && it[0] == "title" }?.get(1)
|
fun title() = tags.firstOrNull { it.size > 1 && it[0] == "title" }?.get(1)
|
||||||
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
||||||
fun summary() = tags.firstOrNull { it.size > 1 && it[0] == "summary" }?.get(1)
|
fun summary() = tags.firstOrNull { it.size > 1 && it[0] == "summary" }?.get(1)
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class CommunityDefinitionEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun description() = tags.firstOrNull { it.size > 1 && it[0] == "description" }?.get(1)
|
fun description() = tags.firstOrNull { it.size > 1 && it[0] == "description" }?.get(1)
|
||||||
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
||||||
fun rules() = tags.firstOrNull { it.size > 1 && it[0] == "rules" }?.get(1)
|
fun rules() = tags.firstOrNull { it.size > 1 && it[0] == "rules" }?.get(1)
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class EmojiPackSelectionEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val kind = 10030
|
const val kind = 10030
|
||||||
|
|
||||||
|
|||||||
@@ -385,6 +385,20 @@ interface AddressableEvent {
|
|||||||
fun address(): ATag
|
fun address(): ATag
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Immutable
|
||||||
|
open class BaseAddressableEvent(
|
||||||
|
id: HexKey,
|
||||||
|
pubKey: HexKey,
|
||||||
|
createdAt: Long,
|
||||||
|
kind: Int,
|
||||||
|
tags: List<List<String>>,
|
||||||
|
content: String,
|
||||||
|
sig: HexKey
|
||||||
|
): Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
||||||
|
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
||||||
|
override fun address() = ATag(kind, pubKey, dTag(), null)
|
||||||
|
}
|
||||||
|
|
||||||
fun String.bytesUsedInMemory(): Int {
|
fun String.bytesUsedInMemory(): Int {
|
||||||
return (8 * ((((this.length) * 2) + 45) / 8))
|
return (8 * ((((this.length) * 2) + 45) / 8))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,10 +17,7 @@ abstract class GeneralListEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
override fun dTag() = tags.filter { it.firstOrNull() == "d" }.mapNotNull { it.getOrNull(1) }.firstOrNull() ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun category() = dTag()
|
fun category() = dTag()
|
||||||
fun bookmarkedPosts() = taggedEvents()
|
fun bookmarkedPosts() = taggedEvents()
|
||||||
fun bookmarkedPeople() = taggedUsers()
|
fun bookmarkedPeople() = taggedUsers()
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class LiveActivitiesEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun title() = tags.firstOrNull { it.size > 1 && it[0] == "title" }?.get(1)
|
fun title() = tags.firstOrNull { it.size > 1 && it[0] == "title" }?.get(1)
|
||||||
fun summary() = tags.firstOrNull { it.size > 1 && it[0] == "summary" }?.get(1)
|
fun summary() = tags.firstOrNull { it.size > 1 && it[0] == "summary" }?.get(1)
|
||||||
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
fun image() = tags.firstOrNull { it.size > 1 && it[0] == "image" }?.get(1)
|
||||||
|
|||||||
@@ -18,10 +18,7 @@ class MuteListEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
override fun dTag() = tags.filter { it.firstOrNull() == "d" }.mapNotNull { it.getOrNull(1) }.firstOrNull() ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun plainContent(privKey: ByteArray): String? {
|
fun plainContent(privKey: ByteArray): String? {
|
||||||
return try {
|
return try {
|
||||||
val sharedSecret = CryptoUtils.getSharedSecretNIP04(privKey, pubKey.hexToByteArray())
|
val sharedSecret = CryptoUtils.getSharedSecretNIP04(privKey, pubKey.hexToByteArray())
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class NNSEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun ip4() = tags.firstOrNull { it.size > 1 && it[0] == "ip4" }?.get(1)
|
fun ip4() = tags.firstOrNull { it.size > 1 && it[0] == "ip4" }?.get(1)
|
||||||
fun ip6() = tags.firstOrNull { it.size > 1 && it[0] == "ip6" }?.get(1)
|
fun ip6() = tags.firstOrNull { it.size > 1 && it[0] == "ip6" }?.get(1)
|
||||||
fun version() = tags.firstOrNull { it.size > 1 && it[0] == "version" }?.get(1)
|
fun version() = tags.firstOrNull { it.size > 1 && it[0] == "version" }?.get(1)
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ class PinListEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun pins() = tags.filter { it.size > 1 && it[0] == "pin" }.map { it[1] }
|
fun pins() = tags.filter { it.size > 1 && it[0] == "pin" }.map { it[1] }
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ class RelaySetEvent(
|
|||||||
tags: List<List<String>>,
|
tags: List<List<String>>,
|
||||||
content: String,
|
content: String,
|
||||||
sig: HexKey
|
sig: HexKey
|
||||||
) : Event(id, pubKey, createdAt, kind, tags, content, sig), AddressableEvent {
|
) : BaseAddressableEvent(id, pubKey, createdAt, kind, tags, content, sig) {
|
||||||
|
|
||||||
override fun dTag() = tags.firstOrNull { it.size > 1 && it[0] == "d" }?.get(1) ?: ""
|
|
||||||
override fun address() = ATag(kind, pubKey, dTag(), null)
|
|
||||||
|
|
||||||
fun relays() = tags.filter { it.size > 1 && it[0] == "r" }.map { it[1] }
|
fun relays() = tags.filter { it.size > 1 && it[0] == "r" }.map { it[1] }
|
||||||
fun description() = tags.firstOrNull() { it.size > 1 && it[0] == "description" }?.get(1)
|
fun description() = tags.firstOrNull() { it.size > 1 && it[0] == "description" }?.get(1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user