You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
250 lines
5.4 KiB
250 lines
5.4 KiB
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"` |
|
}
|
|
|