Files
trihuy-russian/sub/subController.go
T

49 lines
1.0 KiB
Go
Raw Normal View History

2023-05-22 18:06:34 +03:30
package sub
2023-04-09 23:13:18 +03:30
import (
"encoding/base64"
"strings"
2023-08-26 15:11:12 +03:30
"x-ui/web/service"
2023-04-09 23:13:18 +03:30
"github.com/gin-gonic/gin"
)
type SUBController struct {
2023-08-26 15:11:12 +03:30
subService SubService
settingService service.SettingService
2023-04-09 23:13:18 +03:30
}
func NewSUBController(g *gin.RouterGroup) *SUBController {
a := &SUBController{}
a.initRouter(g)
return a
}
func (a *SUBController) initRouter(g *gin.RouterGroup) {
2023-05-22 18:06:34 +03:30
g = g.Group("/")
2023-04-09 23:13:18 +03:30
g.GET("/:subid", a.subs)
}
func (a *SUBController) subs(c *gin.Context) {
2023-08-26 15:11:12 +03:30
subShowInfo, _ := a.settingService.GetSubShowInfo()
2023-04-09 23:13:18 +03:30
subId := c.Param("subid")
host := strings.Split(c.Request.Host, ":")[0]
2023-08-26 15:11:12 +03:30
subs, headers, err := a.subService.GetSubs(subId, host, subShowInfo)
2023-04-18 21:34:06 +03:30
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
2023-05-17 01:07:35 +03:30
// Add headers
c.Writer.Header().Set("Subscription-Userinfo", headers[0])
c.Writer.Header().Set("Profile-Update-Interval", headers[1])
c.Writer.Header().Set("Profile-Title", headers[2])
2023-04-18 21:34:06 +03:30
2023-04-09 23:13:18 +03:30
c.String(200, base64.StdEncoding.EncodeToString([]byte(result)))
}
}