diff --git a/src/nostr/System.ts b/src/nostr/System.ts index 5076ddd7..c6cd950b 100644 --- a/src/nostr/System.ts +++ b/src/nostr/System.ts @@ -142,16 +142,19 @@ export class NostrSystem { for (let pk of this.WantsMetadata) { let meta = await db.users.get(pk); let now = new Date().getTime(); - if (!meta || meta.loaded < now - ProfileCacheExpire) { + this.WantsMetadata.delete(pk); // always remove from wants list + if (!meta || meta.loaded < (now - ProfileCacheExpire)) { missing.add(pk); - } else { - this.WantsMetadata.delete(pk); + // cap 100 missing profiles + if (missing.size >= 100) { + break; + } } } if (missing.size > 0) { console.debug("Wants: ", missing); - + let sub = new Subscriptions(); sub.Id = `profiles:${sub.Id}`; sub.Kinds = new Set([EventKind.SetMetadata]); diff --git a/src/pages/Layout.js b/src/pages/Layout.js index 80dc05b6..756621e1 100644 --- a/src/pages/Layout.js +++ b/src/pages/Layout.js @@ -27,7 +27,7 @@ export default function Layout(props) { for (let [k, v] of Object.entries(relays)) { System.ConnectToRelay(k, v); } - for (let [k, v] of Object.entries(System.Sockets)) { + for (let [k, v] of System.Sockets) { if (!relays[k]) { System.DisconnectRelay(k); }