breaking pointer mess

- ExternalPointer (?)
- nip27, nip22 and nip10 functions to return pointers
- get rid of sdk/thread helpers that were just a thin layer over nip10 and nip22
This commit is contained in:
fiatjaf
2025-03-10 02:35:02 -03:00
parent f575f63f6c
commit 7e04bbb4b8
8 changed files with 119 additions and 79 deletions

View File

@ -106,27 +106,36 @@ func (sys *System) trackEventHints(ie nostr.RelayEvent) {
}
for ref := range nip27.ParseReferences(*ie.Event) {
if ref.Profile != nil {
for _, relay := range ref.Profile.Relays {
switch pointer := ref.Pointer.(type) {
case nostr.ProfilePointer:
for _, relay := range pointer.Relays {
if IsVirtualRelay(relay) {
continue
}
if p, err := url.Parse(relay); err != nil || (p.Scheme != "wss" && p.Scheme != "ws") {
continue
}
if nostr.IsValidPublicKey(ref.Profile.PublicKey) {
sys.Hints.Save(ref.Profile.PublicKey, nostr.NormalizeURL(relay), hints.LastInHint, ie.CreatedAt)
}
sys.Hints.Save(pointer.PublicKey, nostr.NormalizeURL(relay), hints.LastInHint, ie.CreatedAt)
}
} else if ref.Event != nil && nostr.IsValidPublicKey(ref.Event.Author) {
for _, relay := range ref.Event.Relays {
case nostr.EventPointer:
for _, relay := range pointer.Relays {
if IsVirtualRelay(relay) {
continue
}
if p, err := url.Parse(relay); err != nil || (p.Scheme != "wss" && p.Scheme != "ws") {
continue
}
sys.Hints.Save(ref.Event.Author, nostr.NormalizeURL(relay), hints.LastInHint, ie.CreatedAt)
sys.Hints.Save(pointer.Author, nostr.NormalizeURL(relay), hints.LastInHint, ie.CreatedAt)
}
case nostr.EntityPointer:
for _, relay := range pointer.Relays {
if IsVirtualRelay(relay) {
continue
}
if p, err := url.Parse(relay); err != nil || (p.Scheme != "wss" && p.Scheme != "ws") {
continue
}
sys.Hints.Save(pointer.PublicKey, nostr.NormalizeURL(relay), hints.LastInHint, ie.CreatedAt)
}
}
}