feat: emoji packs

This commit is contained in:
codytseng 2025-11-07 22:36:07 +08:00
parent 0e550d2511
commit 1e2385da3b
41 changed files with 646 additions and 59 deletions

View file

@ -759,6 +759,11 @@ class ClientService extends EventTarget {
if (cache) {
return cache
}
const indexedDbCache = await indexedDb.getReplaceableEventByCoordinate(coordinate)
if (indexedDbCache) {
this.replaceableEventCacheMap.set(coordinate, indexedDbCache)
return indexedDbCache
}
} else if (eventId) {
const cache = this.eventCacheMap.get(eventId)
if (cache) {
@ -1356,6 +1361,10 @@ class ClientService extends EventTarget {
return this.fetchReplaceableEvent(pubkey, kinds.Pinlist)
}
async fetchUserEmojiListEvent(pubkey: string) {
return this.fetchReplaceableEvent(pubkey, kinds.UserEmojiList)
}
async updateBlossomServerListEventCache(evt: NEvent) {
await this.updateReplaceableEventCache(evt)
}

View file

@ -189,6 +189,12 @@ class IndexedDbService {
})
}
async getReplaceableEventByCoordinate(coordinate: string): Promise<Event | undefined | null> {
const [kind, pubkey, ...rest] = coordinate.split(':')
const d = rest.length > 0 ? rest.join(':') : undefined
return this.getReplaceableEvent(pubkey, parseInt(kind), d)
}
async getReplaceableEvent(
pubkey: string,
kind: number,