软件功能基本开发完成,内测BUG等待修复
All checks were successful
build / build (api, amd64, linux) (push) Successful in -15s
build / build (api, arm64, linux) (push) Successful in -29s
build / build (api.exe, amd64, windows) (push) Successful in -27s

This commit is contained in:
CN-JS-HuiBai
2026-04-17 22:31:09 +08:00
parent b3435e5ef8
commit e8e7664aff
19 changed files with 5274 additions and 1151 deletions

View File

@@ -39,16 +39,37 @@ func FulfillSubscription(c *gin.Context, user *model.User) {
ua := c.GetHeader("User-Agent")
flag := c.Query("flag")
uaLower := strings.ToLower(ua)
// 2. Handle specialized configs
if strings.Contains(ua, "Clash") || flag == "clash" {
config, _ := protocol.GenerateClash(servers, *user)
if strings.Contains(uaLower, "stash") || flag == "stash" {
config, _ := protocol.GenerateClashWithTemplate("stash", servers, *user)
c.Header("Content-Type", "application/octet-stream")
c.String(http.StatusOK, config)
return
}
if strings.Contains(strings.ToLower(ua), "sing-box") || flag == "sing-box" {
if strings.Contains(uaLower, "clashmeta") ||
strings.Contains(uaLower, "clash meta") ||
strings.Contains(uaLower, "metacubex") ||
strings.Contains(uaLower, "verge") ||
strings.Contains(uaLower, "flclash") ||
strings.Contains(uaLower, "nekobox") ||
flag == "clashmeta" || flag == "clash-meta" {
config, _ := protocol.GenerateClashWithTemplate("clashmeta", servers, *user)
c.Header("Content-Type", "application/octet-stream")
c.String(http.StatusOK, config)
return
}
if strings.Contains(ua, "Clash") || flag == "clash" {
config, _ := protocol.GenerateClashWithTemplate("clash", servers, *user)
c.Header("Content-Type", "application/octet-stream")
c.String(http.StatusOK, config)
return
}
if strings.Contains(uaLower, "sing-box") || flag == "sing-box" {
config, _ := protocol.GenerateSingBox(servers, *user)
c.Header("Content-Type", "application/json; charset=utf-8")
c.String(http.StatusOK, config)
@@ -99,7 +120,7 @@ func filterServers(servers []model.Server, types, filter string) []model.Server
func generateInfoNodes(user *model.User) []string {
var nodes []string
// Expire Info
expireDate := "长期有效"
if user.ExpiredAt != nil {