improve: 简化嗅探流程
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@
|
|||||||
/autoLogin*
|
/autoLogin*
|
||||||
/BitSrunLoginGo*
|
/BitSrunLoginGo*
|
||||||
/build
|
/build
|
||||||
|
/main*
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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")
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user