improve: 自动检测 acid 会尝试从 html 中匹配

This commit is contained in:
Mmx233
2024-01-01 17:42:29 +08:00
parent 5e73e952bf
commit 00fa06c9e0

View File

@@ -169,6 +169,31 @@ func (a *Api) _SearchAcid(query url.Values) (string, bool) {
// DetectAcid err 为 nil 时 acid 一定存在
func (a *Api) DetectAcid() (string, error) {
// 从 html 寻找 acid
log.Debugln("HTTP GET", a.BaseUrl)
res, err := a.Client.Get(a.BaseUrl)
if err == nil {
defer res.Body.Close()
if res.StatusCode == 200 {
var indexHtml []byte
indexHtml, err = io.ReadAll(res.Body)
if err == nil {
var reg *regexp.Regexp
reg, err = regexp.Compile(`"ac_id".*?value="(.+)"`)
if err != nil {
return "", err
}
result := reg.FindSubmatch(indexHtml)
if len(result) == 2 {
return string(result[1]), nil
}
}
} else {
_, _ = io.Copy(io.Discard, res.Body)
}
}
// 从入口地址 url query 寻找 acid
baseUrl, err := url.Parse(a.BaseUrl)
if err != nil {
return "", err