package main import ( _ "embed" "encoding/json" "net/http" "sync" "server/version" "github.com/gin-gonic/gin" ) var ( //go:embed russian.min.gz rus []byte //go:embed torrents.min.gz trs []byte //go:embed torrent.min.gz trn []byte //go:embed ts.min.gz its []byte idb = new(sync.Mutex) ids = make(map[string]string) ) func asset(c *gin.Context, t string, d []byte) { c.Header("Content-Encoding", "gzip") c.Data(200, t+"; charset=UTF-8", d) } func SetupRoute(r *gin.RouterGroup) { r.GET("/msx/:pth", func(c *gin.Context) { js := []string{"http://msx.benzac.de/js/tvx-plugin.min.js"} switch p := c.Param("pth"); p { case "start.json": c.JSON(200, map[string]string{ "name": "TorrServer", "version": version.Version, "parameter": "menu:request:interaction:torr@{PREFIX}{SERVER}/msx/init", }) case "russian.json": asset(c, "application/json", rus) case "torrents.js": asset(c, "text/javascript", trs) case "torrent.js": asset(c, "text/javascript", trn) case "ts.js": asset(c, "text/javascript", its) case "torrents": js = append(js, p+".js") p = "torrent" fallthrough case "torrent": if c.Query("platform") == "tizen" { js = append(js, "http://msx.benzac.de/interaction/js/tizen-player.js") } fallthrough case "ts": b := []byte("\n\n
\n