diff --git a/pkg/cmd/login.go b/pkg/cmd/login.go index 6d86a8c..871a3bf 100644 --- a/pkg/cmd/login.go +++ b/pkg/cmd/login.go @@ -60,9 +60,6 @@ var ( info.FormattedBalance(), info.FormattedTraffic(), info.FormattedUsedTime()) - if info.Overdue { - console.InfoL("\t状态\t已欠费") - } } return nil }, @@ -83,9 +80,6 @@ func login(h *handler.IpgwHandler, account *model.Account) error { return err } info := h.GetInfo() - if info.Overdue { - return fmt.Errorf("overdue") - } if info.Username == "" { return fmt.Errorf("unknown reason") } diff --git a/pkg/handler/ipgw.go b/pkg/handler/ipgw.go index 7155f0d..0ce9cfd 100644 --- a/pkg/handler/ipgw.go +++ b/pkg/handler/ipgw.go @@ -2,6 +2,7 @@ package handler import ( "encoding/json" + "fmt" "io/ioutil" "net/http" "net/url" @@ -43,22 +44,27 @@ func NewIpgwHandler() *IpgwHandler { func (h *IpgwHandler) Login(account *model.Account) error { var ( password string + body string err error ) if account.Cookie != "" { - _, err = h.loginCookie(account.Cookie) // 通过cookie登录 + body, err = h.loginCookie(account.Cookie) // 通过cookie登录 } else { password, err = account.GetPassword() if err != nil { return err } - _, err = h.login(account.Username, password) // 通过用户名、密码登录 + body, err = h.login(account.Username, password) // 通过用户名、密码登录 } if err != nil { return err } + if strings.Contains(body, "Arrearage users") { + return fmt.Errorf("overdue") + } + return h.ParseBasicInfo() // 解析信息 } @@ -145,7 +151,6 @@ func getUsernameAndIPFromJson(data map[string]interface{}) (username, ip string) func (h *IpgwHandler) ParseBasicInfo() error { h.getJsonIpgwData() h.info.Username, h.info.IP = getUsernameAndIPFromJson(h.oriInfo) - h.info.Overdue = h.oriInfo["user_balance"].(float64) < 0 return nil } diff --git a/pkg/model/info.go b/pkg/model/info.go index 33ebc22..268df3b 100644 --- a/pkg/model/info.go +++ b/pkg/model/info.go @@ -9,7 +9,6 @@ type Info struct { IP string Traffic, UsedTime int Balance float64 - Overdue bool } func (i *Info) FormattedTraffic() string {