Spaces:
Paused
Paused
| package helper | |
| import ( | |
| "fmt" | |
| "genspark2api/common/random" | |
| "github.com/gin-gonic/gin" | |
| "html/template" | |
| "log" | |
| "net" | |
| "os/exec" | |
| "runtime" | |
| "strconv" | |
| "strings" | |
| ) | |
| func OpenBrowser(url string) { | |
| var err error | |
| switch runtime.GOOS { | |
| case "linux": | |
| err = exec.Command("xdg-open", url).Start() | |
| case "windows": | |
| err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start() | |
| case "darwin": | |
| err = exec.Command("open", url).Start() | |
| } | |
| if err != nil { | |
| log.Println(err) | |
| } | |
| } | |
| func GetIp() (ip string) { | |
| ips, err := net.InterfaceAddrs() | |
| if err != nil { | |
| log.Println(err) | |
| return ip | |
| } | |
| for _, a := range ips { | |
| if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { | |
| if ipNet.IP.To4() != nil { | |
| ip = ipNet.IP.String() | |
| if strings.HasPrefix(ip, "10") { | |
| return | |
| } | |
| if strings.HasPrefix(ip, "172") { | |
| return | |
| } | |
| if strings.HasPrefix(ip, "192.168") { | |
| return | |
| } | |
| ip = "" | |
| } | |
| } | |
| } | |
| return | |
| } | |
| var sizeKB = 1024 | |
| var sizeMB = sizeKB * 1024 | |
| var sizeGB = sizeMB * 1024 | |
| func Bytes2Size(num int64) string { | |
| numStr := "" | |
| unit := "B" | |
| if num/int64(sizeGB) > 1 { | |
| numStr = fmt.Sprintf("%.2f", float64(num)/float64(sizeGB)) | |
| unit = "GB" | |
| } else if num/int64(sizeMB) > 1 { | |
| numStr = fmt.Sprintf("%d", int(float64(num)/float64(sizeMB))) | |
| unit = "MB" | |
| } else if num/int64(sizeKB) > 1 { | |
| numStr = fmt.Sprintf("%d", int(float64(num)/float64(sizeKB))) | |
| unit = "KB" | |
| } else { | |
| numStr = fmt.Sprintf("%d", num) | |
| } | |
| return numStr + " " + unit | |
| } | |
| func Interface2String(inter interface{}) string { | |
| switch inter := inter.(type) { | |
| case string: | |
| return inter | |
| case int: | |
| return fmt.Sprintf("%d", inter) | |
| case float64: | |
| return fmt.Sprintf("%f", inter) | |
| } | |
| return "Not Implemented" | |
| } | |
| func UnescapeHTML(x string) interface{} { | |
| return template.HTML(x) | |
| } | |
| func IntMax(a int, b int) int { | |
| if a >= b { | |
| return a | |
| } else { | |
| return b | |
| } | |
| } | |
| func GenRequestID() string { | |
| return GetTimeString() + random.GetRandomNumberString(8) | |
| } | |
| func GetResponseID(c *gin.Context) string { | |
| logID := c.GetString(RequestIdKey) | |
| return fmt.Sprintf("chatcmpl-%s", logID) | |
| } | |
| func Max(a int, b int) int { | |
| if a >= b { | |
| return a | |
| } else { | |
| return b | |
| } | |
| } | |
| func AssignOrDefault(value string, defaultValue string) string { | |
| if len(value) != 0 { | |
| return value | |
| } | |
| return defaultValue | |
| } | |
| func MessageWithRequestId(message string, id string) string { | |
| return fmt.Sprintf("%s (request id: %s)", message, id) | |
| } | |
| func String2Int(str string) int { | |
| num, err := strconv.Atoi(str) | |
| if err != nil { | |
| return 0 | |
| } | |
| return num | |
| } | |