feat: fetch more following's favorite relays

This commit is contained in:
codytseng
2025-04-06 12:31:17 +08:00
parent 027aa4691d
commit cd00e5989b

View File

@@ -835,18 +835,26 @@ class ClientService extends EventTarget {
private async _fetchFollowingFavoriteRelays(pubkey: string) { private async _fetchFollowingFavoriteRelays(pubkey: string) {
const followings = await this.fetchFollowings(pubkey) const followings = await this.fetchFollowings(pubkey)
const favoriteRelaysEvents = await this.fetchEvents(BIG_RELAY_URLS, { const events = await this.fetchEvents(BIG_RELAY_URLS, {
authors: followings, authors: followings,
kinds: [ExtendedKind.FAVORITE_RELAYS], kinds: [ExtendedKind.FAVORITE_RELAYS, kinds.Relaysets],
limit: followings.length limit: 1000
}) })
const alreadyExistsPubkeys = new Set<string>() const alreadyExistsFavoriteRelaysPubkeySet = new Set<string>()
const alreadyExistsRelaySetsPubkeySet = new Set<string>()
const uniqueEvents: NEvent[] = [] const uniqueEvents: NEvent[] = []
favoriteRelaysEvents events
.sort((a, b) => b.created_at - a.created_at) .sort((a, b) => b.created_at - a.created_at)
.forEach((event) => { .forEach((event) => {
if (alreadyExistsPubkeys.has(event.pubkey)) return if (event.kind === ExtendedKind.FAVORITE_RELAYS) {
alreadyExistsPubkeys.add(event.pubkey) if (alreadyExistsFavoriteRelaysPubkeySet.has(event.pubkey)) return
alreadyExistsFavoriteRelaysPubkeySet.add(event.pubkey)
} else if (event.kind === kinds.Relaysets) {
if (alreadyExistsRelaySetsPubkeySet.has(event.pubkey)) return
alreadyExistsRelaySetsPubkeySet.add(event.pubkey)
} else {
return
}
uniqueEvents.push(event) uniqueEvents.push(event)
}) })