Browse Source

fix media labels

imwald
Silberengel 3 days ago
parent
commit
f450f74ae7
  1. 3
      src/constants.ts
  2. 17
      src/services/media-extraction.service.ts

3
src/constants.ts

@ -109,7 +109,6 @@ export const FAST_WRITE_RELAY_URLS = [ @@ -109,7 +109,6 @@ export const FAST_WRITE_RELAY_URLS = [
'wss://relay.damus.io',
'wss://relay.primal.net',
'wss://thecitadel.nostr1.com',
'wss://bevo.nostr1.com',
'wss://nos.lol'
]
@ -117,7 +116,7 @@ export const FAST_WRITE_RELAY_URLS = [ @@ -117,7 +116,7 @@ export const FAST_WRITE_RELAY_URLS = [
export const GIF_RELAY_URLS = [
'wss://relay.damus.io',
'wss://relay.primal.net',
'wss://relay.gifbuddy.lol'
'wss://thecitadel.nostr1.com'
]
export const SEARCHABLE_RELAY_URLS = [

17
src/services/media-extraction.service.ts

@ -56,9 +56,11 @@ export function extractAllMediaFromEvent( @@ -56,9 +56,11 @@ export function extractAllMediaFromEvent(
})
}
// 1. Extract from imeta tags
// 1. Extract from imeta tags (keep full metadata: alt, dim, blurHash, etc.)
const imetaInfos = getImetaInfosFromEvent(event)
imetaInfos.forEach((info) => {
const cleaned = cleanUrl(info.url)
if (!cleaned || seenUrls.has(cleaned)) return
if (
info.m?.startsWith('image/') ||
info.m?.startsWith('video/') ||
@ -66,7 +68,8 @@ export function extractAllMediaFromEvent( @@ -66,7 +68,8 @@ export function extractAllMediaFromEvent(
isImage(info.url) ||
isMedia(info.url)
) {
addMedia(info.url, info.pubkey, info.m)
seenUrls.add(cleaned)
allMedia.push({ ...info, url: cleaned })
}
})
@ -109,19 +112,19 @@ export function extractAllMediaFromEvent( @@ -109,19 +112,19 @@ export function extractAllMediaFromEvent(
}
}
// 5. Try to match content URLs with imeta tags for better metadata
// 5. Try to match content URLs with imeta tags for better metadata (alt, dim, blurHash, m)
imetaInfos.forEach((imeta) => {
const imetaUrl = cleanUrl(imeta.url)
allMedia.forEach((media, index) => {
// Try to find matching imeta info
if (cleanUrl(imeta.url) === media.url && imeta.m) {
allMedia[index] = { ...media, m: imeta.m }
if (imetaUrl === media.url) {
allMedia[index] = { ...media, ...imeta, url: media.url }
} else {
// Try to get imeta from media upload service
const tag = mediaUpload.getImetaTagByUrl(media.url)
if (tag) {
const parsedImeta = getImetaInfoFromImetaTag(tag, event.pubkey)
if (parsedImeta) {
allMedia[index] = parsedImeta
allMedia[index] = { ...media, ...parsedImeta, url: media.url }
}
}
}

Loading…
Cancel
Save