From 7258a8a03959e0241087e27e892124bedcf810da Mon Sep 17 00:00:00 2001 From: Wim Brand Date: Tue, 20 Apr 2021 16:36:58 +0200 Subject: [PATCH] Update meta tags --- res/template/file_viewer.html | 12 +-- res/template/fragments/opengraph.html | 10 +-- webcontroller/opengraph.go | 101 +++++++++++++------------- 3 files changed, 63 insertions(+), 60 deletions(-) diff --git a/res/template/file_viewer.html b/res/template/file_viewer.html index a20b0f4..d45fd61 100644 --- a/res/template/file_viewer.html +++ b/res/template/file_viewer.html @@ -5,7 +5,9 @@ {{.Title}} - {{template "user_style" .}} + {{ template "opengraph" .OGData }} + + {{ template "user_style" . }} @@ -20,11 +22,9 @@ - - {{ template "opengraph" .OGData }} @@ -208,7 +208,7 @@ {{ else }} - + {{ end }} diff --git a/res/template/fragments/opengraph.html b/res/template/fragments/opengraph.html index 527e3d6..05c45ee 100644 --- a/res/template/fragments/opengraph.html +++ b/res/template/fragments/opengraph.html @@ -1,13 +1,13 @@ {{ define "opengraph" }} -{{ range $kv := .OGRules }} - +{{ range $kv := .MetaPropRules }} + {{ end }} -{{ range $kv := .TwitterRules }} - +{{ range $kv := .MetaNameRules }} + {{ end }} {{ range $kv := .LinkRules }} - + {{ end }} {{ end }} diff --git a/webcontroller/opengraph.go b/webcontroller/opengraph.go index 2d2afe8..8bda206 100644 --- a/webcontroller/opengraph.go +++ b/webcontroller/opengraph.go @@ -7,9 +7,9 @@ import ( ) type ogData struct { - OGRules []ogProp - TwitterRules []ogProp - LinkRules []ogProp + MetaPropRules []ogProp + MetaNameRules []ogProp + LinkRules []ogProp } type ogProp struct { @@ -17,70 +17,73 @@ type ogProp struct { Value string } -func (og *ogData) addOG(k, v string) { og.OGRules = append(og.OGRules, ogProp{k, v}) } -func (og *ogData) addTwitter(k, v string) { og.TwitterRules = append(og.TwitterRules, ogProp{k, v}) } -func (og *ogData) addLink(k, v string) { og.LinkRules = append(og.LinkRules, ogProp{k, v}) } +func (og *ogData) addProp(k, v string) { og.MetaPropRules = append(og.MetaPropRules, ogProp{k, v}) } +func (og *ogData) addName(k, v string) { og.MetaNameRules = append(og.MetaNameRules, ogProp{k, v}) } +func (og *ogData) addLink(k, v string) { og.LinkRules = append(og.LinkRules, ogProp{k, v}) } func (wc *WebController) metadataFromFile(f pixelapi.FileInfo) (og ogData) { - og.addOG("og:title", f.Name) - og.addOG("og:site_name", "pixeldrain") - og.addOG("og:description", "This file has been shared with you on pixeldrain") - og.addOG("description", "This file has been shared with you on pixeldrain") - og.addOG("og:url", wc.websiteAddress+"/u/"+f.ID) - og.addTwitter("twitter:title", f.Name) - og.addTwitter("twitter:site", "@Fornax96") - og.addTwitter("twitter:domain", "pixeldrain.com") + og.addProp("og:title", f.Name) + og.addProp("og:site_name", "pixeldrain") + og.addProp("og:description", "This file has been shared with you on pixeldrain") + og.addProp("og:url", wc.websiteAddress+"/u/"+f.ID) + og.addProp("description", "This file has been shared with you on pixeldrain") + og.addName("description", "This file has been shared with you on pixeldrain") + og.addName("keywords", "pixeldrain,shared,sharing,upload,file,free") + og.addName("twitter:title", f.Name) + og.addName("twitter:site", "@Fornax96") + og.addName("twitter:domain", "pixeldrain.com") if strings.HasPrefix(f.MimeType, "image") { - og.addOG("og:type", "article") - og.addOG("og:image", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:image:url", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:image:secure_url", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:image:type", f.MimeType) + og.addProp("og:type", "article") + og.addProp("og:image", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:image:url", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:image:secure_url", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:image:type", f.MimeType) - og.addTwitter("twitter:card", "summary_large_image") - og.addTwitter("twitter:image", wc.websiteAddress+"/api/file/"+f.ID) + og.addName("twitter:card", "summary_large_image") + og.addName("twitter:image", wc.websiteAddress+"/api/file/"+f.ID) og.addLink("image_src", wc.websiteAddress+"/api/file/"+f.ID) } else if strings.HasPrefix(f.MimeType, "video") { - og.addOG("og:type", "video.other") - og.addOG("og:image", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") - og.addOG("og:video", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:video:url", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:video:secure_url", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:video:type", f.MimeType) + og.addProp("og:type", "video.other") + og.addProp("og:image", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") + og.addProp("og:video", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:video:url", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:video:secure_url", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:video:type", f.MimeType) - og.addTwitter("twitter:card", "player") - og.addTwitter("twitter:image", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") - og.addTwitter("twitter:player", wc.websiteAddress+"/api/file/"+f.ID) - og.addTwitter("twitter:player:stream", wc.websiteAddress+"/api/file/"+f.ID) - og.addTwitter("twitter:player:stream:content_type", f.MimeType) + og.addName("twitter:card", "player") + og.addName("twitter:image", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") + og.addName("twitter:player", wc.websiteAddress+"/api/file/"+f.ID) + og.addName("twitter:player:stream", wc.websiteAddress+"/api/file/"+f.ID) + og.addName("twitter:player:stream:content_type", f.MimeType) og.addLink("image_src", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") } else if strings.HasPrefix(f.MimeType, "audio") { - og.addOG("og:type", "music.song") - og.addOG("og:audio", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:audio:secure_url", wc.websiteAddress+"/api/file/"+f.ID) - og.addOG("og:audio:type", f.MimeType) + og.addProp("og:type", "music.song") + og.addProp("og:audio", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:audio:secure_url", wc.websiteAddress+"/api/file/"+f.ID) + og.addProp("og:audio:type", f.MimeType) og.addLink("image_src", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") } else { - og.addOG("og:type", "website") + og.addProp("og:type", "website") og.addLink("image_src", wc.websiteAddress+"/api/file/"+f.ID+"/thumbnail") } return og } func (wc *WebController) metadataFromList(l pixelapi.ListInfo) (og ogData) { - og.addOG("og:type", "website") - og.addOG("og:title", l.Title) - og.addOG("og:site_name", "pixeldrain") - og.addOG("og:description", "A collection of files on pixeldrain") - og.addOG("description", "A collection of files on pixeldrain") - og.addOG("og:url", wc.websiteAddress+"/l/"+l.ID) - og.addTwitter("twitter:title", l.Title) - og.addTwitter("twitter:site", "@Fornax96") - og.addTwitter("twitter:domain", "pixeldrain.com") + og.addProp("og:type", "website") + og.addProp("og:title", l.Title) + og.addProp("og:site_name", "pixeldrain") + og.addProp("og:description", "A collection of files on pixeldrain") + og.addProp("description", "A collection of files on pixeldrain") + og.addName("description", "A collection of files on pixeldrain") + og.addProp("og:url", wc.websiteAddress+"/l/"+l.ID) + og.addName("twitter:title", l.Title) + og.addName("twitter:site", "@Fornax96") + og.addName("twitter:domain", "pixeldrain.com") if l.FileCount > 0 { - og.addOG("og:image", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") - og.addOG("og:image:url", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") - og.addTwitter("twitter:image", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") + og.addProp("og:image", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") + og.addProp("og:image:url", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") + og.addName("twitter:image", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") og.addLink("image_src", wc.websiteAddress+"/api/file/"+l.Files[0].ID+"/thumbnail") } return og