Files

40 lines
1.1 KiB
Go

package global
import "strings"
type GConfig struct {
Language string `json:"language"`
LogDir string `json:"log_dir"`
ProxyURL string `json:"proxy_url"` // 代理地址,支持 http:// 和 socks5://
Timeout int `json:"timeout"` // 默认请求超时(秒)
LogLevel string `json:"log_level"` // 日志等级:debug/info/warn/error
}
var GlobalConfig = &GConfig{
Language: "zh-CN",
LogDir: "logs",
ProxyURL: "",
Timeout: 30,
LogLevel: "info",
}
// GetProxy 获取全局代理地址,未设置或为空时返回空字符串
func GetProxy() string {
return NormalizeProxy(GlobalConfig.ProxyURL)
}
// NormalizeProxy 规范化代理地址:无协议前缀时默认 http://
func NormalizeProxy(addr string) string {
addr = strings.TrimSpace(addr)
if addr == "" {
return ""
}
// 已有协议前缀,直接返回
if strings.HasPrefix(addr, "http://") || strings.HasPrefix(addr, "https://") ||
strings.HasPrefix(addr, "socks5://") || strings.HasPrefix(addr, "socks4://") {
return addr
}
// 无前缀,默认 http://
return "http://" + addr
}