Return proper HTTP status for files with an abuse status
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
<title>{{.}} ~ pixeldrain</title>
|
<title>{{.}} ~ pixeldrain</title>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
|
||||||
<meta name="theme-color" content="#75AD38" />
|
<meta name="theme-color" content="#75B72D" />
|
||||||
<link rel="icon" sizes="32x32" href="/res/img/pixeldrain_32.png" />
|
<link rel="icon" sizes="32x32" href="/res/img/pixeldrain_32.png" />
|
||||||
<link rel="icon" sizes="128x128" href="/res/img/pixeldrain_128.png" />
|
<link rel="icon" sizes="128x128" href="/res/img/pixeldrain_128.png" />
|
||||||
<link rel="icon" sizes="152x152" href="/res/img/pixeldrain_152.png" />
|
<link rel="icon" sizes="152x152" href="/res/img/pixeldrain_152.png" />
|
||||||
|
@@ -227,6 +227,9 @@ const keydown = e => {
|
|||||||
if (e.ctrlKey || e.altKey || e.metaKey) {
|
if (e.ctrlKey || e.altKey || e.metaKey) {
|
||||||
return // prevent custom shortcuts from interfering with system shortcuts
|
return // prevent custom shortcuts from interfering with system shortcuts
|
||||||
}
|
}
|
||||||
|
if (document.activeElement.type && document.activeElement.type === "text") {
|
||||||
|
return // Prevent shortcuts from interfering with input fields
|
||||||
|
}
|
||||||
|
|
||||||
switch (e.key) {
|
switch (e.key) {
|
||||||
case "Escape":
|
case "Escape":
|
||||||
|
@@ -87,7 +87,7 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
|
|||||||
|
|
||||||
templateData := wc.newTemplateData(w, r)
|
templateData := wc.newTemplateData(w, r)
|
||||||
|
|
||||||
var finfo []apitype.ListFile
|
var files []apitype.ListFile
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
inf, err := templateData.PixelAPI.GetFileInfo(id)
|
inf, err := templateData.PixelAPI.GetFileInfo(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -97,37 +97,37 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
|
|||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
finfo = append(finfo, apitype.ListFile{FileInfo: inf})
|
files = append(files, apitype.ListFile{FileInfo: inf})
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(finfo) == 0 {
|
if len(files) == 0 {
|
||||||
w.WriteHeader(http.StatusNotFound)
|
w.WriteHeader(http.StatusNotFound)
|
||||||
wc.templates.Get().ExecuteTemplate(w, "file_not_found", templateData)
|
wc.templates.Get().ExecuteTemplate(w, "file_not_found", templateData)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
templateData.OGData = wc.metadataFromFile(finfo[0].FileInfo)
|
templateData.OGData = wc.metadataFromFile(files[0].FileInfo)
|
||||||
|
|
||||||
var vd = viewerData{
|
var vd = viewerData{
|
||||||
CaptchaKey: wc.captchaKey(),
|
CaptchaKey: wc.captchaKey(),
|
||||||
ViewToken: wc.viewTokenOrBust(),
|
ViewToken: wc.viewTokenOrBust(),
|
||||||
AdType: adType(),
|
AdType: adType(),
|
||||||
FileAdsEnabled: finfo[0].ShowAds,
|
FileAdsEnabled: files[0].ShowAds,
|
||||||
UserAdsEnabled: !(templateData.Authenticated && templateData.User.Subscription.DisableAdDisplay),
|
UserAdsEnabled: !(templateData.Authenticated && templateData.User.Subscription.DisableAdDisplay),
|
||||||
}
|
}
|
||||||
if len(ids) > 1 {
|
if len(ids) > 1 {
|
||||||
templateData.Title = fmt.Sprintf("%d files on pixeldrain", len(finfo))
|
templateData.Title = fmt.Sprintf("%d files on pixeldrain", len(files))
|
||||||
vd.Type = "list"
|
vd.Type = "list"
|
||||||
vd.APIResponse = apitype.ListInfo{
|
vd.APIResponse = apitype.ListInfo{
|
||||||
Success: true,
|
Success: true,
|
||||||
Title: "Multiple files",
|
Title: "Multiple files",
|
||||||
DateCreated: time.Now(),
|
DateCreated: time.Now(),
|
||||||
Files: finfo,
|
Files: files,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
templateData.Title = fmt.Sprintf("%s ~ pixeldrain", finfo[0].Name)
|
templateData.Title = fmt.Sprintf("%s ~ pixeldrain", files[0].Name)
|
||||||
vd.Type = "file"
|
vd.Type = "file"
|
||||||
vd.APIResponse = finfo[0].FileInfo
|
vd.APIResponse = files[0].FileInfo
|
||||||
}
|
}
|
||||||
templateData.Other = vd
|
templateData.Other = vd
|
||||||
|
|
||||||
@@ -136,6 +136,13 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
|
|||||||
templateName = "file_viewer_compat"
|
templateName = "file_viewer_compat"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, file := range files {
|
||||||
|
if file.AbuseType != "" {
|
||||||
|
w.WriteHeader(http.StatusUnavailableForLegalReasons)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = wc.templates.Get().ExecuteTemplate(w, templateName, templateData)
|
err = wc.templates.Get().ExecuteTemplate(w, templateName, templateData)
|
||||||
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
|
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
|
||||||
log.Error("Error executing template file_viewer: %s", err)
|
log.Error("Error executing template file_viewer: %s", err)
|
||||||
@@ -212,6 +219,13 @@ func (wc *WebController) serveListViewer(w http.ResponseWriter, r *http.Request,
|
|||||||
templateName = "file_viewer_compat"
|
templateName = "file_viewer_compat"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, file := range list.Files {
|
||||||
|
if file.AbuseType != "" {
|
||||||
|
w.WriteHeader(http.StatusUnavailableForLegalReasons)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = wc.templates.Get().ExecuteTemplate(w, templateName, templateData)
|
err = wc.templates.Get().ExecuteTemplate(w, templateName, templateData)
|
||||||
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
|
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
|
||||||
log.Error("Error executing template file_viewer: %s", err)
|
log.Error("Error executing template file_viewer: %s", err)
|
||||||
|
@@ -24,8 +24,8 @@ func (og *ogData) addLink(k, v string) { og.LinkRules = append(og.LinkRules,
|
|||||||
func (wc *WebController) metadataFromFile(f apitype.FileInfo) (og ogData) {
|
func (wc *WebController) metadataFromFile(f apitype.FileInfo) (og ogData) {
|
||||||
og.addOG("og:title", f.Name)
|
og.addOG("og:title", f.Name)
|
||||||
og.addOG("og:site_name", "pixeldrain")
|
og.addOG("og:site_name", "pixeldrain")
|
||||||
og.addOG("og:description", "View '"+f.Name+"' on pixeldrain")
|
og.addOG("og:description", "This file has been shared with you on pixeldrain")
|
||||||
og.addOG("description", "View '"+f.Name+"' on pixeldrain")
|
og.addOG("description", "This file has been shared with you on pixeldrain")
|
||||||
og.addOG("og:url", wc.websiteAddress+"/u/"+f.ID)
|
og.addOG("og:url", wc.websiteAddress+"/u/"+f.ID)
|
||||||
og.addTwitter("twitter:title", f.Name)
|
og.addTwitter("twitter:title", f.Name)
|
||||||
og.addTwitter("twitter:site", "@Fornax96")
|
og.addTwitter("twitter:site", "@Fornax96")
|
||||||
@@ -71,8 +71,8 @@ func (wc *WebController) metadataFromList(l apitype.ListInfo) (og ogData) {
|
|||||||
og.addOG("og:type", "website")
|
og.addOG("og:type", "website")
|
||||||
og.addOG("og:title", l.Title)
|
og.addOG("og:title", l.Title)
|
||||||
og.addOG("og:site_name", "pixeldrain")
|
og.addOG("og:site_name", "pixeldrain")
|
||||||
og.addOG("og:description", "View '"+l.Title+"' on pixeldrain")
|
og.addOG("og:description", "A collection of files on pixeldrain")
|
||||||
og.addOG("description", "View '"+l.Title+"' on pixeldrain")
|
og.addOG("description", "A collection of files on pixeldrain")
|
||||||
og.addOG("og:url", wc.websiteAddress+"/l/"+l.ID)
|
og.addOG("og:url", wc.websiteAddress+"/l/"+l.ID)
|
||||||
og.addTwitter("twitter:title", l.Title)
|
og.addTwitter("twitter:title", l.Title)
|
||||||
og.addTwitter("twitter:site", "@Fornax96")
|
og.addTwitter("twitter:site", "@Fornax96")
|
||||||
|
Reference in New Issue
Block a user