mirror of
https://codeberg.org/video-prize-ranch/rimgo.git
synced 2026-01-31 10:56:27 +00:00
filter extensions for HandleMedia
This commit is contained in:
7
main.go
7
main.go
@@ -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, "."):
|
||||||
|
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)
|
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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user