fix: sub services

This commit is contained in:
Ilya05228 2025-08-28 20:07:59 +03:00
parent ccbd5c6a0d
commit f77d8b7bb5
2 changed files with 26 additions and 16 deletions

View file

@ -67,6 +67,7 @@ func NewSubJsonService(fragment string, noises string, mux string, rules string,
}
}
// TODO: ошибка ч массивм какая то
func (s *SubJsonService) GetJson(subId string, host string) (string, string, error) {
inbounds, err := s.SubService.getInboundsBySubId(subId)
if err != nil || len(inbounds) == 0 {
@ -87,24 +88,28 @@ func (s *SubJsonService) GetJson(subId string, host string) (string, string, err
if clients == nil {
continue
}
if len(inbound.Listen) > 0 && inbound.Listen[0] == '@' {
listen, port, streamSettings, err := s.SubService.getFallbackMaster(inbound.Listen, inbound.StreamSettings)
if err == nil {
inbound.Listen = listen
inbound.Port = port
inbound.StreamSettings = streamSettings
listenAddress := host
if len(inbound.Listen) > 0 {
if inbound.Listen[0] == '@' {
listen, port, streamSettings, err := s.SubService.getFallbackMaster(inbound.Listen, inbound.StreamSettings)
if err == nil {
listenAddress = listen
inbound.Port = port
inbound.StreamSettings = streamSettings
}
} else {
listenAddress = inbound.Listen
}
}
for _, client := range clients {
if client.Enable && client.SubID == subId {
clientTraffics = append(clientTraffics, s.SubService.getClientTraffics(inbound.ClientStats, client.Email))
newConfigs := s.getConfig(inbound, client, host)
newConfigs := s.getConfig(inbound, client, listenAddress)
configArray = append(configArray, newConfigs...)
}
}
}
if len(configArray) == 0 {
return "", "", nil
}

View file

@ -1,5 +1,7 @@
package sub
// TODO: We need to create a service for link generation and remove link generation from the frontend
import (
"encoding/base64"
"fmt"
@ -33,9 +35,7 @@ func NewSubService(showInfo bool, remarkModel string) *SubService {
remarkModel: remarkModel,
}
}
func (s *SubService) GetSubs(subId string, host string) ([]string, string, error) {
s.address = host
var result []string
var header string
var traffic xray.ClientTraffic
@ -61,12 +61,17 @@ func (s *SubService) GetSubs(subId string, host string) ([]string, string, error
if clients == nil {
continue
}
if len(inbound.Listen) > 0 && inbound.Listen[0] == '@' {
listen, port, streamSettings, err := s.getFallbackMaster(inbound.Listen, inbound.StreamSettings)
if err == nil {
inbound.Listen = listen
inbound.Port = port
inbound.StreamSettings = streamSettings
s.address = host
if len(inbound.Listen) > 0 {
if inbound.Listen[0] == '@' {
listen, port, streamSettings, err := s.getFallbackMaster(inbound.Listen, inbound.StreamSettings)
if err == nil {
s.address = listen
inbound.Port = port
inbound.StreamSettings = streamSettings
}
} else {
s.address = inbound.Listen
}
}
for _, client := range clients {