Files
fnx_web/webcontroller/list_viewer.go

47 lines
1.3 KiB
Go
Raw Normal View History

2017-12-12 23:33:41 +01:00
package webcontroller
import (
"fmt"
"net/http"
2019-09-18 22:30:29 +02:00
"strings"
2017-12-12 23:33:41 +01:00
2018-07-09 21:41:17 +02:00
"fornaxian.com/pixeldrain-web/pixelapi"
"github.com/Fornaxian/log"
2017-12-12 23:33:41 +01:00
"github.com/julienschmidt/httprouter"
)
// ServeListViewer controller for GET /l/:id
func (wc *WebController) serveListViewer(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
2019-12-30 13:00:00 +01:00
var api = pixelapi.New(wc.apiURLInternal, "")
2018-07-09 23:19:16 +02:00
var list, err = api.GetList(p.ByName("id"))
var templateData = wc.newTemplateData(w, r)
2018-07-09 21:41:17 +02:00
if err != nil {
2018-09-10 22:55:31 +02:00
if err, ok := err.(pixelapi.Error); ok && err.ReqError {
log.Error("API request error occurred: %s", err.Value)
2018-01-30 10:29:45 +01:00
}
w.WriteHeader(http.StatusNotFound)
wc.templates.Get().ExecuteTemplate(w, "list_not_found", templateData)
2017-12-12 23:33:41 +01:00
return
}
2017-12-17 18:12:18 +01:00
templateData.Title = fmt.Sprintf("%s ~ Pixeldrain list", list.Title)
2019-07-06 19:36:04 +02:00
templateData.OGData = metadataFromList(*list)
templateData.Other = viewerData{
2019-03-27 23:57:53 +01:00
Type: "list",
CaptchaKey: wc.captchaSiteKey,
APIResponse: map[string]interface{}{
"id": list.ID,
"data": list.Files,
"date_created": list.DateCreated,
"title": list.Title,
"views": 0,
},
2017-12-12 23:33:41 +01:00
}
err = wc.templates.Get().ExecuteTemplate(w, "file_viewer", templateData)
2019-09-18 22:30:29 +02:00
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
2017-12-12 23:33:41 +01:00
log.Error("Error executing template file_viewer: %s", err)
}
}