From 00fa06c9e0b9964ab7cd25b4e225853cec5f1170 Mon Sep 17 00:00:00 2001 From: Mmx233 Date: Mon, 1 Jan 2024 17:42:29 +0800 Subject: [PATCH] =?UTF-8?q?improve:=20=E8=87=AA=E5=8A=A8=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=20acid=20=E4=BC=9A=E5=B0=9D=E8=AF=95=E4=BB=8E=20html=20?= =?UTF-8?q?=E4=B8=AD=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/srun/api.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/srun/api.go b/pkg/srun/api.go index 733be1e..bf7a97e 100644 --- a/pkg/srun/api.go +++ b/pkg/srun/api.go @@ -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