diff --git a/bot.go b/bot.go index 98a2856..4ac7ac2 100644 --- a/bot.go +++ b/bot.go @@ -139,7 +139,7 @@ func (b *Bot) Login() error { b.ScanCallBack(resp.Raw) } case StatusTimeout: - return errors.New("login time out") + return ErrLoginTimeout case StatusWait: continue } @@ -307,7 +307,7 @@ func (b *Bot) MessageOnError(h func(err error)) { // DumpHotReloadStorage 写入HotReloadStorage func (b *Bot) DumpHotReloadStorage() error { if b.HotReloadStorage == nil { - return errors.New("HotReloadStorage can be nil") + return errors.New("HotReloadStorage can not be nil") } cookies := b.Caller.Client.GetCookieMap() item := HotReloadStorageItem{ diff --git a/caller.go b/caller.go index d469877..4019dea 100644 --- a/caller.go +++ b/caller.go @@ -84,8 +84,8 @@ func (c *Caller) GetLoginInfo(body []byte) (*LoginInfo, error) { resp, err := c.Client.GetLoginInfo(path.String()) if err != nil { uErr, ok := err.(*url.Error) - if ok && (uErr.Err.Error() == missLocationHeader.Error()) { - return nil, loginForbiddenError + if ok && (uErr.Err.Error() == ErrMissLocationHeader.Error()) { + return nil, ErrLoginForbiddenError } return nil, err } diff --git a/global.go b/global.go index aecf685..5851a93 100644 --- a/global.go +++ b/global.go @@ -116,9 +116,10 @@ const ( // errors var ( - noSuchUserFoundError = errors.New("no such user found") - missLocationHeader = errors.New("301 response missing Location header") - loginForbiddenError = errors.New("login forbidden") + ErrNoSuchUserFoundError = errors.New("no such user found") + ErrMissLocationHeader = errors.New("301 response missing Location header") + ErrLoginForbiddenError = errors.New("login forbidden") + ErrLoginTimeout = errors.New("login timeout") ) // ALL 跟search函数搭配 diff --git a/items.go b/items.go index 6e7d0c5..6b9d9f0 100644 --- a/items.go +++ b/items.go @@ -20,6 +20,28 @@ type LoginInfo struct { PassTicket string `xml:"pass_ticket"` } +// errors +const ( + errParamError = "param error" + errTicketError = "ticket error" + errLoginEnvError = "login env error" + errLoginFailedWarn = "failed login warn" + errLoginFailedCheck = "failed login check" + errCookieInvalidError = "cookie invalid error" + errOptTooOften = "opt too often" +) + +var ( + ErrParamError = errors.New(errParamError) + ErrTicketError = errors.New(errTicketError) + ErrLoginEnvError = errors.New(errLoginEnvError) + ErrLoginFailedWarn = errors.New(errLoginFailedWarn) + ErrLoginFailedCheck = errors.New(errLoginFailedCheck) + ErrCookieInvalidError = errors.New(errCookieInvalidError) + ErrOptTooOften = errors.New(errOptTooOften) + ErrBaseResponseError error +) + func (l LoginInfo) Ok() bool { return l.Ret == 0 } @@ -57,21 +79,22 @@ func getResponseErrorWithRetCode(code int) error { case 0: return nil case 1: - return errors.New("param error") + return ErrParamError case -14: - return errors.New("ticket error") + return ErrTicketError case 1100: - return errors.New("not login warn") + return ErrLoginFailedWarn case 1101: - return errors.New("not login check") + return ErrLoginFailedCheck case 1102: - return errors.New("cookie invalid error") + return ErrCookieInvalidError case 1203: - return errors.New("login env error") + return ErrLoginEnvError case 1205: - return errors.New("opt too often") + return ErrOptTooOften default: - return fmt.Errorf("base response ret code %d", code) + ErrBaseResponseError = fmt.Errorf("base response ret code %d", code) + return ErrBaseResponseError } } @@ -147,19 +170,19 @@ func (s *SyncCheckResponse) Error() string { case "0": return "" case "1": - return "param error" + return errParamError case "-14": - return "ticker error" + return errTicketError case "1100": - return "not login warn" + return errLoginFailedWarn case "1101": - return "not login check" + return errLoginFailedCheck case "1102": - return "cookie invalid error" + return errCookieInvalidError case "1203": - return "login env error" + return errLoginEnvError case "1205": - return "opt too often" + return errOptTooOften default: return fmt.Sprintf("sync check response error code %s", s.RetCode) } diff --git a/message.go b/message.go index 35fb4b5..76c4b2c 100644 --- a/message.go +++ b/message.go @@ -80,7 +80,7 @@ func (m *Message) SenderInGroup() (*User, error) { } users := group.MemberList.SearchByUserName(1, m.senderInGroupUserName) if users == nil { - return nil, noSuchUserFoundError + return nil, ErrNoSuchUserFoundError } users.init(m.Bot.self) return users.First(), nil @@ -94,14 +94,14 @@ func (m *Message) Receiver() (*User, error) { } else { users := sender.MemberList.SearchByUserName(1, m.ToUserName) if users == nil { - return nil, noSuchUserFoundError + return nil, ErrNoSuchUserFoundError } return users.First(), nil } } else { users := m.Bot.self.MemberList.SearchByUserName(1, m.ToUserName) if users == nil { - return nil, noSuchUserFoundError + return nil, ErrNoSuchUserFoundError } return users.First(), nil }