use tag nodes instead of event tags slice

This commit is contained in:
Jay
2026-05-21 13:42:28 -04:00
parent 56e928e515
commit a17319ada7
+14 -37
View File
@@ -152,60 +152,37 @@ func DefaultExpanders() []Expander {
} }
func ExpandTaggedEvents(e roots.Event, s *EventSubgraph) { func ExpandTaggedEvents(e roots.Event, s *EventSubgraph) {
tagNodes := s.NodesByLabel("Tag") for _, tag := range s.NodesByLabel("Tag") {
for _, tag := range e.Tags { if tag.Props["name"] != "e" {
if !IsValidTag(tag) {
continue
}
name := tag[0]
value := tag[1]
if name != "e" || !roots.IsValidID(value) {
continue continue
} }
tagNode := FindTagNode(tagNodes, name, value) id, ok := tag.Props["value"].(string)
if tagNode == nil { if !ok || !roots.IsValidID(id) {
continue continue
} }
referencedEvent := NewEventNode(value) event := NewEventNode(id)
s.AddNode(referencedEvent) s.AddNode(event)
s.AddRel(NewReferencesEventRel(tagNode, referencedEvent, nil)) s.AddRel(NewReferencesEventRel(tag, event, nil))
} }
} }
func ExpandTaggedUsers(e roots.Event, s *EventSubgraph) { func ExpandTaggedUsers(e roots.Event, s *EventSubgraph) {
tagNodes := s.NodesByLabel("Tag") for _, tag := range s.NodesByLabel("Tag") {
for _, tag := range e.Tags { if tag.Props["name"] != "p" {
if !IsValidTag(tag) {
continue
}
name := tag[0]
value := tag[1]
if name != "p" || !roots.IsValidKey(value) {
continue continue
} }
tagNode := FindTagNode(tagNodes, name, value) pubkey, ok := tag.Props["value"].(string)
if tagNode == nil { if !ok || !roots.IsValidKey(pubkey) {
continue continue
} }
referencedEvent := NewUserNode(value) user := NewUserNode(pubkey)
s.AddNode(referencedEvent) s.AddNode(user)
s.AddRel(NewReferencesUserRel(tagNode, referencedEvent, nil)) s.AddRel(NewReferencesUserRel(tag, user, nil))
} }
} }
func FindTagNode(nodes []*Node, name, value string) *Node {
for _, node := range nodes {
if node.Props["name"] == name && node.Props["value"] == value {
return node
}
}
return nil
}