From 4ffe09bb81a5a83b23592729ba7b567714987e9c Mon Sep 17 00:00:00 2001 From: orangix Date: Sat, 31 Jan 2026 05:19:02 +0100 Subject: [PATCH] simplify SplitNameExt --- main.go | 6 +++--- pages/media.go | 2 +- pages/rss.go | 6 +++--- utils/splitNameExt.go | 16 ++++------------ 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/main.go b/main.go index c0ad7ed..159b71d 100644 --- a/main.go +++ b/main.go @@ -87,7 +87,7 @@ func main() { app.Handle("GET /t/{tag}", wrapHandler(func(w http.ResponseWriter, r *http.Request) error { name, ext := utils.SplitNameExt(r.PathValue("tag")) if ext != "" { - r.SetPathValue("tag", name[0:len(name)-1]) + r.SetPathValue("tag", name) r.SetPathValue("type", ext) return pages.HandleTagRSS(w, r) } @@ -98,7 +98,7 @@ func main() { app.Handle("GET /user/{userID}", wrapHandler(func(w http.ResponseWriter, r *http.Request) error { name, ext := utils.SplitNameExt(r.PathValue("userID")) if ext != "" { - r.SetPathValue("userID", name[0:len(name)-1]) + r.SetPathValue("userID", name) r.SetPathValue("type", ext) return pages.HandleUserRSS(w, r) } @@ -133,7 +133,7 @@ func main() { r.SetPathValue("baseName", baseName) r.SetPathValue("extension", extension) switch extension { - case "png", "gif", "jpg", "jpeg", "webp", "mp4", "webm": + case ".png", ".gif", ".jpg", ".jpeg", ".webp", ".mp4", ".webm": return pages.HandleMedia(w, r) } fallthrough diff --git a/pages/media.go b/pages/media.go index 8ea24e5..a010cc9 100644 --- a/pages/media.go +++ b/pages/media.go @@ -14,7 +14,7 @@ func HandleMedia(w http.ResponseWriter, r *http.Request) error { w.Header().Set("Content-Security-Policy", "default-src 'none'; style-src 'self'; img-src 'self'") baseName, extension := r.PathValue("baseName"), r.PathValue("extension") if strings.HasPrefix(r.URL.Path, "/stack") { - return handleMedia(w, r, "https://i.stack.imgur.com/"+baseName[5:]+extension) + return handleMedia(w, r, "https://i.stack.imgur.com/"+baseName+extension) } else { return handleMedia(w, r, "https://i.imgur.com/"+baseName+extension) } diff --git a/pages/rss.go b/pages/rss.go index e748b40..975b568 100644 --- a/pages/rss.go +++ b/pages/rss.go @@ -116,19 +116,19 @@ func handleFeed(w http.ResponseWriter, r *http.Request, instance string, feed *f w.Header().Set("Content-Type", mime.TypeByExtension("."+r.PathValue("type"))) switch r.PathValue("type") { - case "atom": + case ".atom": body, err := feed.ToAtom() if err != nil { return err } w.Write([]byte(body)) - case "json": + case ".json": body, err := feed.ToJSON() if err != nil { return err } w.Write([]byte(body)) - case "rss": + case ".rss": body, err := feed.ToRss() if err != nil { return err diff --git a/utils/splitNameExt.go b/utils/splitNameExt.go index fc87bd2..0487a86 100644 --- a/utils/splitNameExt.go +++ b/utils/splitNameExt.go @@ -1,16 +1,8 @@ package utils +import "path/filepath" + func SplitNameExt(path string) (name, ext string) { - name, ext = path, "" - for range 5 { - if len(name) == 0 || name[len(name)-1] == '.' || name[len(name)-1] == '/' { - break - } - name = name[:len(name)-1] - ext = path[len(name):] - } - if len(name) == 0 || name[len(name)-1] != '.' { - return path, "" - } - return + ext = filepath.Ext(path) + return path[:len(path)-len(ext)], ext }