mirror of
https://codeberg.org/video-prize-ranch/rimgo.git
synced 2026-02-27 18:59:45 +00:00
simplify SplitNameExt
This commit is contained in:
6
main.go
6
main.go
@@ -87,7 +87,7 @@ func main() {
|
|||||||
app.Handle("GET /t/{tag}", wrapHandler(func(w http.ResponseWriter, r *http.Request) error {
|
app.Handle("GET /t/{tag}", wrapHandler(func(w http.ResponseWriter, r *http.Request) error {
|
||||||
name, ext := utils.SplitNameExt(r.PathValue("tag"))
|
name, ext := utils.SplitNameExt(r.PathValue("tag"))
|
||||||
if ext != "" {
|
if ext != "" {
|
||||||
r.SetPathValue("tag", name[0:len(name)-1])
|
r.SetPathValue("tag", name)
|
||||||
r.SetPathValue("type", ext)
|
r.SetPathValue("type", ext)
|
||||||
return pages.HandleTagRSS(w, r)
|
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 {
|
app.Handle("GET /user/{userID}", wrapHandler(func(w http.ResponseWriter, r *http.Request) error {
|
||||||
name, ext := utils.SplitNameExt(r.PathValue("userID"))
|
name, ext := utils.SplitNameExt(r.PathValue("userID"))
|
||||||
if ext != "" {
|
if ext != "" {
|
||||||
r.SetPathValue("userID", name[0:len(name)-1])
|
r.SetPathValue("userID", name)
|
||||||
r.SetPathValue("type", ext)
|
r.SetPathValue("type", ext)
|
||||||
return pages.HandleUserRSS(w, r)
|
return pages.HandleUserRSS(w, r)
|
||||||
}
|
}
|
||||||
@@ -133,7 +133,7 @@ func main() {
|
|||||||
r.SetPathValue("baseName", baseName)
|
r.SetPathValue("baseName", baseName)
|
||||||
r.SetPathValue("extension", extension)
|
r.SetPathValue("extension", extension)
|
||||||
switch extension {
|
switch extension {
|
||||||
case "png", "gif", "jpg", "jpeg", "webp", "mp4", "webm":
|
case ".png", ".gif", ".jpg", ".jpeg", ".webp", ".mp4", ".webm":
|
||||||
return pages.HandleMedia(w, r)
|
return pages.HandleMedia(w, r)
|
||||||
}
|
}
|
||||||
fallthrough
|
fallthrough
|
||||||
|
|||||||
@@ -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'")
|
w.Header().Set("Content-Security-Policy", "default-src 'none'; style-src 'self'; img-src 'self'")
|
||||||
baseName, extension := r.PathValue("baseName"), r.PathValue("extension")
|
baseName, extension := r.PathValue("baseName"), r.PathValue("extension")
|
||||||
if strings.HasPrefix(r.URL.Path, "/stack") {
|
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 {
|
} else {
|
||||||
return handleMedia(w, r, "https://i.imgur.com/"+baseName+extension)
|
return handleMedia(w, r, "https://i.imgur.com/"+baseName+extension)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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")))
|
w.Header().Set("Content-Type", mime.TypeByExtension("."+r.PathValue("type")))
|
||||||
switch r.PathValue("type") {
|
switch r.PathValue("type") {
|
||||||
case "atom":
|
case ".atom":
|
||||||
body, err := feed.ToAtom()
|
body, err := feed.ToAtom()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
w.Write([]byte(body))
|
w.Write([]byte(body))
|
||||||
case "json":
|
case ".json":
|
||||||
body, err := feed.ToJSON()
|
body, err := feed.ToJSON()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
w.Write([]byte(body))
|
w.Write([]byte(body))
|
||||||
case "rss":
|
case ".rss":
|
||||||
body, err := feed.ToRss()
|
body, err := feed.ToRss()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -1,16 +1,8 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
|
import "path/filepath"
|
||||||
|
|
||||||
func SplitNameExt(path string) (name, ext string) {
|
func SplitNameExt(path string) (name, ext string) {
|
||||||
name, ext = path, ""
|
ext = filepath.Ext(path)
|
||||||
for range 5 {
|
return path[:len(path)-len(ext)], ext
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user