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 /*.log
/autoLogin* /autoLogin*
/BitSrunLoginGo* /BitSrunLoginGo*
/build /build
/main*

View File

@@ -27,9 +27,11 @@ func Login(eth *tools.Eth, debugOutput bool) error {
log.Debugln("开始嗅探 acid") log.Debugln("开始嗅探 acid")
acid, e := srunClient.DetectAcid() acid, e := srunClient.DetectAcid()
if e != nil { if e != nil {
log.Errorf("嗅探 acid 失败,使用配置 acid: %v", e) if e == srun.ErrAcidCannotFound {
} else if acid == "" { log.Errorln("找不到 acid使用配置 acid")
log.Errorln("找不到 acid使用配置 acid") } else {
log.Errorf("嗅探 acid 失败,使用配置 acid: %v", e)
}
} else { } else {
log.Debugf("使用嗅探 acid: %s", acid) log.Debugf("使用嗅探 acid: %s", acid)
srunClient.LoginInfo.Meta.Acid = 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) return a.request("cgi-bin/rad_user_info", nil)
} }
// DetectAcid error 为 nil 的情况下 acid 可能为空
func (a *Api) DetectAcid() (string, error) { func (a *Api) DetectAcid() (string, error) {
addr := a.BaseUrl addr := a.BaseUrl
for { for {
@@ -96,15 +95,22 @@ func (a *Api) DetectAcid() (string, error) {
} else { } else {
addr = loc 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 continue
} }
break break
} }
u, e := url.Parse(addr) return "", ErrAcidCannotFound
if e != nil {
return "", e
}
return u.Query().Get(`ac_id`), e
} }
func (a *Api) Login( func (a *Api) Login(

View File

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