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) {
tagNodes := s.NodesByLabel("Tag")
for _, tag := range e.Tags {
if !IsValidTag(tag) {
continue
}
name := tag[0]
value := tag[1]
if name != "e" || !roots.IsValidID(value) {
for _, tag := range s.NodesByLabel("Tag") {
if tag.Props["name"] != "e" {
continue
}
tagNode := FindTagNode(tagNodes, name, value)
if tagNode == nil {
id, ok := tag.Props["value"].(string)
if !ok || !roots.IsValidID(id) {
continue
}
referencedEvent := NewEventNode(value)
event := NewEventNode(id)
s.AddNode(referencedEvent)
s.AddRel(NewReferencesEventRel(tagNode, referencedEvent, nil))
s.AddNode(event)
s.AddRel(NewReferencesEventRel(tag, event, nil))
}
}
func ExpandTaggedUsers(e roots.Event, s *EventSubgraph) {
tagNodes := s.NodesByLabel("Tag")
for _, tag := range e.Tags {
if !IsValidTag(tag) {
continue
}
name := tag[0]
value := tag[1]
if name != "p" || !roots.IsValidKey(value) {
for _, tag := range s.NodesByLabel("Tag") {
if tag.Props["name"] != "p" {
continue
}
tagNode := FindTagNode(tagNodes, name, value)
if tagNode == nil {
pubkey, ok := tag.Props["value"].(string)
if !ok || !roots.IsValidKey(pubkey) {
continue
}
referencedEvent := NewUserNode(value)
user := NewUserNode(pubkey)
s.AddNode(referencedEvent)
s.AddRel(NewReferencesUserRel(tagNode, referencedEvent, nil))
s.AddNode(user)
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
}