Spaces:
Running
Running
| package initialize | |
| import ( | |
| "aurora/internal/proxys" | |
| "bufio" | |
| "log/slog" | |
| "net/url" | |
| "os" | |
| ) | |
| func checkProxy() *proxys.IProxy { | |
| var proxies []string | |
| proxyUrl := os.Getenv("PROXY_URL") | |
| if proxyUrl != "" { | |
| proxies = append(proxies, proxyUrl) | |
| } | |
| if _, err := os.Stat("proxies.txt"); err == nil { | |
| file, _ := os.Open("proxies.txt") | |
| defer file.Close() | |
| scanner := bufio.NewScanner(file) | |
| for scanner.Scan() { | |
| proxy := scanner.Text() | |
| parsedURL, err := url.Parse(proxy) | |
| if err != nil { | |
| slog.Warn("proxy url is invalid", "url", proxy, "err", err) | |
| continue | |
| } | |
| // 如果缺少端口信息,不是完整的代理链接 | |
| if parsedURL.Port() != "" { | |
| proxies = append(proxies, proxy) | |
| } else { | |
| continue | |
| } | |
| } | |
| } | |
| if len(proxies) == 0 { | |
| proxy := os.Getenv("http_proxy") | |
| if proxy != "" { | |
| proxies = append(proxies, proxy) | |
| } | |
| } | |
| proxyIP := proxys.NewIProxyIP(proxies) | |
| return &proxyIP | |
| } | |