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 | |
} | |