diff --git a/src/lib/pubkey.ts b/src/lib/pubkey.ts index 126dc9c1..d3258273 100644 --- a/src/lib/pubkey.ts +++ b/src/lib/pubkey.ts @@ -42,6 +42,10 @@ export function userIdToPubkey(userId: string) { return userId } +export function isValidPubkey(pubkey: string) { + return /^[0-9a-f]{64}$/.test(pubkey) +} + const pubkeyImageCache = new LRUCache({ max: 1000 }) export function generateImageByPubkey(pubkey: string): string { if (pubkeyImageCache.has(pubkey)) { diff --git a/src/lib/tag.ts b/src/lib/tag.ts index 81339d8f..bf3d8f2b 100644 --- a/src/lib/tag.ts +++ b/src/lib/tag.ts @@ -1,5 +1,6 @@ import { TImageInfo } from '@/types' import { isBlurhashValid } from 'blurhash' +import { isValidPubkey } from './pubkey' export function tagNameEquals(tagName: string) { return (tag: string[]) => tag[0] === tagName @@ -49,7 +50,7 @@ export function extractPubkeysFromEventTags(tags: string[][]) { tags .filter(tagNameEquals('p')) .map(([, pubkey]) => pubkey) - .filter(Boolean) + .filter((pubkey) => !!pubkey && isValidPubkey(pubkey)) .reverse() ) )