feat: audio
This commit is contained in:
@@ -6,7 +6,7 @@ import {
|
||||
IMAGE_REGEX,
|
||||
LN_INVOICE_REGEX,
|
||||
URL_REGEX,
|
||||
VIDEO_REGEX,
|
||||
MEDIA_REGEX,
|
||||
WS_URL_REGEX
|
||||
} from '@/constants'
|
||||
|
||||
@@ -14,7 +14,7 @@ export type TEmbeddedNodeType =
|
||||
| 'text'
|
||||
| 'image'
|
||||
| 'images'
|
||||
| 'video'
|
||||
| 'media'
|
||||
| 'event'
|
||||
| 'mention'
|
||||
| 'legacy-mention'
|
||||
@@ -61,9 +61,9 @@ export const EmbeddedImageParser: TContentParser = {
|
||||
regex: IMAGE_REGEX
|
||||
}
|
||||
|
||||
export const EmbeddedVideoParser: TContentParser = {
|
||||
type: 'video',
|
||||
regex: VIDEO_REGEX
|
||||
export const EmbeddedMediaParser: TContentParser = {
|
||||
type: 'media',
|
||||
regex: MEDIA_REGEX
|
||||
}
|
||||
|
||||
export const EmbeddedWebsocketUrlParser: TContentParser = {
|
||||
|
||||
@@ -494,28 +494,16 @@ async function extractRelatedEventIds(content: string, parentEvent?: Event) {
|
||||
|
||||
async function extractCommentMentions(content: string, parentEvent: Event) {
|
||||
const quoteEventIds: string[] = []
|
||||
const rootCoordinateTag =
|
||||
parentEvent.kind === ExtendedKind.COMMENT
|
||||
? parentEvent.tags.find(tagNameEquals('A'))
|
||||
: isReplaceableEvent(parentEvent.kind)
|
||||
? buildATag(parentEvent, true)
|
||||
: undefined
|
||||
const rootEventId =
|
||||
parentEvent.kind === ExtendedKind.COMMENT
|
||||
? parentEvent.tags.find(tagNameEquals('E'))?.[1]
|
||||
: parentEvent.id
|
||||
const rootKind =
|
||||
parentEvent.kind === ExtendedKind.COMMENT
|
||||
? parentEvent.tags.find(tagNameEquals('K'))?.[1]
|
||||
: parentEvent.kind
|
||||
const rootPubkey =
|
||||
parentEvent.kind === ExtendedKind.COMMENT
|
||||
? parentEvent.tags.find(tagNameEquals('P'))?.[1]
|
||||
: parentEvent.pubkey
|
||||
const rootUrl =
|
||||
parentEvent.kind === ExtendedKind.COMMENT
|
||||
? parentEvent.tags.find(tagNameEquals('I'))?.[1]
|
||||
const isComment = [ExtendedKind.COMMENT, ExtendedKind.VOICE_COMMENT].includes(parentEvent.kind)
|
||||
const rootCoordinateTag = isComment
|
||||
? parentEvent.tags.find(tagNameEquals('A'))
|
||||
: isReplaceableEvent(parentEvent.kind)
|
||||
? buildATag(parentEvent, true)
|
||||
: undefined
|
||||
const rootEventId = isComment ? parentEvent.tags.find(tagNameEquals('E'))?.[1] : parentEvent.id
|
||||
const rootKind = isComment ? parentEvent.tags.find(tagNameEquals('K'))?.[1] : parentEvent.kind
|
||||
const rootPubkey = isComment ? parentEvent.tags.find(tagNameEquals('P'))?.[1] : parentEvent.pubkey
|
||||
const rootUrl = isComment ? parentEvent.tags.find(tagNameEquals('I'))?.[1] : undefined
|
||||
|
||||
const addToSet = (arr: string[], item: string) => {
|
||||
if (!arr.includes(item)) arr.push(item)
|
||||
|
||||
@@ -21,7 +21,10 @@ export function isNsfwEvent(event: Event) {
|
||||
}
|
||||
|
||||
export function isReplyNoteEvent(event: Event) {
|
||||
if (![kinds.ShortTextNote, ExtendedKind.COMMENT].includes(event.kind)) return false
|
||||
if ([ExtendedKind.COMMENT, ExtendedKind.VOICE_COMMENT].includes(event.kind)) {
|
||||
return true
|
||||
}
|
||||
if (event.kind !== kinds.ShortTextNote) return false
|
||||
|
||||
const cache = EVENT_IS_REPLY_NOTE_CACHE.get(event.id)
|
||||
if (cache !== undefined) return cache
|
||||
@@ -44,12 +47,14 @@ export function isProtectedEvent(event: Event) {
|
||||
}
|
||||
|
||||
export function getParentETag(event?: Event) {
|
||||
if (!event || ![kinds.ShortTextNote, ExtendedKind.COMMENT].includes(event.kind)) return undefined
|
||||
if (!event) return undefined
|
||||
|
||||
if (event.kind === ExtendedKind.COMMENT) {
|
||||
if (event.kind === ExtendedKind.COMMENT || event.kind === ExtendedKind.VOICE_COMMENT) {
|
||||
return event.tags.find(tagNameEquals('e')) ?? event.tags.find(tagNameEquals('E'))
|
||||
}
|
||||
|
||||
if (event.kind !== kinds.ShortTextNote) return undefined
|
||||
|
||||
let tag = event.tags.find(([tagName, , , marker]) => {
|
||||
return tagName === 'e' && marker === 'reply'
|
||||
})
|
||||
@@ -63,7 +68,12 @@ export function getParentETag(event?: Event) {
|
||||
}
|
||||
|
||||
export function getParentATag(event?: Event) {
|
||||
if (!event || ![kinds.ShortTextNote, ExtendedKind.COMMENT].includes(event.kind)) return undefined
|
||||
if (
|
||||
!event ||
|
||||
![kinds.ShortTextNote, ExtendedKind.COMMENT, ExtendedKind.VOICE_COMMENT].includes(event.kind)
|
||||
) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
return event.tags.find(tagNameEquals('a')) ?? event.tags.find(tagNameEquals('A'))
|
||||
}
|
||||
@@ -86,12 +96,14 @@ export function getParentBech32Id(event?: Event) {
|
||||
}
|
||||
|
||||
export function getRootETag(event?: Event) {
|
||||
if (!event || ![kinds.ShortTextNote, ExtendedKind.COMMENT].includes(event.kind)) return undefined
|
||||
if (!event) return undefined
|
||||
|
||||
if (event.kind === ExtendedKind.COMMENT) {
|
||||
if (event.kind === ExtendedKind.COMMENT || ExtendedKind.VOICE_COMMENT) {
|
||||
return event.tags.find(tagNameEquals('E'))
|
||||
}
|
||||
|
||||
if (event.kind !== kinds.ShortTextNote) return undefined
|
||||
|
||||
let tag = event.tags.find(([tagName, , , marker]) => {
|
||||
return tagName === 'e' && marker === 'root'
|
||||
})
|
||||
@@ -105,7 +117,12 @@ export function getRootETag(event?: Event) {
|
||||
}
|
||||
|
||||
export function getRootATag(event?: Event) {
|
||||
if (!event || event.kind !== ExtendedKind.COMMENT) return undefined
|
||||
if (
|
||||
!event ||
|
||||
![kinds.ShortTextNote, ExtendedKind.COMMENT, ExtendedKind.VOICE_COMMENT].includes(event.kind)
|
||||
) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
return event.tags.find(tagNameEquals('A'))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user