Download internal/version.go from bg5/zai2api3: direct link, hf CLI and curl.
- Browser
- Download file 1.31 kB
-
https://huggingface.co/spaces/bg5/zai2api3/resolve/main/internal/version.go
- Command line
-
hf download hf://spaces/bg5/zai2api3/internal/version.go
-
curl -L -o version.go https://huggingface.co/spaces/bg5/zai2api3/resolve/main/internal/version.go
1.31 kB
| package internal | |
| import ( | |
| "io" | |
| "regexp" | |
| "sync" | |
| "time" | |
| fhttp "github.com/bogdanfinn/fhttp" | |
| ) | |
| var ( | |
| feVersion string | |
| versionLock sync.RWMutex | |
| ) | |
| func GetFeVersion() string { | |
| versionLock.RLock() | |
| defer versionLock.RUnlock() | |
| return feVersion | |
| } | |
| func fetchFeVersion() { | |
| client, err := TLSHTTPClient(15 * time.Second) | |
| if err != nil { | |
| LogError("Failed to create tls client for fe version: %v", err) | |
| return | |
| } | |
| req, err := fhttp.NewRequest("GET", "https://chat.z.ai/", nil) | |
| if err != nil { | |
| LogError("Failed to create fe version request: %v", err) | |
| return | |
| } | |
| ApplyBrowserFingerprintHeaders(req.Header) | |
| resp, err := client.Do(req) | |
| if err != nil { | |
| LogError("Failed to fetch fe version: %v", err) | |
| return | |
| } | |
| defer resp.Body.Close() | |
| body, err := io.ReadAll(resp.Body) | |
| if err != nil { | |
| 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() | |
| LogInfo("Updated fe version: %s", match) | |
| } | |
| } | |
| func StartVersionUpdater() { | |
| fetchFeVersion() | |
| ticker := time.NewTicker(1 * time.Hour) | |
| go func() { | |
| for range ticker.C { | |
| fetchFeVersion() | |
| } | |
| }() | |
| } | |