diff --git a/server/web/msx/msx.go b/server/web/msx/msx.go index 4d411b0..52aa8f6 100644 --- a/server/web/msx/msx.go +++ b/server/web/msx/msx.go @@ -11,9 +11,11 @@ import ( var ( //go:embed assets/tvx.js.gz tvx []byte - //go:embed assets/tizen.html.gz + //go:embed assets/tizen.js.gz tzn []byte - //go:embed assets/torrents.min.html.gz + //go:embed assets/torrents.js.gz + trs []byte + //go:embed assets/torrent.js.gz trn []byte //go:embed assets/html5x.html.gz h5x []byte @@ -27,18 +29,45 @@ func ass(b []byte, t string) func(*gin.Context) { c.Data(200, t+"; charset=UTF-8", b) } } - -func SetupRoute(r *gin.RouterGroup) { - r.GET("/msx/start.json", func(c *gin.Context) { - c.JSON(200, gin.H{ - "name": "TorrServer", - "version": version.Version, - "parameter": "content:request:interaction:init@{PREFIX}{SERVER}/msx/torrents", - }) - }) - r.GET("/msx/russian.json", ass(rus, "application/json")) - r.GET("/msx/tvx.js", ass(tvx, "text/javascript")) - r.GET("/msx/torrents", ass(trn, "text/html")) - r.GET("/msx/tizen", ass(tzn, "text/html")) - r.GET("/msx/html5x", ass(h5x, "text/html")) +func ass(c *gin.Context, b []byte, t string) { + c.Header("Content-Encoding", "gzip") + c.Data(200, t+"; charset=UTF-8", b) +} +func SetupRoute(r *gin.RouterGroup) { + r.GET("/msx/:pth", func(c *gin.Context) { + s := []string{"tvx", "tizen"} + switch p := c.Param("pth"); p { + case "start.json": + c.JSON(200, gin.H{ + "name": "TorrServer", + "version": version.Version, + "parameter": "content:request:interaction:init@{PREFIX}{SERVER}/msx/torrents", + }) + case "russian.json": + ass(c, rus, "application.json") + case "html5x": + ass(c, h5x, "text/html") + case "tvx.js": + ass(c, tvx, "text/javascript") + case "tizen.js": + ass(c, tzn, "text/javascript") + case "torrents.js": + ass(c, trs, "text/javascript") + case "torrent.js": + ass(c, trn, "text/javascript") + case "torrents": + s = append(s, p) + p = "torrent" + fallthrough + case "torrent": + s = append(s, p) + b := []byte("\n\n
\n