Add support for live events, kind:30311

This commit is contained in:
Daniele Tonon
2023-11-06 23:28:20 +01:00
parent 6d6defa419
commit b5a4cfdfdb
5 changed files with 224 additions and 0 deletions

40
data.go
View File

@@ -87,6 +87,7 @@ type Data struct {
content string
alt string
kind1063Metadata *Kind1063Metadata
kind30311Metadata *Kind30311Metadata
}
type Kind1063Metadata struct {
@@ -104,6 +105,16 @@ type Kind1063Metadata struct {
Thumb string
}
type Kind30311Metadata struct {
Title string
Summary string
Image string
Status string
Host sdk.ProfileMetadata
HostNpub string
Tags []string
}
func (fm Kind1063Metadata) IsVideo() bool { return strings.Split(fm.M, "/")[0] == "video" }
func (fm Kind1063Metadata) IsImage() bool { return strings.Split(fm.M, "/")[0] == "image" }
func (fm Kind1063Metadata) DisplayImage() string {
@@ -246,6 +257,35 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
if tag := event.Tags.GetFirst([]string{"summary", ""}); tag != nil {
data.kind1063Metadata.Summary = (*tag)[1]
}
case 30311:
data.templateId = LiveEvent
d := event.Tags.GetFirst([]string{"d", ""})
data.naddr, _ = nip19.EncodeEntity(event.PubKey, event.Kind, d.Value(), data.relays)
data.kind30311Metadata = &Kind30311Metadata{}
if tag := event.Tags.GetFirst([]string{"title", ""}); tag != nil {
data.kind30311Metadata.Title = (*tag)[1]
}
if tag := event.Tags.GetFirst([]string{"summary", ""}); tag != nil {
data.kind30311Metadata.Summary = (*tag)[1]
}
if tag := event.Tags.GetFirst([]string{"image", ""}); tag != nil {
data.kind30311Metadata.Image = (*tag)[1]
}
if tag := event.Tags.GetFirst([]string{"status", ""}); tag != nil {
data.kind30311Metadata.Status = (*tag)[1]
}
pTags := event.Tags.GetAll([]string{"p", ""})
for _, p := range pTags {
if p[3] == "host" {
data.kind30311Metadata.Host = sdk.FetchProfileMetadata(ctx, pool, p[1], data.relays...)
data.kind30311Metadata.HostNpub = data.kind30311Metadata.Host.Npub()
}
}
tTags := event.Tags.GetAll([]string{"t", ""})
for _, t := range tTags {
data.kind30311Metadata.Tags = append(data.kind30311Metadata.Tags, t[1])
}
default:
data.templateId = Other
if event.Kind >= 30000 && event.Kind < 40000 {