feat: add imeta tags
This commit is contained in:
parent
3e609f7236
commit
50658f6d91
3 changed files with 41 additions and 16 deletions
|
|
@ -47,6 +47,7 @@ export function createRepostDraftEvent(event: Event): TDraftEvent {
|
|||
|
||||
export async function createShortTextNoteDraftEvent(
|
||||
content: string,
|
||||
pictureInfos: { url: string; tags: string[][] }[],
|
||||
options: {
|
||||
parentEvent?: Event
|
||||
addClientTag?: boolean
|
||||
|
|
@ -70,6 +71,11 @@ export async function createShortTextNoteDraftEvent(
|
|||
tags.push(['e', parentEventId, '', 'reply'])
|
||||
}
|
||||
|
||||
const { images } = extractImagesFromContent(content)
|
||||
if (images && images.length) {
|
||||
tags.push(...generateImetaTags(images, pictureInfos))
|
||||
}
|
||||
|
||||
if (options.addClientTag) {
|
||||
tags.push(['client', 'jumble'])
|
||||
}
|
||||
|
|
@ -98,6 +104,7 @@ export function createRelaySetDraftEvent(relaySet: TRelaySet): TDraftEvent {
|
|||
|
||||
export async function createPictureNoteDraftEvent(
|
||||
content: string,
|
||||
pictureInfos: { url: string; tags: string[][] }[],
|
||||
options: {
|
||||
addClientTag?: boolean
|
||||
} = {}
|
||||
|
|
@ -109,8 +116,7 @@ export async function createPictureNoteDraftEvent(
|
|||
throw new Error('No images found in content')
|
||||
}
|
||||
|
||||
const tags = images
|
||||
.map((image) => ['imeta', `url ${image}`])
|
||||
const tags = generateImetaTags(images, pictureInfos)
|
||||
.concat(pubkeys.map((pubkey) => ['p', pubkey]))
|
||||
.concat(quoteEventIds.map((eventId) => ['q', eventId]))
|
||||
.concat(hashtags.map((hashtag) => ['t', hashtag]))
|
||||
|
|
@ -130,6 +136,7 @@ export async function createPictureNoteDraftEvent(
|
|||
export async function createCommentDraftEvent(
|
||||
content: string,
|
||||
parentEvent: Event,
|
||||
pictureInfos: { url: string; tags: string[][] }[],
|
||||
options: {
|
||||
addClientTag?: boolean
|
||||
} = {}
|
||||
|
|
@ -153,12 +160,15 @@ export async function createCommentDraftEvent(
|
|||
['e', parentEventId],
|
||||
['k', parentEventKind.toString()],
|
||||
['p', parentEventPubkey]
|
||||
].concat(
|
||||
pubkeys
|
||||
.map((pubkey) => ['p', pubkey])
|
||||
.concat(quoteEventIds.map((eventId) => ['q', eventId]))
|
||||
.concat(hashtags.map((hashtag) => ['t', hashtag]))
|
||||
)
|
||||
]
|
||||
.concat(pubkeys.map((pubkey) => ['p', pubkey]))
|
||||
.concat(quoteEventIds.map((eventId) => ['q', eventId]))
|
||||
.concat(hashtags.map((hashtag) => ['t', hashtag]))
|
||||
|
||||
const { images } = extractImagesFromContent(content)
|
||||
if (images && images.length) {
|
||||
tags.push(...generateImetaTags(images, pictureInfos))
|
||||
}
|
||||
|
||||
if (options.addClientTag) {
|
||||
tags.push(['client', 'jumble'])
|
||||
|
|
@ -171,3 +181,12 @@ export async function createCommentDraftEvent(
|
|||
created_at: dayjs().unix()
|
||||
}
|
||||
}
|
||||
|
||||
function generateImetaTags(imageUrls: string[], pictureInfos: { url: string; tags: string[][] }[]) {
|
||||
return imageUrls.map((imageUrl) => {
|
||||
const pictureInfo = pictureInfos.find((info) => info.url === imageUrl)
|
||||
return pictureInfo
|
||||
? ['imeta', ...pictureInfo.tags.map(([n, v]) => `${n} ${v}`)]
|
||||
: ['imeta', `url ${imageUrl}`]
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue