Files
new-api/setting/subscription_group_setting.go
2026-04-09 22:31:14 +08:00

50 lines
1.1 KiB
Go

package setting
import (
"encoding/json"
"sync"
"github.com/QuantumNous/new-api/common"
)
var subscriptionGroups = map[string]string{}
var subscriptionGroupsMutex sync.RWMutex
func GetSubscriptionGroupsCopy() map[string]string {
subscriptionGroupsMutex.RLock()
defer subscriptionGroupsMutex.RUnlock()
copy := make(map[string]string, len(subscriptionGroups))
for k, v := range subscriptionGroups {
copy[k] = v
}
return copy
}
func SubscriptionGroups2JSONString() string {
subscriptionGroupsMutex.RLock()
defer subscriptionGroupsMutex.RUnlock()
jsonBytes, err := json.Marshal(subscriptionGroups)
if err != nil {
common.SysLog("error marshalling subscription groups: " + err.Error())
}
return string(jsonBytes)
}
func UpdateSubscriptionGroupsByJSONString(jsonStr string) error {
subscriptionGroupsMutex.Lock()
defer subscriptionGroupsMutex.Unlock()
subscriptionGroups = make(map[string]string)
return json.Unmarshal([]byte(jsonStr), &subscriptionGroups)
}
func IsSubscriptionGroup(name string) bool {
subscriptionGroupsMutex.RLock()
defer subscriptionGroupsMutex.RUnlock()
_, ok := subscriptionGroups[name]
return ok
}