From 310d7c5bf8524e31adf958fdd5d162ef50dcf174 Mon Sep 17 00:00:00 2001 From: Wim Brand Date: Sun, 17 Dec 2017 18:10:59 +0100 Subject: [PATCH] Fixing the meta tags --- res/template/file_viewer.html | 38 ++++++++++++++++----------------- webcontroller/fileViewer.go | 3 +++ webcontroller/ogData.go | 40 +++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 19 deletions(-) create mode 100644 webcontroller/ogData.go diff --git a/res/template/file_viewer.html b/res/template/file_viewer.html index 03449d7..a084308 100644 --- a/res/template/file_viewer.html +++ b/res/template/file_viewer.html @@ -15,22 +15,22 @@ - + {{template "bgpattern"}} - - - - - - - - - + + + + + + + + + - + @@ -95,35 +95,35 @@ onClick="Sharebar.toggle();" class="button-collapse"/> Share on:
- - - - - - - - diff --git a/webcontroller/fileViewer.go b/webcontroller/fileViewer.go index ec19807..40a6071 100644 --- a/webcontroller/fileViewer.go +++ b/webcontroller/fileViewer.go @@ -41,6 +41,7 @@ func ServeFileViewer(w http.ResponseWriter, r *http.Request, p httprouter.Params return } + var ogData OGData var err error if list { listdata := map[string]interface{}{ @@ -54,12 +55,14 @@ func ServeFileViewer(w http.ResponseWriter, r *http.Request, p httprouter.Params "Title": fmt.Sprintf("%d files in Pixeldrain", len(finfo)), "APIResponse": listdata, "Type": "list", + "OGData": ogData.FromFile(*finfo[0]), }) } else { err = templates.Get().ExecuteTemplate(w, "file_viewer", map[string]interface{}{ "Title": fmt.Sprintf("%s ~ Pixeldrain file", finfo[0].FileName), "APIResponse": finfo[0], "Type": "file", + "OGData": ogData.FromFile(*finfo[0]), }) } if err != nil { diff --git a/webcontroller/ogData.go b/webcontroller/ogData.go new file mode 100644 index 0000000..33926c0 --- /dev/null +++ b/webcontroller/ogData.go @@ -0,0 +1,40 @@ +package webcontroller + +import ( + "fornaxian.com/pixeldrain-web/pixelapi" +) + +// OGData holds all information needed to populate the various meta tags on the +// file and list viewer +type OGData struct { + Title string + Type string + SiteName string + Description string + URL string + Image string +} + +// FromFile populates the OGData object from FileInfo. It returns itself for +// compactness. +func (d *OGData) FromFile(f pixelapi.FileInfo) *OGData { + d.Title = f.FileName + d.Type = "website" + d.SiteName = "Pixeldrain" + d.Description = "View " + f.FileName + " on Pixeldrain" + d.URL = "/u/" + f.ID + d.Image = "/api/file/" + f.ID + "/thumbnail" + return d +} + +// FromList populated the OGData object from a List. It returns itself for +// compactness. +func (d *OGData) FromList(l pixelapi.List) *OGData { + d.Title = l.Title + d.Type = "website" + d.SiteName = "Pixeldrain" + d.Description = "View " + l.Title + " on Pixeldrain" + d.URL = "/l/" + l.ID + d.Image = "/api/list/" + l.ID + "/thumbnail" + return d +}