mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-06-26 00:31:14 +02:00
sdk: deduplicate relay selection for replaceable loader.
This commit is contained in:
parent
ade77ad6c9
commit
69b97107a9
@ -3,6 +3,7 @@ package sdk
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -131,16 +132,21 @@ func (sys *System) determineRelaysToQuery(ctx context.Context, pubkey string, ki
|
|||||||
}
|
}
|
||||||
|
|
||||||
// use a different set of extra relays depending on the kind
|
// use a different set of extra relays depending on the kind
|
||||||
for len(relays) < 3 {
|
for i := 0; i < 3-len(relays); i++ {
|
||||||
|
var next string
|
||||||
switch kind {
|
switch kind {
|
||||||
case 0:
|
case 0:
|
||||||
relays = append(relays, pickNext(sys.MetadataRelays))
|
next = pickNext(sys.MetadataRelays)
|
||||||
case 3:
|
case 3:
|
||||||
relays = append(relays, pickNext(sys.FollowListRelays))
|
next = pickNext(sys.FollowListRelays)
|
||||||
case 10002:
|
case 10002:
|
||||||
relays = append(relays, pickNext(sys.RelayListRelays))
|
next = pickNext(sys.RelayListRelays)
|
||||||
default:
|
default:
|
||||||
relays = append(relays, pickNext(sys.FallbackRelays))
|
next = pickNext(sys.FallbackRelays)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !slices.Contains(relays, next) {
|
||||||
|
relays = append(relays, next)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user