1
0
mirror of https://github.com/nitezs/sub2clash.git synced 2024-12-23 21:34:41 -05:00
sub2clash/api/route.go

76 lines
1.3 KiB
Go
Raw Normal View History

2023-09-12 06:40:24 -04:00
package api
import (
"embed"
"html/template"
2023-09-25 03:43:21 -04:00
"log"
"net/http"
"sub2clash/api/handler"
"sub2clash/constant"
2023-09-13 01:47:22 -04:00
"sub2clash/middleware"
"github.com/gin-gonic/gin"
2023-09-12 06:40:24 -04:00
)
2023-09-25 03:43:21 -04:00
//go:embed static
var staticFiles embed.FS
2023-09-12 06:40:24 -04:00
func SetRoute(r *gin.Engine) {
2023-09-13 01:47:22 -04:00
r.Use(middleware.ZapLogger())
2023-09-25 03:43:21 -04:00
// 使用内嵌的模板文件
2023-09-25 03:43:21 -04:00
tpl, err := template.ParseFS(staticFiles, "static/*")
if err != nil {
log.Fatalf("Error parsing templates: %v", err)
}
r.SetHTMLTemplate(tpl)
r.GET(
"/static/*filepath", func(c *gin.Context) {
c.FileFromFS("static/"+c.Param("filepath"), http.FS(staticFiles))
},
)
r.GET(
"/", func(c *gin.Context) {
version := constant.Version
if len(constant.Version) > 7 {
version = constant.Version[:7]
2023-09-25 03:43:21 -04:00
}
c.HTML(
200, "index.html", gin.H{
2023-09-25 03:43:21 -04:00
"Version": version,
},
)
},
)
2023-09-12 06:40:24 -04:00
r.GET(
"/clash", func(c *gin.Context) {
handler.SubmodHandler(c)
2023-09-12 06:40:24 -04:00
},
)
r.GET(
"/meta", func(c *gin.Context) {
handler.SubHandler(c)
2023-09-12 06:40:24 -04:00
},
)
2024-03-13 04:28:40 -04:00
r.GET(
"/s/:hash", func(c *gin.Context) {
handler.ShortLinkGetConfigHandler(c)
2023-09-17 03:52:37 -04:00
},
)
r.GET(
2024-03-13 04:28:40 -04:00
"/short", func(c *gin.Context) {
handler.ShortLinkGetUrlHandler(c)
})
r.POST(
"/short", func(c *gin.Context) {
handler.ShortLinkGenHandler(c)
},
)
r.PUT(
"/short", func(c *gin.Context) {
handler.ShortLinkUpdateHandler(c)
2023-09-17 03:52:37 -04:00
},
)
2023-09-12 06:40:24 -04:00
}