Adds basic events to the seacheable interface
This commit is contained in:
+5
-1
@@ -47,6 +47,7 @@ import com.vitorpamplona.quartz.nip19Bech32.eventIds
|
|||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
||||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -60,7 +61,10 @@ class PollNoteEvent(
|
|||||||
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
PubKeyHintProvider {
|
PubKeyHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = content + pollOptionsArray().map { "\nOption: " + it.descriptor }
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ open class Event(
|
|||||||
*/
|
*/
|
||||||
open fun isContentEncoded() = false
|
open fun isContentEncoded() = false
|
||||||
|
|
||||||
|
open fun extraIndexableTagNames() = emptySet<String>()
|
||||||
|
|
||||||
open fun countMemory(): Long =
|
open fun countMemory(): Long =
|
||||||
7 * pointerSizeInBytes + // 7 fields, 4 bytes each reference (32bit)
|
7 * pointerSizeInBytes + // 7 fields, 4 bytes each reference (32bit)
|
||||||
12L + // createdAt + kind
|
12L + // createdAt + kind
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import com.vitorpamplona.quartz.nip01Core.tags.people.PTag
|
|||||||
import com.vitorpamplona.quartz.nip10Notes.tags.MarkedETag
|
import com.vitorpamplona.quartz.nip10Notes.tags.MarkedETag
|
||||||
import com.vitorpamplona.quartz.nip10Notes.tags.markedETags
|
import com.vitorpamplona.quartz.nip10Notes.tags.markedETags
|
||||||
import com.vitorpamplona.quartz.nip10Notes.tags.prepareETagsAsReplyTo
|
import com.vitorpamplona.quartz.nip10Notes.tags.prepareETagsAsReplyTo
|
||||||
|
import com.vitorpamplona.quartz.nip14Subject.subject
|
||||||
import com.vitorpamplona.quartz.nip18Reposts.quotes.QTag
|
import com.vitorpamplona.quartz.nip18Reposts.quotes.QTag
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.addressHints
|
import com.vitorpamplona.quartz.nip19Bech32.addressHints
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.addressIds
|
import com.vitorpamplona.quartz.nip19Bech32.addressIds
|
||||||
@@ -44,6 +45,7 @@ import com.vitorpamplona.quartz.nip19Bech32.eventIds
|
|||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
||||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -57,7 +59,10 @@ class TextNoteEvent(
|
|||||||
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
PubKeyHintProvider {
|
PubKeyHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = "Subject: " + subject() + "\n" + content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
@@ -108,7 +113,7 @@ class TextNoteEvent(
|
|||||||
const val KIND = 1
|
const val KIND = 1
|
||||||
const val ALT = "A short note: "
|
const val ALT = "A short note: "
|
||||||
|
|
||||||
fun shortedMessageForAlt(msg: String): String {
|
private fun shortedMessageForAlt(msg: String): String {
|
||||||
if (msg.length < 50) return ALT + msg
|
if (msg.length < 50) return ALT + msg
|
||||||
return ALT + msg.take(50) + "..."
|
return ALT + msg.take(50) + "..."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ import com.vitorpamplona.quartz.nip22Comments.tags.RootEventTag
|
|||||||
import com.vitorpamplona.quartz.nip22Comments.tags.RootIdentifierTag
|
import com.vitorpamplona.quartz.nip22Comments.tags.RootIdentifierTag
|
||||||
import com.vitorpamplona.quartz.nip22Comments.tags.RootKindTag
|
import com.vitorpamplona.quartz.nip22Comments.tags.RootKindTag
|
||||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.nip73ExternalIds.ExternalId
|
import com.vitorpamplona.quartz.nip73ExternalIds.ExternalId
|
||||||
import com.vitorpamplona.quartz.nip73ExternalIds.location.GeohashId
|
import com.vitorpamplona.quartz.nip73ExternalIds.location.GeohashId
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
@@ -71,7 +72,10 @@ class CommentEvent(
|
|||||||
RootScope,
|
RootScope,
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
PubKeyHintProvider,
|
PubKeyHintProvider,
|
||||||
AddressHintProvider {
|
AddressHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = content
|
||||||
|
|
||||||
override fun pubKeyHints(): List<PubKeyHint> {
|
override fun pubKeyHints(): List<PubKeyHint> {
|
||||||
val pHints =
|
val pHints =
|
||||||
tags.mapNotNull(RootAuthorTag::parseAsHint) +
|
tags.mapNotNull(RootAuthorTag::parseAsHint) +
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import com.vitorpamplona.quartz.nip23LongContent.tags.PublishedAtTag
|
|||||||
import com.vitorpamplona.quartz.nip23LongContent.tags.SummaryTag
|
import com.vitorpamplona.quartz.nip23LongContent.tags.SummaryTag
|
||||||
import com.vitorpamplona.quartz.nip23LongContent.tags.TitleTag
|
import com.vitorpamplona.quartz.nip23LongContent.tags.TitleTag
|
||||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@@ -67,7 +68,10 @@ class LongTextNoteEvent(
|
|||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
PubKeyHintProvider,
|
PubKeyHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
RootScope {
|
RootScope,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = "title: " + title() + "\nsummary: " + summary() + "\n" + content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
val nip19Hints = citedNIP19().eventHints()
|
val nip19Hints = citedNIP19().eventHints()
|
||||||
|
|||||||
+5
-1
@@ -50,6 +50,7 @@ import com.vitorpamplona.quartz.nip28PublicChat.base.IsInPublicChatChannel
|
|||||||
import com.vitorpamplona.quartz.nip28PublicChat.base.channel
|
import com.vitorpamplona.quartz.nip28PublicChat.base.channel
|
||||||
import com.vitorpamplona.quartz.nip28PublicChat.base.reply
|
import com.vitorpamplona.quartz.nip28PublicChat.base.reply
|
||||||
import com.vitorpamplona.quartz.nip37Drafts.ExposeInDraft
|
import com.vitorpamplona.quartz.nip37Drafts.ExposeInDraft
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -65,7 +66,10 @@ class ChannelMessageEvent(
|
|||||||
ExposeInDraft,
|
ExposeInDraft,
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
PubKeyHintProvider {
|
PubKeyHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
|||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
||||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||||
import com.vitorpamplona.quartz.nip34Git.repository.GitRepositoryEvent
|
import com.vitorpamplona.quartz.nip34Git.repository.GitRepositoryEvent
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -58,7 +59,10 @@ class GitIssueEvent(
|
|||||||
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
||||||
PubKeyHintProvider,
|
PubKeyHintProvider,
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
AddressHintProvider {
|
AddressHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = "Subject: " + subject() + "\n" + content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
val nip19Hints = citedNIP19().eventHints()
|
val nip19Hints = citedNIP19().eventHints()
|
||||||
|
|||||||
+5
-1
@@ -46,6 +46,7 @@ import com.vitorpamplona.quartz.nip19Bech32.eventIds
|
|||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
||||||
import com.vitorpamplona.quartz.nip37Drafts.ExposeInDraft
|
import com.vitorpamplona.quartz.nip37Drafts.ExposeInDraft
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent
|
import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
@@ -61,7 +62,10 @@ class LiveActivitiesChatMessageEvent(
|
|||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
PubKeyHintProvider,
|
PubKeyHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
ExposeInDraft {
|
ExposeInDraft,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val eHints = tags.mapNotNull(ETag::parseAsHint)
|
val eHints = tags.mapNotNull(ETag::parseAsHint)
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ import com.vitorpamplona.quartz.nip19Bech32.eventIds
|
|||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
||||||
import com.vitorpamplona.quartz.nip31Alts.AltTag
|
import com.vitorpamplona.quartz.nip31Alts.AltTag
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -60,7 +61,10 @@ class WikiNoteEvent(
|
|||||||
AddressableEvent,
|
AddressableEvent,
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
PubKeyHintProvider {
|
PubKeyHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = "title: " + title() + "\nsummary: " + summary() + "\n" + content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import com.vitorpamplona.quartz.nip19Bech32.pubKeyHints
|
|||||||
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
import com.vitorpamplona.quartz.nip19Bech32.pubKeys
|
||||||
import com.vitorpamplona.quartz.nip22Comments.RootScope
|
import com.vitorpamplona.quartz.nip22Comments.RootScope
|
||||||
import com.vitorpamplona.quartz.nip31Alts.AltTag
|
import com.vitorpamplona.quartz.nip31Alts.AltTag
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||||
import com.vitorpamplona.quartz.nip84Highlights.tags.CommentTag
|
import com.vitorpamplona.quartz.nip84Highlights.tags.CommentTag
|
||||||
import com.vitorpamplona.quartz.nip84Highlights.tags.ContextTag
|
import com.vitorpamplona.quartz.nip84Highlights.tags.ContextTag
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
@@ -63,7 +64,10 @@ class HighlightEvent(
|
|||||||
RootScope,
|
RootScope,
|
||||||
EventHintProvider,
|
EventHintProvider,
|
||||||
AddressHintProvider,
|
AddressHintProvider,
|
||||||
PubKeyHintProvider {
|
PubKeyHintProvider,
|
||||||
|
SearchableEvent {
|
||||||
|
override fun indexableContent() = "comment: " + comment() + "\ncontext: " + context() + "\n" + content
|
||||||
|
|
||||||
override fun eventHints(): List<EventIdHint> {
|
override fun eventHints(): List<EventIdHint> {
|
||||||
val eHints = tags.mapNotNull(ETag::parseAsHint)
|
val eHints = tags.mapNotNull(ETag::parseAsHint)
|
||||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||||
|
|||||||
Reference in New Issue
Block a user