mirror of
https://github.com/aljazceru/njump.git
synced 2025-12-17 14:24:27 +01:00
getRelay() -> getRandomRelay()
This commit is contained in:
25
nostr.go
25
nostr.go
@@ -3,7 +3,6 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
|
||||||
"net/url"
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -57,14 +56,6 @@ type CachedEvent struct {
|
|||||||
Relays []string `json:"r"`
|
Relays []string `json:"r"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func getRelay() string {
|
|
||||||
if serial == 0 {
|
|
||||||
serial = rand.Intn(len(everything))
|
|
||||||
}
|
|
||||||
serial = (serial + 1) % len(everything)
|
|
||||||
return everything[serial]
|
|
||||||
}
|
|
||||||
|
|
||||||
func getEvent(ctx context.Context, code string, relayHints []string) (*nostr.Event, []string, error) {
|
func getEvent(ctx context.Context, code string, relayHints []string) (*nostr.Event, []string, error) {
|
||||||
wdb := eventstore.RelayWrapper{Store: db}
|
wdb := eventstore.RelayWrapper{Store: db}
|
||||||
|
|
||||||
@@ -100,8 +91,7 @@ func getEvent(ctx context.Context, code string, relayHints []string) (*nostr.Eve
|
|||||||
case nostr.EventPointer:
|
case nostr.EventPointer:
|
||||||
author = v.Author
|
author = v.Author
|
||||||
filter.IDs = []string{v.ID}
|
filter.IDs = []string{v.ID}
|
||||||
relays = append(relays, getRelay())
|
relays = append(relays, getRandomRelay(), getRandomRelay())
|
||||||
relays = append(relays, getRelay())
|
|
||||||
relays = append(relays, v.Relays...)
|
relays = append(relays, v.Relays...)
|
||||||
withRelays = true
|
withRelays = true
|
||||||
case nostr.EntityPointer:
|
case nostr.EntityPointer:
|
||||||
@@ -113,16 +103,13 @@ func getEvent(ctx context.Context, code string, relayHints []string) (*nostr.Eve
|
|||||||
if v.Kind != 0 {
|
if v.Kind != 0 {
|
||||||
filter.Kinds = append(filter.Kinds, v.Kind)
|
filter.Kinds = append(filter.Kinds, v.Kind)
|
||||||
}
|
}
|
||||||
relays = append(relays, getRelay())
|
relays = append(relays, getRandomRelay(), getRandomRelay())
|
||||||
relays = append(relays, getRelay())
|
|
||||||
relays = append(relays, v.Relays...)
|
relays = append(relays, v.Relays...)
|
||||||
withRelays = true
|
withRelays = true
|
||||||
case string:
|
case string:
|
||||||
if prefix == "note" {
|
if prefix == "note" {
|
||||||
filter.IDs = []string{v}
|
filter.IDs = []string{v}
|
||||||
relays = append(relays, getRelay())
|
relays = append(relays, getRandomRelay(), getRandomRelay(), getRandomRelay())
|
||||||
relays = append(relays, getRelay())
|
|
||||||
relays = append(relays, getRelay())
|
|
||||||
} else if prefix == "npub" {
|
} else if prefix == "npub" {
|
||||||
author = v
|
author = v
|
||||||
filter.Authors = []string{v}
|
filter.Authors = []string{v}
|
||||||
@@ -135,7 +122,7 @@ func getEvent(ctx context.Context, code string, relayHints []string) (*nostr.Eve
|
|||||||
if res, _ := wdb.QuerySync(ctx, filter); len(res) != 0 {
|
if res, _ := wdb.QuerySync(ctx, filter); len(res) != 0 {
|
||||||
evt := res[0]
|
evt := res[0]
|
||||||
scheduleEventExpiration(evt.ID, time.Hour*24*7)
|
scheduleEventExpiration(evt.ID, time.Hour*24*7)
|
||||||
return evt, getRelaysForEvent(evt.ID), nil
|
return evt, getRandomRelaysForEvent(evt.ID), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// otherwise fetch from external relays
|
// otherwise fetch from external relays
|
||||||
@@ -148,7 +135,7 @@ func getEvent(ctx context.Context, code string, relayHints []string) (*nostr.Eve
|
|||||||
relays = append(relays, authorRelays...)
|
relays = append(relays, authorRelays...)
|
||||||
}
|
}
|
||||||
for len(relays) < 5 {
|
for len(relays) < 5 {
|
||||||
relays = append(relays, getRelay())
|
relays = append(relays, getRandomRelay())
|
||||||
}
|
}
|
||||||
|
|
||||||
relays = unique(relays)
|
relays = unique(relays)
|
||||||
@@ -226,7 +213,7 @@ func authorLastNotes(ctx context.Context, pubkey string, relays []string, isSite
|
|||||||
}()
|
}()
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
relays = unique(append(relays, getRelay(), getRelay()))
|
relays = unique(append(relays, getRandomRelay(), getRandomRelay()))
|
||||||
ch := pool.SubManyEose(ctx, relays, nostr.Filters{filter})
|
ch := pool.SubManyEose(ctx, relays, nostr.Filters{filter})
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
|
|||||||
10
utils.go
10
utils.go
@@ -185,7 +185,7 @@ func getParentNevent(event *nostr.Event, fallbackRelay string) string {
|
|||||||
} else if fallbackRelay != "" {
|
} else if fallbackRelay != "" {
|
||||||
relay = fallbackRelay
|
relay = fallbackRelay
|
||||||
} else {
|
} else {
|
||||||
relay = everything[rand.Intn(len(everything))]
|
relay = getRandomRelay()
|
||||||
}
|
}
|
||||||
parentNevent, _ = nip19.EncodeEvent((*replyTag)[1], []string{relay}, "")
|
parentNevent, _ = nip19.EncodeEvent((*replyTag)[1], []string{relay}, "")
|
||||||
}
|
}
|
||||||
@@ -533,3 +533,11 @@ func shouldUseRelayForNip19(relayUrl string) bool {
|
|||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getRandomRelay() string {
|
||||||
|
if serial == 0 {
|
||||||
|
serial = rand.Intn(len(everything))
|
||||||
|
}
|
||||||
|
serial = (serial + 1) % len(everything)
|
||||||
|
return everything[serial]
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user