|
|
@@ -75,7 +75,7 @@ func (channel *Channel) getKeys() []string {
|
|
|
// If the key starts with '[', try to parse it as a JSON array (e.g., for Vertex AI scenarios)
|
|
|
if strings.HasPrefix(trimmed, "[") {
|
|
|
var arr []json.RawMessage
|
|
|
- if err := json.Unmarshal([]byte(trimmed), &arr); err == nil {
|
|
|
+ if err := common.Unmarshal([]byte(trimmed), &arr); err == nil {
|
|
|
res := make([]string, len(arr))
|
|
|
for i, v := range arr {
|
|
|
res[i] = string(v)
|
|
|
@@ -197,7 +197,7 @@ func (channel *Channel) GetGroups() []string {
|
|
|
func (channel *Channel) GetOtherInfo() map[string]interface{} {
|
|
|
otherInfo := make(map[string]interface{})
|
|
|
if channel.OtherInfo != "" {
|
|
|
- err := json.Unmarshal([]byte(channel.OtherInfo), &otherInfo)
|
|
|
+ err := common.Unmarshal([]byte(channel.OtherInfo), &otherInfo)
|
|
|
if err != nil {
|
|
|
common.SysError("failed to unmarshal other info: " + err.Error())
|
|
|
}
|
|
|
@@ -425,7 +425,7 @@ func (channel *Channel) Update() error {
|
|
|
trimmed := strings.TrimSpace(keyStr)
|
|
|
if strings.HasPrefix(trimmed, "[") {
|
|
|
var arr []json.RawMessage
|
|
|
- if err := json.Unmarshal([]byte(trimmed), &arr); err == nil {
|
|
|
+ if err := common.Unmarshal([]byte(trimmed), &arr); err == nil {
|
|
|
keys = make([]string, len(arr))
|
|
|
for i, v := range arr {
|
|
|
keys[i] = string(v)
|
|
|
@@ -553,6 +553,7 @@ func handlerMultiKeyUpdate(channel *Channel, usingKey string, status int) {
|
|
|
}
|
|
|
|
|
|
func UpdateChannelStatus(channelId int, usingKey string, status int, reason string) bool {
|
|
|
+ println("UpdateChannelStatus called with channelId:", channelId, "usingKey:", usingKey, "status:", status, "reason:", reason)
|
|
|
if common.MemoryCacheEnabled {
|
|
|
channelStatusLock.Lock()
|
|
|
defer channelStatusLock.Unlock()
|
|
|
@@ -571,10 +572,6 @@ func UpdateChannelStatus(channelId int, usingKey string, status int, reason stri
|
|
|
if channelCache.Status == status {
|
|
|
return false
|
|
|
}
|
|
|
- // 如果缓存渠道不存在(说明已经被禁用),且要设置的状态不为启用,直接返回
|
|
|
- if status != common.ChannelStatusEnabled {
|
|
|
- return false
|
|
|
- }
|
|
|
CacheUpdateChannelStatus(channelId, status)
|
|
|
}
|
|
|
}
|
|
|
@@ -778,7 +775,7 @@ func SearchTags(keyword string, group string, model string, idSort bool) ([]*str
|
|
|
func (channel *Channel) ValidateSettings() error {
|
|
|
channelParams := &dto.ChannelSettings{}
|
|
|
if channel.Setting != nil && *channel.Setting != "" {
|
|
|
- err := json.Unmarshal([]byte(*channel.Setting), channelParams)
|
|
|
+ err := common.Unmarshal([]byte(*channel.Setting), channelParams)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -789,7 +786,7 @@ func (channel *Channel) ValidateSettings() error {
|
|
|
func (channel *Channel) GetSetting() dto.ChannelSettings {
|
|
|
setting := dto.ChannelSettings{}
|
|
|
if channel.Setting != nil && *channel.Setting != "" {
|
|
|
- err := json.Unmarshal([]byte(*channel.Setting), &setting)
|
|
|
+ err := common.Unmarshal([]byte(*channel.Setting), &setting)
|
|
|
if err != nil {
|
|
|
common.SysError("failed to unmarshal setting: " + err.Error())
|
|
|
channel.Setting = nil // 清空设置以避免后续错误
|
|
|
@@ -800,7 +797,7 @@ func (channel *Channel) GetSetting() dto.ChannelSettings {
|
|
|
}
|
|
|
|
|
|
func (channel *Channel) SetSetting(setting dto.ChannelSettings) {
|
|
|
- settingBytes, err := json.Marshal(setting)
|
|
|
+ settingBytes, err := common.Marshal(setting)
|
|
|
if err != nil {
|
|
|
common.SysError("failed to marshal setting: " + err.Error())
|
|
|
return
|
|
|
@@ -811,7 +808,7 @@ func (channel *Channel) SetSetting(setting dto.ChannelSettings) {
|
|
|
func (channel *Channel) GetParamOverride() map[string]interface{} {
|
|
|
paramOverride := make(map[string]interface{})
|
|
|
if channel.ParamOverride != nil && *channel.ParamOverride != "" {
|
|
|
- err := json.Unmarshal([]byte(*channel.ParamOverride), ¶mOverride)
|
|
|
+ err := common.Unmarshal([]byte(*channel.ParamOverride), ¶mOverride)
|
|
|
if err != nil {
|
|
|
common.SysError("failed to unmarshal param override: " + err.Error())
|
|
|
}
|