UNPKG

@nostr-dev-kit/ndk

Version:

NDK - Nostr Development Kit. Includes AI Guardrails to catch common mistakes during development.

28 lines (22 loc) 1.02 kB
import type { NDK } from "../ndk"; import type { Hexpubkey } from "../user"; import { getRelaysForSync } from "./write"; export function getTopRelaysForAuthors(ndk: NDK, authors: Hexpubkey[]): WebSocket["url"][] { const relaysWithCount = new Map<WebSocket["url"], number>(); authors.forEach((author) => { const writeRelays = getRelaysForSync(ndk, author); if (writeRelays) { writeRelays.forEach((relay) => { const count = relaysWithCount.get(relay) || 0; relaysWithCount.set(relay, count + 1); }); } }); /** * TODO: Here we are sorting the relays just by number of authors that write to them. * Here is the place where the relay scoring can be used to modify the weights of the relays. */ // Sort the relays by the number of authors that write to them const sortedRelays = Array.from(relaysWithCount.entries()).sort((a, b) => b[1] - a[1]); return sortedRelays.map((entry) => entry[0]); }