Files
trihuy-russian/web/controller/sub.go
T

47 lines
892 B
Go
Raw Normal View History

2023-04-09 23:13:18 +03:30
package controller
import (
"encoding/base64"
"strings"
"x-ui/web/service"
"github.com/gin-gonic/gin"
)
type SUBController struct {
BaseController
subService service.SubService
}
func NewSUBController(g *gin.RouterGroup) *SUBController {
a := &SUBController{}
a.initRouter(g)
return a
}
func (a *SUBController) initRouter(g *gin.RouterGroup) {
g = g.Group("/sub")
g.GET("/:subid", a.subs)
}
func (a *SUBController) subs(c *gin.Context) {
subId := c.Param("subid")
host := strings.Split(c.Request.Host, ":")[0]
2023-04-18 21:34:06 +03:30
subs, header, err := a.subService.GetSubs(subId, host)
if err != nil || len(subs) == 0 {
2023-04-09 23:13:18 +03:30
c.String(400, "Error!")
} else {
result := ""
for _, sub := range subs {
result += sub + "\n"
}
2023-04-18 21:34:06 +03:30
// Add subscription-userinfo
2023-04-20 15:51:38 +03:30
c.Writer.Header().Set("Subscription-Userinfo", header)
2023-04-18 21:34:06 +03:30
2023-04-09 23:13:18 +03:30
c.String(200, base64.StdEncoding.EncodeToString([]byte(result)))
}
}