Browse Source

feat: filter invalid pubkeys in the follow list

imwald
codytseng 1 year ago
parent
commit
9c0fa6257a
  1. 4
      src/lib/pubkey.ts
  2. 3
      src/lib/tag.ts

4
src/lib/pubkey.ts

@ -42,6 +42,10 @@ export function userIdToPubkey(userId: string) { @@ -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<string, string>({ max: 1000 })
export function generateImageByPubkey(pubkey: string): string {
if (pubkeyImageCache.has(pubkey)) {

3
src/lib/tag.ts

@ -1,5 +1,6 @@ @@ -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[][]) { @@ -49,7 +50,7 @@ export function extractPubkeysFromEventTags(tags: string[][]) {
tags
.filter(tagNameEquals('p'))
.map(([, pubkey]) => pubkey)
.filter(Boolean)
.filter((pubkey) => !!pubkey && isValidPubkey(pubkey))
.reverse()
)
)

Loading…
Cancel
Save