Row-proxy / internal /version /version.go
kao0312
feat: lowercase model ids, add glm-5, socks5 proxy pool, remove arm build
cbe30d3
raw
history blame
981 Bytes
package version
import (
"io"
"regexp"
"sync"
"time"
"zai-proxy/internal/logger"
"zai-proxy/internal/proxy"
)
var (
feVersion string
versionLock sync.RWMutex
)
func GetFeVersion() string {
versionLock.RLock()
defer versionLock.RUnlock()
return feVersion
}
func fetchFeVersion() {
resp, err := proxy.GetHTTPClient().Get("https://chat.z.ai/")
if err != nil {
logger.LogError("Failed to fetch fe version: %v", err)
return
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
logger.LogError("Failed to read fe version response: %v", err)
return
}
re := regexp.MustCompile(`prod-fe-[\.\d]+`)
match := re.FindString(string(body))
if match != "" {
versionLock.Lock()
feVersion = match
versionLock.Unlock()
logger.LogInfo("Updated fe version: %s", match)
}
}
func StartVersionUpdater() {
go func() {
fetchFeVersion()
ticker := time.NewTicker(1 * time.Hour)
for range ticker.C {
fetchFeVersion()
}
}()
}