new proxy implementation with Gin framework

- Created a new proxy structure under NewProxy/ using the Gin web framework.
- Added main entry point (main.go) to register and run routes.
- Implemented new route handlers for:
 > Status — monitors active downloads and total data transferred.
 > Forward — handles proxy forwarding logic.
 > Builds — manages build-related requests.
This commit is contained in:
Andrei Alexandru
2025-10-20 04:14:45 +03:00
parent e9f9211e39
commit da38f036ed
8 changed files with 310 additions and 0 deletions

52
NewProxy/utils/release.go Normal file
View File

@@ -0,0 +1,52 @@
package utils
import (
"encoding/json"
"fmt"
"os"
"time"
)
type ReleaseInfo struct {
ReleaseTS float64 `json:"release_ts"`
ReleaseVersion string `json:"release_version"`
}
var LatestRelease = ReleaseInfo{}
func FetchLatestRelease() {
file, err := os.Open("data/release.json")
if err != nil {
fmt.Println("Error opening release.json:", err)
setDefaultRelease()
return
}
defer file.Close()
var data map[string]string
if err := json.NewDecoder(file).Decode(&data); err != nil {
fmt.Println("Error decoding release.json:", err)
setDefaultRelease()
return
}
releaseVersion := data["release_version"]
releaseTimeStr := data["release_time"]
releaseTS := float64(time.Now().Unix())
if t, err := time.Parse(time.RFC3339, releaseTimeStr); err == nil {
releaseTS = float64(t.Unix())
}
LatestRelease = ReleaseInfo{
ReleaseTS: releaseTS,
ReleaseVersion: releaseVersion,
}
}
func setDefaultRelease() {
LatestRelease = ReleaseInfo{
ReleaseTS: float64(time.Now().Unix()),
ReleaseVersion: "N/A",
}
}