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.pubKeys
|
||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
|
||||
@Immutable
|
||||
@@ -60,7 +61,10 @@ class PollNoteEvent(
|
||||
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
||||
EventHintProvider,
|
||||
AddressHintProvider,
|
||||
PubKeyHintProvider {
|
||||
PubKeyHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = content + pollOptionsArray().map { "\nOption: " + it.descriptor }
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||
|
||||
@@ -45,6 +45,8 @@ open class Event(
|
||||
*/
|
||||
open fun isContentEncoded() = false
|
||||
|
||||
open fun extraIndexableTagNames() = emptySet<String>()
|
||||
|
||||
open fun countMemory(): Long =
|
||||
7 * pointerSizeInBytes + // 7 fields, 4 bytes each reference (32bit)
|
||||
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.markedETags
|
||||
import com.vitorpamplona.quartz.nip10Notes.tags.prepareETagsAsReplyTo
|
||||
import com.vitorpamplona.quartz.nip14Subject.subject
|
||||
import com.vitorpamplona.quartz.nip18Reposts.quotes.QTag
|
||||
import com.vitorpamplona.quartz.nip19Bech32.addressHints
|
||||
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.pubKeys
|
||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
|
||||
@Immutable
|
||||
@@ -57,7 +59,10 @@ class TextNoteEvent(
|
||||
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
||||
EventHintProvider,
|
||||
AddressHintProvider,
|
||||
PubKeyHintProvider {
|
||||
PubKeyHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = "Subject: " + subject() + "\n" + content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||
@@ -108,7 +113,7 @@ class TextNoteEvent(
|
||||
const val KIND = 1
|
||||
const val ALT = "A short note: "
|
||||
|
||||
fun shortedMessageForAlt(msg: String): String {
|
||||
private fun shortedMessageForAlt(msg: String): String {
|
||||
if (msg.length < 50) return ALT + msg
|
||||
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.RootKindTag
|
||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.nip73ExternalIds.ExternalId
|
||||
import com.vitorpamplona.quartz.nip73ExternalIds.location.GeohashId
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
@@ -71,7 +72,10 @@ class CommentEvent(
|
||||
RootScope,
|
||||
EventHintProvider,
|
||||
PubKeyHintProvider,
|
||||
AddressHintProvider {
|
||||
AddressHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = content
|
||||
|
||||
override fun pubKeyHints(): List<PubKeyHint> {
|
||||
val pHints =
|
||||
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.TitleTag
|
||||
import com.vitorpamplona.quartz.nip31Alts.alt
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
import java.util.UUID
|
||||
|
||||
@@ -67,7 +68,10 @@ class LongTextNoteEvent(
|
||||
EventHintProvider,
|
||||
PubKeyHintProvider,
|
||||
AddressHintProvider,
|
||||
RootScope {
|
||||
RootScope,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = "title: " + title() + "\nsummary: " + summary() + "\n" + content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||
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.reply
|
||||
import com.vitorpamplona.quartz.nip37Drafts.ExposeInDraft
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
|
||||
@Immutable
|
||||
@@ -65,7 +66,10 @@ class ChannelMessageEvent(
|
||||
ExposeInDraft,
|
||||
EventHintProvider,
|
||||
AddressHintProvider,
|
||||
PubKeyHintProvider {
|
||||
PubKeyHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||
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.nip31Alts.alt
|
||||
import com.vitorpamplona.quartz.nip34Git.repository.GitRepositoryEvent
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
|
||||
@Immutable
|
||||
@@ -58,7 +59,10 @@ class GitIssueEvent(
|
||||
) : BaseThreadedEvent(id, pubKey, createdAt, KIND, tags, content, sig),
|
||||
PubKeyHintProvider,
|
||||
EventHintProvider,
|
||||
AddressHintProvider {
|
||||
AddressHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = "Subject: " + subject() + "\n" + content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||
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.pubKeys
|
||||
import com.vitorpamplona.quartz.nip37Drafts.ExposeInDraft
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
|
||||
@@ -61,7 +62,10 @@ class LiveActivitiesChatMessageEvent(
|
||||
EventHintProvider,
|
||||
PubKeyHintProvider,
|
||||
AddressHintProvider,
|
||||
ExposeInDraft {
|
||||
ExposeInDraft,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val eHints = tags.mapNotNull(ETag::parseAsHint)
|
||||
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.pubKeys
|
||||
import com.vitorpamplona.quartz.nip31Alts.AltTag
|
||||
import com.vitorpamplona.quartz.nip50Search.SearchableEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
|
||||
@Immutable
|
||||
@@ -60,7 +61,10 @@ class WikiNoteEvent(
|
||||
AddressableEvent,
|
||||
EventHintProvider,
|
||||
AddressHintProvider,
|
||||
PubKeyHintProvider {
|
||||
PubKeyHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = "title: " + title() + "\nsummary: " + summary() + "\n" + content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val eHints = tags.mapNotNull(MarkedETag::parseAsHint)
|
||||
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.nip22Comments.RootScope
|
||||
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.ContextTag
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
@@ -63,7 +64,10 @@ class HighlightEvent(
|
||||
RootScope,
|
||||
EventHintProvider,
|
||||
AddressHintProvider,
|
||||
PubKeyHintProvider {
|
||||
PubKeyHintProvider,
|
||||
SearchableEvent {
|
||||
override fun indexableContent() = "comment: " + comment() + "\ncontext: " + context() + "\n" + content
|
||||
|
||||
override fun eventHints(): List<EventIdHint> {
|
||||
val eHints = tags.mapNotNull(ETag::parseAsHint)
|
||||
val qHints = tags.mapNotNull(QTag::parseEventAsHint)
|
||||
|
||||
Reference in New Issue
Block a user