Make mantra tags event references
This commit is contained in:
1 parent
3bc12ca344
commit
bdcf685537
9 files changed
+216
-45
No files matched your search
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class ArtifactIdTag {
|
data class ArtifactIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "artifactId"
|
const val TAG_NAME = "artifactId"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): ArtifactIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return ArtifactIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(artifactId: HexKey) = arrayOf(TAG_NAME, artifactId)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class ArtifactVersionIdTag {
|
class ArtifactVersionIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "artifactVersionId"
|
const val TAG_NAME = "artifactVersionId"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): ArtifactVersionIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return ArtifactVersionIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(artifactVersionId: HexKey) = arrayOf(TAG_NAME, artifactVersionId)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class ChapterIdTag {
|
class ChapterIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "chapterIdTag"
|
const val TAG_NAME = "chapterIdTag"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): ChapterIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return ChapterIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(chapterIdTag: HexKey) = arrayOf(TAG_NAME, chapterIdTag)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class ChunkIdTag {
|
class ChunkIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "chunkIdTag"
|
const val TAG_NAME = "chunkIdTag"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): ChunkIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return ChunkIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(chunkIdTag: HexKey) = arrayOf(TAG_NAME, chunkIdTag)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class DialectIdTag {
|
class DialectIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "dialectIdTag"
|
const val TAG_NAME = "dialectIdTag"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): DialectIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return DialectIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(dialectIdTag: HexKey) = arrayOf(TAG_NAME, dialectIdTag)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class TranslationArtifactVersionIdTag {
|
class TranslationArtifactVersionIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "translationArtifactVersionId"
|
const val TAG_NAME = "translationArtifactVersionId"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): DialectIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return DialectIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(translationArtifactVersionId: HexKey) = arrayOf(TAG_NAME, translationArtifactVersionId)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class TranslationChapterIdTag {
|
class TranslationChapterIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "translationChapterIdTag"
|
const val TAG_NAME = "translationChapterIdTag"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): TranslationChapterIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return TranslationChapterIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(translationChapterIdTag: HexKey) = arrayOf(TAG_NAME, translationChapterIdTag)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class TranslationChunkIdTag {
|
class TranslationChunkIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "translationChunkIdTag"
|
const val TAG_NAME = "translationChunkIdTag"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): TranslationChunkIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return TranslationChunkIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(translationChunkIdTag: HexKey) = arrayOf(TAG_NAME, translationChunkIdTag)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+24
-5
@@ -2,19 +2,38 @@ package press.mantra.compose.nostr.nip30303.tags
|
|||||||
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.has
|
import com.vitorpamplona.quartz.nip01Core.core.has
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.tags.events.EventReference
|
||||||
|
import com.vitorpamplona.quartz.utils.arrayOfNotNull
|
||||||
import com.vitorpamplona.quartz.utils.ensure
|
import com.vitorpamplona.quartz.utils.ensure
|
||||||
|
|
||||||
class TranslationIdTag {
|
class TranslationIdTag(
|
||||||
|
val ref: EventReference,
|
||||||
|
) {
|
||||||
|
constructor(eventId: String, relayHint: NormalizedRelayUrl?, pubkey: String?) : this(
|
||||||
|
EventReference(eventId, pubkey, relayHint)
|
||||||
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG_NAME = "translationIdTag"
|
const val TAG_NAME = "translationIdTag"
|
||||||
|
|
||||||
fun parse(tag: Array<String>): HexKey? {
|
fun parse(tag: Array<String>): TranslationIdTag? {
|
||||||
ensure(tag.has(1)) { return null }
|
ensure(tag.has(1)) { return null }
|
||||||
ensure(tag[0] == TAG_NAME) { return null }
|
ensure(tag[0] == TAG_NAME) { return null }
|
||||||
ensure(tag[1].isNotBlank()) { return null }
|
ensure(tag[1].length == 64) { return null }
|
||||||
return tag[1]
|
|
||||||
|
val relayHint = tag.getOrNull(2)?.let { RelayUrlNormalizer.normalizeOrNull(it) }
|
||||||
|
|
||||||
|
return TranslationIdTag(tag[1], relayHint, tag.getOrNull(3))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assemble(translationIdTag: HexKey) = arrayOf(TAG_NAME, translationIdTag)
|
fun assemble(
|
||||||
|
eventId: HexKey,
|
||||||
|
relay: NormalizedRelayUrl?,
|
||||||
|
pubkey: String?,
|
||||||
|
) = arrayOfNotNull(TAG_NAME, eventId, relay?.url, pubkey)
|
||||||
|
|
||||||
|
fun assemble(ref: EventReference) = assemble(ref.eventId, ref.relayHint, ref.author)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user