From 2fe1057ef619c48e2c7fcd708323d6333b12eb0a Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 21 Oct 2023 14:20:58 -0300 Subject: [PATCH] profile sitemap. --- data.go | 1 - render_profile.go | 58 ++++++++++++++++++++++++++++------------------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/data.go b/data.go index 3a49928..c31ca1c 100644 --- a/data.go +++ b/data.go @@ -134,7 +134,6 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e key = "lns:" + event.PubKey eventsToFetch = 50000 } else { - templateId = Profile key = "ln:" + event.PubKey } diff --git a/render_profile.go b/render_profile.go index 1dd3ba1..e3db295 100644 --- a/render_profile.go +++ b/render_profile.go @@ -13,13 +13,13 @@ func renderProfile(w http.ResponseWriter, r *http.Request, code string) { fmt.Println(r.URL.Path, "@.", r.Header.Get("user-agent")) w.Header().Set("Content-Type", "text/html") - isProfileSitemap := false + isSitemap := false if strings.HasSuffix(code, ".xml") { - isProfileSitemap = true + isSitemap = true code = code[:len(code)-4] } - data, err := grabData(r.Context(), code, isProfileSitemap) + data, err := grabData(r.Context(), code, isSitemap) if err != nil { w.Header().Set("Cache-Control", "max-age=60") http.Error(w, "error fetching event: "+err.Error(), 404) @@ -33,27 +33,39 @@ func renderProfile(w http.ResponseWriter, r *http.Request, code string) { // pretty JSON eventJSON, _ := json.MarshalIndent(data.event, "", " ") - err = ProfileTemplate.Render(w, &ProfilePage{ - HeadCommonPartial: HeadCommonPartial{IsProfile: true}, - DetailsPartial: DetailsPartial{ - HideDetails: true, - CreatedAt: data.createdAt, - KindDescription: data.kindDescription, - KindNIP: data.kindNIP, - EventJSON: string(eventJSON), - Kind: data.event.Kind, - }, - ClientsPartial: ClientsPartial{ - Clients: generateClientList(code, data.event), - }, + if !isSitemap { + err = ProfileTemplate.Render(w, &ProfilePage{ + HeadCommonPartial: HeadCommonPartial{IsProfile: true}, + DetailsPartial: DetailsPartial{ + HideDetails: true, + CreatedAt: data.createdAt, + KindDescription: data.kindDescription, + KindNIP: data.kindNIP, + EventJSON: string(eventJSON), + Kind: data.event.Kind, + }, + ClientsPartial: ClientsPartial{ + Clients: generateClientList(code, data.event), + }, + + Metadata: data.metadata, + NormalizedAuthorWebsiteURL: normalizeWebsiteURL(data.metadata.Website), + RenderedAuthorAboutText: template.HTML(basicFormatting(html.EscapeString(data.metadata.About), false, false)), + Npub: data.npub, + AuthorRelays: data.authorRelays, + LastNotes: data.renderableLastNotes, + }) + } else { + w.Header().Add("content-type", "text/xml") + w.Write([]byte(XML_HEADER)) + SitemapTemplate.Render(w, &SitemapPage{ + Host: s.Domain, + ModifiedAt: data.modifiedAt, + Npub: data.npub, + LastNotes: data.renderableLastNotes, + }) + } - Metadata: data.metadata, - NormalizedAuthorWebsiteURL: normalizeWebsiteURL(data.metadata.Website), - RenderedAuthorAboutText: template.HTML(basicFormatting(html.EscapeString(data.metadata.About), false, false)), - Npub: data.npub, - AuthorRelays: data.authorRelays, - LastNotes: data.renderableLastNotes, - }) if err != nil { log.Error().Err(err).Msg("error rendering tmpl") }