bilibili-backup/app/service/bbq/user/internal/model/user.go
2019-04-22 02:59:20 +00:00

109 lines
2.6 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
import (
"regexp"
"strings"
)
const (
//UserTypeUp up主
UserTypeUp = int8(1)
//UserTypeBili b站用户
UserTypeBili = int8(2)
//UserTypeNew 新注册用户
UserTypeNew = int8(3)
//DegreeUncomp 未完成状态
DegreeUncomp = int8(0)
//DegreeComp 完成状态
DegreeComp = int8(1)
//SexMan 男
SexMan = int8(1)
//SexWoman 女
SexWoman = int8(2)
//SexAnimal 不明生物
SexAnimal = int8(0)
)
// UserListType 用于指定列表类型
type UserListType int8
// UserListType的列表类型
const (
FollowListType UserListType = 1
FanListType UserListType = 2
BlackListType UserListType = 4
//ForbiddenStatus .
ForbiddenStatus = 1
//NormalStatus .
NormalStatus = 0
)
const (
// SpaceListLen 空间长度
SpaceListLen = 20
// BatchUserLen 批量请求用户信息时最大数量
BatchUserLen = 50
// MaxBlacklistLen 黑名单最大长度
MaxBlacklistLen = 200
// MaxFollowListLen 关注最大数
MaxFollowListLen = 1000
)
// UserCard 主站返回的用户信息
type UserCard struct {
MID int64 `json:"mid"`
Name string `json:"name"`
Uname string `json:"uname"` // TODO: to delete
Sex string `json:"sex"`
Rank int32 `json:"rank"`
Face string `json:"face"`
Sign string `json:"sign"`
Level int32 `json:"level"`
VIPInfo VIPInfo `json:"vip_info"`
}
// UserInfoConfig 用于请求UserInfo的时候携带的参数
type UserInfoConfig struct {
//needBase bool // 必须基于UserBase信息
NeedDesc bool // 注意desc和region_name一起可能被降级因为用户统计信息被认为是不重要信息
NeedStatistic bool // 注意:可能被降级,因为用户统计信息被认为是不重要信息
NeedFollowState bool // 注意:可能被降级,因为关注关系信息被认为是不重要信息
}
//UpUserInfoRes account服务返回信息
type UpUserInfoRes struct {
MID int64 `json:"mid"`
Name string `json:"name"`
Sex string `json:"sex"`
Face string `json:"face"`
Sign string `json:"sign"`
Rank int64 `json:"rank"`
}
//VIPInfo .
type VIPInfo struct {
Type int32 `json:"type"`
Status int32 `json:"status"`
DueDate int64 `json:"due_date"`
}
// CheckUnameSpecial 验证是否含有特殊字符
func CheckUnameSpecial(uname string) (matched bool) {
matched, _ = regexp.MatchString("^[A-Za-z0-9\uAC00-\uD788\u3041-\u309E\u30A1-\u30FE\u3131-\u3163\u4E00-\u9FA5\uF92C-\uFA29_-]{1,}$", uname)
return
}
//CheckUnameLength 验证长度
func CheckUnameLength(uname string) (matched bool) {
lu := strings.Count(uname, "") - 1
if lu < 3 || lu > 16 {
return false
}
bt := []byte(uname)
if len(bt) < 3 || len(bt) > 30 {
return false
}
return true
}