2025-01-01 20:30:54 +01:00
|
|
|
package nip22
|
|
|
|
|
|
|
|
import "github.com/nbd-wtf/go-nostr"
|
|
|
|
|
2025-03-10 02:35:02 -03:00
|
|
|
func GetThreadRoot(tags nostr.Tags) nostr.Pointer {
|
2025-01-01 20:30:54 +01:00
|
|
|
for _, tag := range tags {
|
2025-01-13 14:41:07 +09:00
|
|
|
if len(tag) < 2 {
|
|
|
|
continue
|
|
|
|
}
|
2025-03-10 02:35:02 -03:00
|
|
|
switch tag[0] {
|
|
|
|
case "E":
|
|
|
|
ep, _ := nostr.EventPointerFromTag(tag)
|
|
|
|
return ep
|
|
|
|
case "A":
|
|
|
|
ep, _ := nostr.EntityPointerFromTag(tag)
|
|
|
|
return ep
|
|
|
|
case "I":
|
|
|
|
ep, _ := nostr.ExternalPointerFromTag(tag)
|
|
|
|
return ep
|
2025-01-01 20:30:54 +01:00
|
|
|
}
|
|
|
|
}
|
2025-01-13 14:41:07 +09:00
|
|
|
return nil
|
2025-01-01 20:30:54 +01:00
|
|
|
}
|
|
|
|
|
2025-03-10 02:35:02 -03:00
|
|
|
func GetImmediateParent(tags nostr.Tags) nostr.Pointer {
|
2025-01-01 20:30:54 +01:00
|
|
|
for _, tag := range tags {
|
2025-01-13 14:41:07 +09:00
|
|
|
if len(tag) < 2 {
|
|
|
|
continue
|
|
|
|
}
|
2025-03-10 02:35:02 -03:00
|
|
|
switch tag[0] {
|
|
|
|
case "e":
|
|
|
|
ep, _ := nostr.EventPointerFromTag(tag)
|
|
|
|
return ep
|
|
|
|
case "a":
|
|
|
|
ep, _ := nostr.EntityPointerFromTag(tag)
|
|
|
|
return ep
|
|
|
|
case "i":
|
|
|
|
ep, _ := nostr.ExternalPointerFromTag(tag)
|
|
|
|
return ep
|
2025-01-01 20:30:54 +01:00
|
|
|
}
|
|
|
|
}
|
2025-01-13 14:41:07 +09:00
|
|
|
return nil
|
2025-01-01 20:30:54 +01:00
|
|
|
}
|