preview: support multi-image albums

This commit is contained in:
mappu 2017-11-18 14:11:20 +13:00
parent f27d14aac4
commit 14456e6539

View File

@ -6,21 +6,13 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"strings"
"time" "time"
) )
func (this *Server) handlePreview(w http.ResponseWriter, fileID string) { func (this *Server) handlePreview(w http.ResponseWriter, fileIDList string) {
m, err := this.Metadata(fileID)
if err != nil {
if os.IsNotExist(err) {
http.Error(w, "Not found", 404)
return
}
log.Println(err.Error()) fileIDs := strings.Split(fileIDList, `-`)
http.Error(w, "Internal error", 500)
return
}
tmpl := `<!DOCTYPE html> tmpl := `<!DOCTYPE html>
<html> <html>
@ -33,22 +25,59 @@ html, body {
color: #F0F0F0; color: #F0F0F0;
font-family: sans-serif; font-family: sans-serif;
} }
.entry {
display: inline-block;
margin: 4px;
border-radius: 4px;
max-width: 340px;
}
.thumbnail {
line-height: 0;
width: 340px;
text-align: center;
}
.properties {
background: #000;
padding: 4px;
word-break: break-word;
}
</style> </style>
</head> </head>
<body> <body>
<div class="container"> <div class="container">
`
for _, fileID := range fileIDs {
m, err := this.Metadata(fileID)
if err != nil {
if os.IsNotExist(err) {
http.Error(w, "Not found", 404)
return
}
log.Println(err.Error())
http.Error(w, "Internal error", 500)
return
}
tmpl += `
<div class="entry">
<div class="thumbnail">
<a href="` + html.EscapeString(`/get/`+fileID) + `"><img src="` + html.EscapeString(`/thumb/m/`+fileID) + `"></a>
</div>
<div class="properties"> <div class="properties">
<b>Name:</b> ` + html.EscapeString(m.Filename) + `<br> <b>Name:</b> ` + html.EscapeString(m.Filename) + `<br>
<b>Hash:</b> ` + html.EscapeString(m.FileHash) + `<br> <b>Hash:</b> <span title="` + html.EscapeString(m.FileHash) + `">hover</span><br>
<b>File type:</b> ` + html.EscapeString(m.MimeType) + `<br> <b>File type:</b> ` + html.EscapeString(m.MimeType) + `<br>
<b>Size:</b> ` + html.EscapeString(fmt.Sprintf("%d", m.FileSize)) + `<br> <b>Size:</b> ` + html.EscapeString(fmt.Sprintf("%d", m.FileSize)) + `<br>
<b>Uploader:</b> ` + html.EscapeString(m.UploadIP) + `<br> <b>Uploader:</b> ` + html.EscapeString(m.UploadIP) + `<br>
<b>Uploaded at:</b> ` + html.EscapeString(m.UploadTime.Format(time.RFC3339)) + `<br> <b>Uploaded at:</b> ` + html.EscapeString(m.UploadTime.Format(time.RFC3339)) + `<br>
</div> </div>
<div class="thumbnail">
<a href="` + html.EscapeString(`/get/`+fileID) + `"><img src="` + html.EscapeString(`/thumb/m/`+fileID) + `"></a>
</div> </div>
` `
}
if this.opts.EnableHomepage { if this.opts.EnableHomepage {
tmpl += ` tmpl += `
<div class="return"> <div class="return">