Skip to content

Commit

Permalink
improve: 简化嗅探流程
Browse files Browse the repository at this point in the history
  • Loading branch information
Mmx233 committed Jun 4, 2023
1 parent 6ce4275 commit 9bc2bee
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 10 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
/*.log
/autoLogin*
/BitSrunLoginGo*
/build
/build
/main*
8 changes: 5 additions & 3 deletions internal/controllers/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
18 changes: 12 additions & 6 deletions pkg/srun/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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(
Expand Down
1 change: 1 addition & 0 deletions pkg/srun/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ import "errors"

var (
ErrResultCannotFound = errors.New("result cannot found from response")
ErrAcidCannotFound = errors.New("acid not found")
)

0 comments on commit 9bc2bee

Please sign in to comment.