mirror of
https://github.com/aljazceru/njump.git
synced 2026-01-31 11:44:34 +01:00
turn kind1063Metadata into a struct.
This commit is contained in:
101
data.go
101
data.go
@@ -85,7 +85,23 @@ type Data struct {
|
||||
videoType string
|
||||
image string
|
||||
content string
|
||||
kind1063Metadata map[string]string
|
||||
alt string
|
||||
kind1063Metadata *Kind1063Metadata
|
||||
}
|
||||
|
||||
type Kind1063Metadata struct {
|
||||
magnet string
|
||||
dim string
|
||||
size string
|
||||
summary string
|
||||
image string
|
||||
url string
|
||||
aes256gcm string
|
||||
m string
|
||||
x string
|
||||
i string
|
||||
blurhash string
|
||||
thumb string
|
||||
}
|
||||
|
||||
func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, error) {
|
||||
@@ -119,7 +135,8 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
|
||||
authorRelays := []string{}
|
||||
var content string
|
||||
var templateId TemplateID
|
||||
var kind1063Metadata map[string]string
|
||||
var alt string
|
||||
var kind1063Metadata *Kind1063Metadata
|
||||
|
||||
eventRelays := []string{}
|
||||
for _, relay := range relays {
|
||||
@@ -134,6 +151,10 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
|
||||
eventRelays = append(eventRelays, trimProtocol(relay))
|
||||
}
|
||||
|
||||
if tag := event.Tags.GetFirst([]string{"alt", ""}); tag != nil {
|
||||
alt = (*tag)[1]
|
||||
}
|
||||
|
||||
switch event.Kind {
|
||||
case 0:
|
||||
{
|
||||
@@ -176,39 +197,44 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
|
||||
}
|
||||
case 1063:
|
||||
templateId = FileMetadata
|
||||
kind1063Metadata = make(map[string]string)
|
||||
kind1063Metadata = &Kind1063Metadata{}
|
||||
|
||||
keysToExtract := []string{
|
||||
"url",
|
||||
"m",
|
||||
"aes-256-gcm",
|
||||
"x",
|
||||
"size",
|
||||
"dim",
|
||||
"magnet",
|
||||
"i",
|
||||
"blurhash",
|
||||
"thumb",
|
||||
"image",
|
||||
"summary",
|
||||
"alt",
|
||||
if tag := event.Tags.GetFirst([]string{"url", ""}); tag != nil {
|
||||
kind1063Metadata.url = (*tag)[1]
|
||||
}
|
||||
|
||||
for _, tag := range event.Tags {
|
||||
if len(tag) == 2 {
|
||||
key := tag[0]
|
||||
value := tag[1]
|
||||
|
||||
// Check if the key is in the list of keys to extract
|
||||
for _, k := range keysToExtract {
|
||||
if key == k {
|
||||
kind1063Metadata[key] = value
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"m", ""}); tag != nil {
|
||||
kind1063Metadata.m = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"aes-256-gcm", ""}); tag != nil {
|
||||
kind1063Metadata.aes256gcm = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"x", ""}); tag != nil {
|
||||
kind1063Metadata.x = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"size", ""}); tag != nil {
|
||||
kind1063Metadata.size = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"dim", ""}); tag != nil {
|
||||
kind1063Metadata.dim = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"magnet", ""}); tag != nil {
|
||||
kind1063Metadata.magnet = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"i", ""}); tag != nil {
|
||||
kind1063Metadata.i = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"blurhash", ""}); tag != nil {
|
||||
kind1063Metadata.blurhash = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"thumb", ""}); tag != nil {
|
||||
kind1063Metadata.thumb = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"image", ""}); tag != nil {
|
||||
kind1063Metadata.image = (*tag)[1]
|
||||
}
|
||||
if tag := event.Tags.GetFirst([]string{"summary", ""}); tag != nil {
|
||||
kind1063Metadata.summary = (*tag)[1]
|
||||
}
|
||||
|
||||
default:
|
||||
if event.Kind >= 30000 && event.Kind < 40000 {
|
||||
templateId = Other
|
||||
@@ -238,11 +264,11 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
|
||||
var video string
|
||||
var videoType string
|
||||
if event.Kind == 1063 {
|
||||
if strings.HasPrefix(kind1063Metadata["m"], "image") {
|
||||
image = kind1063Metadata["url"]
|
||||
} else if strings.HasPrefix(kind1063Metadata["m"], "video") {
|
||||
video = kind1063Metadata["url"]
|
||||
videoType = strings.Split(kind1063Metadata["m"], "/")[1]
|
||||
if strings.HasPrefix(kind1063Metadata.m, "image") {
|
||||
image = kind1063Metadata.url
|
||||
} else if strings.HasPrefix(kind1063Metadata.m, "video") {
|
||||
video = kind1063Metadata.url
|
||||
videoType = strings.Split(kind1063Metadata.m, "/")[1]
|
||||
}
|
||||
} else {
|
||||
urls := urlMatcher.FindAllString(event.Content, -1)
|
||||
@@ -304,6 +330,7 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
|
||||
videoType: videoType,
|
||||
image: image,
|
||||
content: content,
|
||||
alt: alt,
|
||||
kind1063Metadata: kind1063Metadata,
|
||||
}, nil
|
||||
}
|
||||
|
||||
2
pages.go
2
pages.go
@@ -270,7 +270,7 @@ type FileMetadataPage struct {
|
||||
ParentLink template.HTML
|
||||
Proxy string
|
||||
SeenOn []string
|
||||
Style string
|
||||
Style Style
|
||||
Subject string
|
||||
TextImageURL string
|
||||
Title string
|
||||
|
||||
@@ -231,10 +231,10 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
|
||||
SeenOn: data.relays,
|
||||
Npub: data.npub,
|
||||
Nprofile: data.nprofile,
|
||||
Magnet: data.kind1063Metadata["magnet"],
|
||||
Dim: data.kind1063Metadata["dim"],
|
||||
Size: data.kind1063Metadata["size"],
|
||||
Summary: data.kind1063Metadata["summary"],
|
||||
Magnet: data.kind1063Metadata.magnet,
|
||||
Dim: data.kind1063Metadata.dim,
|
||||
Size: data.kind1063Metadata.size,
|
||||
Summary: data.kind1063Metadata.summary,
|
||||
}
|
||||
|
||||
switch data.templateId {
|
||||
@@ -285,7 +285,7 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
|
||||
VideoType: data.videoType,
|
||||
})
|
||||
case FileMetadata:
|
||||
thisImage := data.kind1063Metadata["image"]
|
||||
thisImage := data.kind1063Metadata.image
|
||||
if thisImage == "" && data.image != "" {
|
||||
thisImage = data.image
|
||||
}
|
||||
@@ -298,7 +298,7 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
|
||||
},
|
||||
DetailsPartial: detailsData,
|
||||
ClientsPartial: ClientsPartial{
|
||||
Clients: generateClientList(code, data.event),
|
||||
Clients: generateClientList(style, code, data.event),
|
||||
},
|
||||
|
||||
AuthorLong: data.authorLong,
|
||||
@@ -315,16 +315,16 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
|
||||
TwitterTitle: twitterTitle,
|
||||
Video: data.video,
|
||||
VideoType: data.videoType,
|
||||
Url: data.kind1063Metadata["url"],
|
||||
M: data.kind1063Metadata["m"],
|
||||
Aes256Gcm: data.kind1063Metadata["aes-256-gcm"],
|
||||
X: data.kind1063Metadata["x"],
|
||||
I: data.kind1063Metadata["i"],
|
||||
Blurhash: data.kind1063Metadata["blurhash"],
|
||||
Thumb: data.kind1063Metadata["thumb"],
|
||||
Url: data.kind1063Metadata.url,
|
||||
M: data.kind1063Metadata.m,
|
||||
Aes256Gcm: data.kind1063Metadata.aes256gcm,
|
||||
X: data.kind1063Metadata.x,
|
||||
I: data.kind1063Metadata.i,
|
||||
Blurhash: data.kind1063Metadata.blurhash,
|
||||
Thumb: data.kind1063Metadata.thumb,
|
||||
Image: thisImage,
|
||||
Alt: data.kind1063Metadata["alt"],
|
||||
MType: strings.Split(data.kind1063Metadata["m"], "/")[0],
|
||||
Alt: data.alt,
|
||||
MType: strings.Split(data.kind1063Metadata.m, "/")[0],
|
||||
})
|
||||
case Other:
|
||||
err = OtherTemplate.Render(w, &OtherPage{
|
||||
|
||||
Reference in New Issue
Block a user