|
@@ -5,6 +5,7 @@ import (
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"math/rand"
|
|
"math/rand"
|
|
|
"one-api/common"
|
|
"one-api/common"
|
|
|
|
|
+ "one-api/constant"
|
|
|
"one-api/setting"
|
|
"one-api/setting"
|
|
|
"sort"
|
|
"sort"
|
|
|
"strings"
|
|
"strings"
|
|
@@ -66,6 +67,15 @@ func InitChannelCache() {
|
|
|
|
|
|
|
|
channelSyncLock.Lock()
|
|
channelSyncLock.Lock()
|
|
|
group2model2channels = newGroup2model2channels
|
|
group2model2channels = newGroup2model2channels
|
|
|
|
|
+ //channelsIDM = newChannelId2channel
|
|
|
|
|
+ for i, channel := range newChannelId2channel {
|
|
|
|
|
+ if oldChannel, ok := channelsIDM[i]; ok {
|
|
|
|
|
+ // 存在旧的渠道,如果是多key且轮询,保留轮询索引信息
|
|
|
|
|
+ if oldChannel.ChannelInfo.IsMultiKey && oldChannel.ChannelInfo.MultiKeyMode == constant.MultiKeyModePolling {
|
|
|
|
|
+ channel.ChannelInfo.MultiKeyPollingIndex = oldChannel.ChannelInfo.MultiKeyPollingIndex
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
channelsIDM = newChannelId2channel
|
|
channelsIDM = newChannelId2channel
|
|
|
channelSyncLock.Unlock()
|
|
channelSyncLock.Unlock()
|
|
|
common.SysLog("channels synced from database")
|
|
common.SysLog("channels synced from database")
|
|
@@ -203,9 +213,6 @@ func CacheGetChannel(id int) (*Channel, error) {
|
|
|
if !ok {
|
|
if !ok {
|
|
|
return nil, fmt.Errorf("渠道# %d,已不存在", id)
|
|
return nil, fmt.Errorf("渠道# %d,已不存在", id)
|
|
|
}
|
|
}
|
|
|
- if c.Status != common.ChannelStatusEnabled {
|
|
|
|
|
- return nil, fmt.Errorf("渠道# %d,已被禁用", id)
|
|
|
|
|
- }
|
|
|
|
|
return c, nil
|
|
return c, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -224,9 +231,6 @@ func CacheGetChannelInfo(id int) (*ChannelInfo, error) {
|
|
|
if !ok {
|
|
if !ok {
|
|
|
return nil, fmt.Errorf("渠道# %d,已不存在", id)
|
|
return nil, fmt.Errorf("渠道# %d,已不存在", id)
|
|
|
}
|
|
}
|
|
|
- if c.Status != common.ChannelStatusEnabled {
|
|
|
|
|
- return nil, fmt.Errorf("渠道# %d,已被禁用", id)
|
|
|
|
|
- }
|
|
|
|
|
return &c.ChannelInfo, nil
|
|
return &c.ChannelInfo, nil
|
|
|
}
|
|
}
|
|
|
|
|
|