filter extensions for HandleMedia

This commit is contained in:
orangix
2026-01-30 04:04:53 +01:00
parent c208a55f40
commit 3b95e89fa1
2 changed files with 11 additions and 5 deletions

View File

@@ -129,7 +129,14 @@ func main() {
r.SetPathValue("postID", component) r.SetPathValue("postID", component)
return pages.HandleGifv(w, r) return pages.HandleGifv(w, r)
case strings.Contains(component, "."): case strings.Contains(component, "."):
return pages.HandleMedia(w, r) baseName, extension := utils.SplitNameExt(r.PathValue("component"))
r.SetPathValue("baseName", baseName)
r.SetPathValue("extension", extension)
switch extension {
case "png", "gif", "jpg", "jpeg", "webp":
return pages.HandleMedia(w, r)
}
fallthrough
default: default:
r.SetPathValue("postID", component) r.SetPathValue("postID", component)
return pages.HandlePost(w, r) return pages.HandlePost(w, r)

View File

@@ -12,12 +12,11 @@ import (
func HandleMedia(w http.ResponseWriter, r *http.Request) error { func HandleMedia(w http.ResponseWriter, r *http.Request) error {
w.Header().Set("Cache-Control", "public,max-age=31557600") w.Header().Set("Cache-Control", "public,max-age=31557600")
w.Header().Set("Content-Security-Policy", "default-src 'none'; style-src 'self'; img-src 'self'") w.Header().Set("Content-Security-Policy", "default-src 'none'; style-src 'self'; img-src 'self'")
splitName := strings.SplitN(r.PathValue("component"), ".", 2) baseName, extension := r.PathValue("baseName"), r.PathValue("extension")
baseName, extension := splitName[0], splitName[1]
if strings.HasPrefix(r.URL.Path, "/stack") { if strings.HasPrefix(r.URL.Path, "/stack") {
return handleMedia(w, r, "https://i.stack.imgur.com/"+strings.ReplaceAll(baseName, "stack/", "")+"."+extension) return handleMedia(w, r, "https://i.stack.imgur.com/"+baseName[5:]+extension)
} else { } else {
return handleMedia(w, r, "https://i.imgur.com/"+baseName+"."+extension) return handleMedia(w, r, "https://i.imgur.com/"+baseName+extension)
} }
} }