feat: better url handling
This commit is contained in:
parent
d38556bc38
commit
bce825031f
10
html/html.go
10
html/html.go
@ -83,7 +83,7 @@ func FileListPage(req string, entries []Entry) string {
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://leech.ontake.dev" />
|
||||
<meta property="og:title" content="%s | leech.ontake.dev" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=2" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.1" />
|
||||
<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>
|
||||
</head>
|
||||
<body>
|
||||
@ -110,16 +110,16 @@ func FileListPage(req string, entries []Entry) string {
|
||||
if dirEntry.IsDir {
|
||||
icon = "/assets/images/diricon.png"
|
||||
}
|
||||
link := "/" + req + "." + dirEntry.Name
|
||||
link := "/" + req + "/" + dirEntry.Name
|
||||
if dirEntry.Name == ".." {
|
||||
splitReq := strings.Split(req, ".")
|
||||
link = "/" + strings.Join(splitReq[:len(splitReq)-1], ".")
|
||||
splitReq := strings.Split(req, "/")
|
||||
link = "/" + strings.Join(splitReq[:len(splitReq)-1], "/")
|
||||
}
|
||||
if req == "" {
|
||||
link = "/" + req + dirEntry.Name
|
||||
}
|
||||
if !dirEntry.IsDir {
|
||||
link = "/serve/" + strings.ReplaceAll(req, ".", "/") + "/" + dirEntry.Name
|
||||
link = "/serve/" + req + "/" + dirEntry.Name
|
||||
}
|
||||
body += fmt.Sprintf(`<a href="%s"><div class="entry"><img src="%s"></img><div class="entry-name">%s</div><div class="entry-size">%s</div></div></a>`, link, icon, dirEntry.Name, formattedSize)
|
||||
}
|
||||
|
4
main.go
4
main.go
@ -21,8 +21,6 @@ func main() {
|
||||
app.Use(logger.New(logger.Config{
|
||||
Format: "[${ip}]:${port} ${status} - ${method} ${path}\n",
|
||||
}))
|
||||
app.Get("/:req", route.HandleList)
|
||||
app.Get("/", route.HandleList)
|
||||
|
||||
app.Use("/assets", filesystem.New(filesystem.Config{
|
||||
Root: http.FS(assetsEmbed),
|
||||
@ -34,5 +32,7 @@ func main() {
|
||||
app.Static("/serve/"+url.QueryEscape(dirName), dirToServe)
|
||||
}
|
||||
|
||||
app.Use("/", route.HandleList)
|
||||
|
||||
app.Listen(config.Config.Host)
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package route
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"leech/config"
|
||||
"leech/html"
|
||||
"net/url"
|
||||
@ -36,7 +37,8 @@ func RecursivelyGetSize(completePath string) (int64, error) {
|
||||
}
|
||||
|
||||
func HandleList(c *fiber.Ctx) error {
|
||||
encodedReq := c.Params("req")
|
||||
encodedReq := c.Path()[1:]
|
||||
fmt.Println(encodedReq)
|
||||
req, err := url.QueryUnescape(encodedReq)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).SendString(err.Error())
|
||||
@ -66,8 +68,9 @@ func HandleList(c *fiber.Ctx) error {
|
||||
|
||||
return c.SendString(html.FileListPage(req, entries))
|
||||
} else {
|
||||
pathSlice := strings.Split(req, ".")
|
||||
pathSlice := strings.Split(req, "/")
|
||||
pathBase, ok := config.Config.ServeDirs[pathSlice[0]]
|
||||
fmt.Println(pathSlice[0])
|
||||
if ok {
|
||||
pathSlice[0] = pathBase
|
||||
completePath := path.Join(pathSlice...)
|
||||
|
Loading…
Reference in New Issue
Block a user