Return proper HTTP status for files with an abuse status
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<title>{{.}} ~ pixeldrain</title>
|
||||
<meta charset="UTF-8" />
|
||||
<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="128x128" href="/res/img/pixeldrain_128.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) {
|
||||
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) {
|
||||
case "Escape":
|
||||
|
@@ -87,7 +87,7 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
|
||||
|
||||
templateData := wc.newTemplateData(w, r)
|
||||
|
||||
var finfo []apitype.ListFile
|
||||
var files []apitype.ListFile
|
||||
for _, id := range ids {
|
||||
inf, err := templateData.PixelAPI.GetFileInfo(id)
|
||||
if err != nil {
|
||||
@@ -97,37 +97,37 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
|
||||
}
|
||||
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)
|
||||
wc.templates.Get().ExecuteTemplate(w, "file_not_found", templateData)
|
||||
return
|
||||
}
|
||||
|
||||
templateData.OGData = wc.metadataFromFile(finfo[0].FileInfo)
|
||||
templateData.OGData = wc.metadataFromFile(files[0].FileInfo)
|
||||
|
||||
var vd = viewerData{
|
||||
CaptchaKey: wc.captchaKey(),
|
||||
ViewToken: wc.viewTokenOrBust(),
|
||||
AdType: adType(),
|
||||
FileAdsEnabled: finfo[0].ShowAds,
|
||||
FileAdsEnabled: files[0].ShowAds,
|
||||
UserAdsEnabled: !(templateData.Authenticated && templateData.User.Subscription.DisableAdDisplay),
|
||||
}
|
||||
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.APIResponse = apitype.ListInfo{
|
||||
Success: true,
|
||||
Title: "Multiple files",
|
||||
DateCreated: time.Now(),
|
||||
Files: finfo,
|
||||
Files: files,
|
||||
}
|
||||
} else {
|
||||
templateData.Title = fmt.Sprintf("%s ~ pixeldrain", finfo[0].Name)
|
||||
templateData.Title = fmt.Sprintf("%s ~ pixeldrain", files[0].Name)
|
||||
vd.Type = "file"
|
||||
vd.APIResponse = finfo[0].FileInfo
|
||||
vd.APIResponse = files[0].FileInfo
|
||||
}
|
||||
templateData.Other = vd
|
||||
|
||||
@@ -136,6 +136,13 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
|
||||
templateName = "file_viewer_compat"
|
||||
}
|
||||
|
||||
for _, file := range files {
|
||||
if file.AbuseType != "" {
|
||||
w.WriteHeader(http.StatusUnavailableForLegalReasons)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
err = wc.templates.Get().ExecuteTemplate(w, templateName, templateData)
|
||||
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
|
||||
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"
|
||||
}
|
||||
|
||||
for _, file := range list.Files {
|
||||
if file.AbuseType != "" {
|
||||
w.WriteHeader(http.StatusUnavailableForLegalReasons)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
err = wc.templates.Get().ExecuteTemplate(w, templateName, templateData)
|
||||
if err != nil && !strings.Contains(err.Error(), "broken pipe") {
|
||||
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) {
|
||||
og.addOG("og:title", f.Name)
|
||||
og.addOG("og:site_name", "pixeldrain")
|
||||
og.addOG("og:description", "View '"+f.Name+"' on pixeldrain")
|
||||
og.addOG("description", "View '"+f.Name+"' on 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")
|
||||
@@ -71,8 +71,8 @@ func (wc *WebController) metadataFromList(l apitype.ListInfo) (og ogData) {
|
||||
og.addOG("og:type", "website")
|
||||
og.addOG("og:title", l.Title)
|
||||
og.addOG("og:site_name", "pixeldrain")
|
||||
og.addOG("og:description", "View '"+l.Title+"' on pixeldrain")
|
||||
og.addOG("description", "View '"+l.Title+"' on 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")
|
||||
|
Reference in New Issue
Block a user