improve: 简化嗅探流程
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -4,4 +4,5 @@
|
||||
/*.log
|
||||
/autoLogin*
|
||||
/BitSrunLoginGo*
|
||||
/build
|
||||
/build
|
||||
/main*
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -4,4 +4,5 @@ import "errors"
|
||||
|
||||
var (
|
||||
ErrResultCannotFound = errors.New("result cannot found from response")
|
||||
ErrAcidCannotFound = errors.New("acid not found")
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user