improve: 简化嗅探流程

This commit is contained in:
Mmx233
2023-06-04 21:02:14 +08:00
parent 6ce42757af
commit 9bc2beef75
4 changed files with 20 additions and 10 deletions

3
.gitignore vendored
View File

@@ -4,4 +4,5 @@
/*.log
/autoLogin*
/BitSrunLoginGo*
/build
/build
/main*

View File

@@ -27,9 +27,11 @@ func Login(eth *tools.Eth, debugOutput bool) error {
log.Debugln("开始嗅探 acid")
acid, e := srunClient.DetectAcid()
if e != nil {
log.Errorf("嗅探 acid 失败,使用配置 acid: %v", e)
} else if acid == "" {
log.Errorln("找不到 acid使用配置 acid")
if e == srun.ErrAcidCannotFound {
log.Errorln("找不到 acid使用配置 acid")
} else {
log.Errorf("嗅探 acid 失败,使用配置 acid: %v", e)
}
} else {
log.Debugf("使用嗅探 acid: %s", acid)
srunClient.LoginInfo.Meta.Acid = acid

View File

@@ -79,7 +79,6 @@ func (a *Api) GetUserInfo() (map[string]interface{}, error) {
return a.request("cgi-bin/rad_user_info", nil)
}
// DetectAcid error 为 nil 的情况下 acid 可能为空
func (a *Api) DetectAcid() (string, error) {
addr := a.BaseUrl
for {
@@ -96,15 +95,22 @@ func (a *Api) DetectAcid() (string, error) {
} else {
addr = loc
}
var u *url.URL
u, e = url.Parse(addr)
if e != nil {
return "", e
}
acid := u.Query().Get(`ac_id`)
if acid != "" {
return acid, nil
}
continue
}
break
}
u, e := url.Parse(addr)
if e != nil {
return "", e
}
return u.Query().Get(`ac_id`), e
return "", ErrAcidCannotFound
}
func (a *Api) Login(

View File

@@ -4,4 +4,5 @@ import "errors"
var (
ErrResultCannotFound = errors.New("result cannot found from response")
ErrAcidCannotFound = errors.New("acid not found")
)