251 lines
5.4 KiB
Go
251 lines
5.4 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// answer constants
|
|
const (
|
|
LangZhCN = "zh-CN"
|
|
LangZhTW = "zh-TW"
|
|
LangZhHK = "zh-HK"
|
|
)
|
|
|
|
// answer constants
|
|
const (
|
|
UserInfoRank = 5000
|
|
PenDantDays = 7 //答题优秀设置挂件的天数
|
|
ExtraAnsA = "符合规范"
|
|
ExtraAnsB = "不符合规范"
|
|
)
|
|
|
|
// Score info.
|
|
const (
|
|
FullScore = 100
|
|
Score85 = 85
|
|
Score60 = 60
|
|
Score0 = 0
|
|
)
|
|
|
|
// Rank info.
|
|
const (
|
|
RankTop int = 122
|
|
)
|
|
|
|
// question type.
|
|
const (
|
|
Q int8 = iota
|
|
BaseExtraNoPassQ // 1 extra no pass
|
|
BaseExtraPassQ // 2 extra pass
|
|
)
|
|
|
|
// extra question ans.
|
|
const (
|
|
UnKownQ int8 = iota
|
|
ViolationQ
|
|
NormalQ
|
|
)
|
|
|
|
// answer captcha pass
|
|
const (
|
|
CaptchaNopass int8 = iota
|
|
CaptchaPass
|
|
)
|
|
|
|
// BaseQues question record
|
|
type BaseQues struct {
|
|
Question string
|
|
Check int8
|
|
Ctime time.Time
|
|
}
|
|
|
|
// MyQues my question
|
|
type MyQues struct {
|
|
Count int64
|
|
List []*BaseQues
|
|
}
|
|
|
|
// RankInfo rank
|
|
type RankInfo struct {
|
|
Mid int64 `json:"mid"`
|
|
Face string `json:"face"`
|
|
Uname string `json:"uname"`
|
|
Num int64 `json:"num"`
|
|
Nameplate *NameplateInfo `json:"nameplate"`
|
|
}
|
|
|
|
// NameplateInfo .
|
|
type NameplateInfo struct {
|
|
Nid int `json:"nid"`
|
|
Name string `json:"name"`
|
|
Image string `json:"image"`
|
|
ImageSmall string `json:"image_small"`
|
|
Level string `json:"level"`
|
|
Condition string `json:"condition"`
|
|
}
|
|
|
|
// TypeInfo type info
|
|
type TypeInfo struct {
|
|
ID, Parentid int64
|
|
Name string
|
|
LabelName string
|
|
Subs []*SubType
|
|
}
|
|
|
|
// ProTypes .
|
|
type ProTypes struct {
|
|
List []*TypeInfo
|
|
CurrentTime, EndTime time.Time
|
|
Repro bool
|
|
}
|
|
|
|
// SubType sub type info
|
|
type SubType struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
LabelName string `json:"-"`
|
|
}
|
|
|
|
// AnsQue .
|
|
type AnsQue struct {
|
|
ID int64
|
|
Img string
|
|
Height float64
|
|
PositionY float64 // background-position-y
|
|
Ans []*AnsPosition
|
|
}
|
|
|
|
// AnsPosition .
|
|
type AnsPosition struct {
|
|
AnsHash string
|
|
Height float64 // height
|
|
PositionY float64 // background-position-y
|
|
}
|
|
|
|
// AnsQuesList .
|
|
type AnsQuesList struct {
|
|
CurrentTime, EndTime time.Time
|
|
QuesList []*AnsQue
|
|
}
|
|
|
|
// AnsCheck .
|
|
type AnsCheck struct {
|
|
QidList []int64
|
|
HistoryID int64
|
|
Pass bool
|
|
}
|
|
|
|
// CaptchaReq Captcha request.
|
|
type CaptchaReq struct {
|
|
Mid int64
|
|
IP string
|
|
ClientType string
|
|
NewCaptcha int
|
|
}
|
|
|
|
// CaptchaCheckReq Captcha check request.
|
|
type CaptchaCheckReq struct {
|
|
Mid int64
|
|
IP string
|
|
Challenge string
|
|
ClientType string
|
|
Validate string
|
|
Seccode string
|
|
Success int
|
|
Cookie string
|
|
Comargs map[string]string
|
|
}
|
|
|
|
// QueReq request
|
|
type QueReq struct {
|
|
ID int64
|
|
}
|
|
|
|
// AnsCool .
|
|
type AnsCool struct {
|
|
Hid int64 `json:"hid,omitempty"`
|
|
URL string `json:"url,omitempty"`
|
|
Name string `json:"uname"`
|
|
Face string `json:"face"`
|
|
Powers []*CoolPower `json:"power_result"`
|
|
Score int8 `json:"score"`
|
|
Rank *CoolRank `json:"rank"`
|
|
Share *CoolShare `json:"share"`
|
|
CanShowRankBtn bool `json:"can_show_rank_btn"`
|
|
IsSameUser bool `json:"is_same_user"`
|
|
ViewMore string `json:"view_more"`
|
|
VideoInfo *CoolVideo `json:"video_info"`
|
|
IsFirstPass int8 `json:"is_first_pass"`
|
|
Level int8 `json:"level"`
|
|
MainTids []int `json:"main_tids"`
|
|
SubTids []int `json:"sub_tids"`
|
|
}
|
|
|
|
// CoolPower .
|
|
type CoolPower struct {
|
|
Num int64 `json:"num"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// CoolRank .
|
|
type CoolRank struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
Img string `json:"img"`
|
|
}
|
|
|
|
// CoolShare .
|
|
type CoolShare struct {
|
|
Content string `json:"content"`
|
|
ShortContent string `json:"short_content"`
|
|
}
|
|
|
|
// CoolVideo .
|
|
type CoolVideo struct {
|
|
URL string `json:"url"`
|
|
Name string `json:"name"`
|
|
Img string `json:"img"`
|
|
WatchNum string `json:"watch_num"`
|
|
UpNum string `json:"up_num"`
|
|
}
|
|
|
|
// AnswerHistory info.
|
|
type AnswerHistory struct {
|
|
ID int64 `json:"id"`
|
|
Hid int64 `json:"hid"`
|
|
Mid int64 `json:"mid"`
|
|
StartTime time.Time `json:"start_time"`
|
|
StepOneErrTimes int8 `json:"step_one_err_times"`
|
|
StepOneCompleteTime int64 `json:"step_one_complete_time"`
|
|
StepExtraStartTime time.Time `json:"step_extra_start_time"`
|
|
StepExtraCompleteTime int64 `json:"step_extra_complete_time"`
|
|
StepExtraScore int64 `json:"step_extra_score"`
|
|
StepTwoStartTime time.Time `json:"step_two_start_time"`
|
|
CompleteTime time.Time `json:"complete_time"`
|
|
CompleteResult string `json:"complete_result"`
|
|
Score int8 `json:"score"`
|
|
IsFirstPass int8 `json:"is_first_pass"`
|
|
IsPassCaptcha int8 `json:"is_pass_captcha"`
|
|
PassedLevel int8 `json:"passed_level"`
|
|
RankID int `json:"rank_id"`
|
|
Ctime time.Time `json:"ctime"`
|
|
Mtime time.Time `json:"mtime"`
|
|
}
|
|
|
|
// AnswerTime info.
|
|
type AnswerTime struct {
|
|
Stime time.Time `json:"stime"` // answer start time
|
|
Etimes int8 `json:"etimes"` // base answer error times
|
|
}
|
|
|
|
// AnsHash .
|
|
type AnsHash struct {
|
|
AnsHashName string
|
|
AnsHashVal string
|
|
}
|
|
|
|
// ExtraScoreReply .
|
|
type ExtraScoreReply struct {
|
|
Score int64 `json:"score"`
|
|
}
|