From 6981bef65ad458db69874cfc782b4f85109f284b Mon Sep 17 00:00:00 2001 From: Sabir Hassan Date: Tue, 19 Mar 2024 14:23:34 +0500 Subject: [PATCH] fix: first find metadata on purplepag relay and then try other relays --- src/controllers/MetadataController.ts | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/controllers/MetadataController.ts b/src/controllers/MetadataController.ts index d0e25d2..2dabaa9 100644 --- a/src/controllers/MetadataController.ts +++ b/src/controllers/MetadataController.ts @@ -20,10 +20,6 @@ export class MetadataController { } public findMetadata = async (hexKey: string) => { - const mostPopularRelays = import.meta.env.VITE_MOST_POPULAR_RELAYS - const hardcodedPopularRelays = (mostPopularRelays || '').split(' ') - const relays = [...hardcodedPopularRelays, this.specialMetadataRelay] - const eventFilter: Filter = { kinds: [kinds.Metadata], authors: [hexKey] @@ -31,6 +27,25 @@ export class MetadataController { const pool = new SimplePool() + const metadataEvent = await pool + .get([this.specialMetadataRelay], eventFilter) + .catch((err) => { + console.error(err) + return null + }) + + if ( + metadataEvent && + validateEvent(metadataEvent) && + verifyEvent(metadataEvent) + ) { + return metadataEvent + } + + const mostPopularRelays = import.meta.env.VITE_MOST_POPULAR_RELAYS + const hardcodedPopularRelays = (mostPopularRelays || '').split(' ') + const relays = [...hardcodedPopularRelays] + const events = await pool.querySync(relays, eventFilter).catch((err) => { console.error(err) return null @@ -67,7 +82,7 @@ export class MetadataController { if (event.sig.length < 1) { const timestamp = Math.floor(Date.now() / 1000) - // Metadata event to publish to the nquiz relay + // Metadata event to publish to the wss://purplepag.es relay const newMetadataEvent: Event = { ...event, created_at: timestamp