49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package lib
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
"github.com/tidwall/gjson"
|
|
|
|
"github.com/johlanse/study_xxqg/model"
|
|
"github.com/johlanse/study_xxqg/utils"
|
|
)
|
|
|
|
// GetUserInfo
|
|
/**
|
|
* @Description: 获取用户信息
|
|
* @param cookies
|
|
* @return string
|
|
* @return string
|
|
* @return error
|
|
*/
|
|
func GetUserInfo(cookies []*http.Cookie) (string, string, error) {
|
|
var resp []byte
|
|
response, err := utils.GetClient().R().SetCookies(cookies...).SetHeader("Cache-Control", "no-cache").Get(userInfoUrl)
|
|
if err != nil {
|
|
log.Errorln("获取用户信息失败" + err.Error())
|
|
return "", "", err
|
|
}
|
|
resp = response.Bytes()
|
|
log.Debugln("[user] 用户信息:", gjson.GetBytes(resp, "@this|@pretty").String())
|
|
uid := gjson.GetBytes(resp, "data.uid").String()
|
|
nick := gjson.GetBytes(resp, "data.nick").String()
|
|
|
|
return uid, nick, err
|
|
}
|
|
|
|
// CheckUserCookie
|
|
/**
|
|
* @Description: 获取用户成绩
|
|
* @param user
|
|
* @return bool
|
|
*/
|
|
func CheckUserCookie(user *model.User) bool {
|
|
_, err := GetUserScore(user.ToCookies())
|
|
if err != nil && err.Error() == "token check failed" {
|
|
return false
|
|
}
|
|
return true
|
|
}
|