Initial commit

This commit is contained in:
Donny
2019-04-22 20:46:32 +08:00
commit 49ab8aadd1
25441 changed files with 4055000 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["const.go"],
importpath = "go-common/app/interface/main/app-interface/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/app-interface/model/live:go_default_library",
"//app/service/main/archive/model/archive:go_default_library",
"//library/conf/env:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//app/interface/main/app-interface/model/audio:all-srcs",
"//app/interface/main/app-interface/model/bangumi:all-srcs",
"//app/interface/main/app-interface/model/banner:all-srcs",
"//app/interface/main/app-interface/model/bplus:all-srcs",
"//app/interface/main/app-interface/model/coin:all-srcs",
"//app/interface/main/app-interface/model/community:all-srcs",
"//app/interface/main/app-interface/model/elec:all-srcs",
"//app/interface/main/app-interface/model/favorite:all-srcs",
"//app/interface/main/app-interface/model/history:all-srcs",
"//app/interface/main/app-interface/model/live:all-srcs",
"//app/interface/main/app-interface/model/pay:all-srcs",
"//app/interface/main/app-interface/model/region:all-srcs",
"//app/interface/main/app-interface/model/relation:all-srcs",
"//app/interface/main/app-interface/model/search:all-srcs",
"//app/interface/main/app-interface/model/shop:all-srcs",
"//app/interface/main/app-interface/model/sidebar:all-srcs",
"//app/interface/main/app-interface/model/sp:all-srcs",
"//app/interface/main/app-interface/model/space:all-srcs",
"//app/interface/main/app-interface/model/tag:all-srcs",
"//app/interface/main/app-interface/model/topic:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,29 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["audio.go"],
importpath = "go-common/app/interface/main/app-interface/model/audio",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//library/time:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,45 @@
package audio
import xtime "go-common/library/time"
type Audio struct {
ID int64 `json:"id"`
Aid int64 `json:"aid"`
UID int64 `json:"uid"`
Title string `json:"title"`
Cover string `json:"cover"`
Author string `json:"author"`
Schema string `json:"schema"`
Duration int64 `json:"duration"`
Play int `json:"play"`
Reply int `json:"reply"`
IsOff int `json:"isOff"`
AuthType int `json:"authType"`
CTime xtime.Time `json:"ctime"`
}
type FavAudio struct {
ID int64 `json:"id"`
Title string `json:"title"`
ImgURL string `json:"img_url"`
RecordsNum int `json:"records_num"`
IsOpen int `json:"is_open"`
}
type UpperCert struct {
Cert *struct {
Type int `json:"type,omitempty"`
Desc string `json:"desc,omitempty"`
} `json:"cert,omitempty"`
}
type Card struct {
Type int `json:"type,omitempty"`
Status int `json:"status,omitempty"`
}
type Fav struct {
Song bool `json:"song,omitempty"`
Menu bool `json:"menu,omitempty"`
PGCMenu bool `json:"pgc_menu,omitempty"`
}

View File

@@ -0,0 +1,29 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["bangumi.go"],
importpath = "go-common/app/interface/main/app-interface/model/bangumi",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//app/interface/main/app-interface/model:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,90 @@
package bangumi
import (
"encoding/json"
"go-common/app/interface/main/app-interface/model"
)
// Season for bangumi.
type Season struct {
AllowDownload string `json:"allow_download,omitempty"`
SeasonID string `json:"season_id"`
IsJump int `json:"is_jump"`
EpisodeStatus int `json:"episode_status"`
Title string `json:"title"`
Cover string `json:"cover"`
IsFinish string `json:"is_finish"`
IsStarted int `json:"is_started"`
NewestEpID string `json:"newest_ep_id"`
NewestEpIndex string `json:"newest_ep_index"`
TotalCount string `json:"total_count"`
Weekday string `json:"weekday"`
Evaluate string `json:"evaluate"`
Bp json.RawMessage `json:"rank,omitempty"`
UserSeason *struct {
Attention string `json:"attention"`
} `json:"user_season,omitempty"`
}
// Movie for bangumi.
type Movie struct {
AllowDownload int8 `json:"allow_download,omitempty"`
MovieStatus int `json:"movie_status"`
PayUser *struct {
Status int `json:"status"`
} `json:"pay_user"`
Payment json.RawMessage `json:"payment,omitempty"`
Season *struct {
Actor json.RawMessage `json:"actor,omitempty"`
Area string `json:"area"`
Areas json.RawMessage `json:"areas,omitempty"`
Cover string `json:"cover"`
Evaluate string `json:"evaluate"`
PubTime string `json:"pub_time"`
SeasonID int `json:"season_id"`
Tags json.RawMessage `json:"tags,omitempty"`
Title string `json:"title"`
TotalDuration int `json:"total_duration"`
} `json:"season"`
TrailerAid int `json:"trailer_aid"`
VideoLength int `json:"video_length"`
VipQuality int `json:"vip_quality"`
Activity json.RawMessage `json:"activity,omitempty"`
List []struct {
Cid int64 `json:"cid"`
HasAlias bool `json:"has_alias"`
Page int `json:"page"`
Part string `json:"part"`
Type string `json:"type"`
Vid string `json:"vid"`
} `json:"list,omitempty"`
}
// Recommend for bangumi.
type Recommend struct {
Aid int64 `json:"aid"`
Cover string `json:"cover"`
Status int `json:"status"`
Title string `json:"title"`
}
// Card for bangumi.
type Card struct {
SeasonID int64 `json:"season_id"`
SeasonType int `json:"season_type"`
IsFollow int `json:"is_follow"`
IsSelection int `json:"is_selection"`
Episodes []*Episode `json:"episodes"`
SeasonTypeName string `json:"season_type_name"`
}
// Episode for bangumi card.
type Episode struct {
ID int64 `json:"id"`
Status int `json:"status"`
Cover string `json:"cover"`
Index string `json:"index"`
IndexTitle string `json:"index_title"`
Badges []*model.ReasonStyle `json:"badges"`
}

View File

@@ -0,0 +1,29 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["banner.go"],
importpath = "go-common/app/interface/main/app-interface/model/banner",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//app/service/main/resource/model:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,62 @@
package banner
import (
"encoding/json"
resource "go-common/app/service/main/resource/model"
)
// Banner struct
type Banner struct {
ID int64 `json:"id"`
ParentID int64 `json:"-"`
Plat int8 `json:"-"`
Title string `json:"title"`
Image string `json:"image"`
Hash string `json:"hash"`
URI string `json:"uri"`
Value string `json:"-"`
Channel string `json:"-"`
Build int `json:"-"`
Condition string `json:"-"`
Area string `json:"-"`
Rank int64 `json:"-"`
Rule string `json:"-"`
Type int8 `json:"-"`
RequestID string `json:"request_id,omitempty"`
CreativeID int `json:"creative_id,omitempty"`
SrcID int `json:"src_id,omitempty"`
IsAd bool `json:"is_ad,omitempty"`
IsAdLoc bool `json:"is_ad_loc,omitempty"`
AdCb string `json:"ad_cb,omitempty"`
ShowURL string `json:"show_url,omitempty"`
ClickURL string `json:"click_url,omitempty"`
ClientIP string `json:"client_ip,omitempty"`
ServerType int `json:"server_type"`
ResourceID int `json:"resource_id,omitempty"`
Index int `json:"index,omitempty"`
CmMark int `json:"cm_mark"`
Extra json.RawMessage `json:"extra,omitempty"`
}
func (b *Banner) ChangeBanner(banner *resource.Banner) {
b.ID = int64(banner.ID)
b.Title = banner.Title
b.Image = banner.Image
b.Hash = banner.Hash
b.URI = banner.URI
b.ResourceID = banner.ResourceID
b.RequestID = banner.RequestId
b.CreativeID = banner.CreativeId
b.SrcID = banner.SrcId
b.IsAd = banner.IsAd
b.IsAdLoc = banner.IsAdLoc
b.CmMark = banner.CmMark
b.AdCb = banner.AdCb
b.ShowURL = banner.ShowUrl
b.ClickURL = banner.ClickUrl
b.ClientIP = banner.ClientIp
b.Index = banner.Index
b.ServerType = banner.ServerType
b.Extra = banner.Extra
}

View File

@@ -0,0 +1,32 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"bplus.go",
"from.go",
],
importpath = "go-common/app/interface/main/app-interface/model/bplus",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//library/time:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,37 @@
package bplus
import xtime "go-common/library/time"
const (
CLIPS = 1
ALBUMS = 2
)
type Clip struct {
ID int64 `json:"id,omitempty"`
Duration int64 `json:"duration,omitempty"`
CTime xtime.Time `json:"ctime,omitempty"`
View int `json:"view,omitempty"`
Damaku int `json:"damaku,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
Tag string `json:"tag,omitempty"`
}
type Album struct {
ID int64 `json:"doc_id,omitempty"`
CTime xtime.Time `json:"ctime,omitempty"`
Count int `json:"count,omitempty"`
View int `json:"view,omitempty"`
Comment int `json:"comment,omitempty"`
Title string `json:"title,omitempty"`
Desc string `json:"description,omitempty"`
Pictures []*Pictures `json:"pictures,omitempty"`
}
type Pictures struct {
ImgSrc string `json:"img_src,omitempty"`
ImgWidth int `json:"img_width,omitempty"`
ImgHeight int `json:"img_height,omitempty"`
ImgSize int `json:"img_size,omitempty"`
}

View File

@@ -0,0 +1,89 @@
package bplus
import "go-common/library/time"
type Clips struct {
List []*ClipList `json:"list,omitempty"`
PageInfo *PageInfo `json:"pageinfo,omitempty"`
}
type ClipList struct {
BizType int `json:"biz_type,omitempty"`
Favid int `json:"fav_id,omitempty"`
UTime time.Time `json:"utime,omitempty"`
HasMore int `json:"has_more,omitempty"`
NextFffset int `json:"next_offse,omitempty"`
Content struct {
User struct {
UID int64 `json:"uid,omitempty"`
HeadURL string `json:"head_url,omitempty"`
IsVIP int `json:"is_vip,omitempty"`
Name string `json:"name,omitempty"`
IsFollowed bool `json:"is_followed,omitempty"`
} `json:"user,omitempty"`
Item struct {
Type int `json:"type,omitempty"`
ID int64 `json:"id,omitempty"`
Cover struct {
Def string `json:"default,omitempty"`
} `json:"cover,omitempty"`
Desc string `json:"description,omitempty"`
Tags []string `json:"tags,omitempty"`
VideoTime int `json:"video_time,omitempty"`
UploadTime string `json:"upload_time,omitempty"`
Width int `json:"width,omitempty"`
Height int `json:"height,omitempty"`
UploadTimeText string `json:"upload_time_text,omitempty"`
VerifyStatusText string `json:"verify_status_text,omitempty"`
ShareURL string `json:"share_url,omitempty"`
JumpURL string `json:"jump_url,omitempty"`
DanakuNum int `json:"damaku_num,omitempty"`
WatchedNum int `json:"watched_num,omitempty"`
VideoPlayURL string `json:"video_playurl,omitempty"`
ShowStatus int `json:"show_status,omitempty"`
ShareNum int `json:"share_num,omitempty"`
EnshrineNum int `json:"enshrine_num,omitempty"`
Reply int `json:"reply,omitempty"`
FirstPic string `json:"first_pic,omitempty"`
BackupPlayURL []string `json:"backup_playurl,omitempty"`
LikeNum int `json:"like_num,omitempty"`
} `json:"item,omitempty"`
} `json:"content,omitempty"`
}
type Albums struct {
List []*AlbumList `json:"list,omitempty"`
PageInfo *PageInfo `json:"pageinfo,omitempty"`
}
type AlbumList struct {
BizType int `json:"biz_type,omitempty"`
Favid int `json:"fav_id,omitempty"`
UTime time.Time `json:"utime,omitempty"`
Content struct {
ID int64 `json:"id,omitempty"`
Pic []*Pictures `json:"pictures,omitempty"`
ShowStatus int `json:"show_status,omitempty"`
PicCount int `json:"pictures_count,omitempty"`
} `json:"content,omitempty"`
}
type PageInfo struct {
Page string `json:"page,omitempty"`
PageSize string `json:"pagesize,omitempty"`
TotalPage int `json:"totalpage,omitempty"`
Count int `json:"count,omitempty"`
}
// Detail struct
type Detail struct {
ID int64 `json:"dynamic_id,omitempty"`
Mid int64 `json:"mid,omitempty"`
FaceImg string `json:"face_img,omitempty"`
NickName string `json:"nick_name,omitempty"`
PublishTimeText string `json:"publish_time_text ,omitempty"`
ImgCount int `json:"img_count,omitempty"`
ViewCount int `json:"view_count,omitempty"`
CommentCount int `json:"comment_count,omitempty"`
LikeCount int `json:"like_count,omitempty"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["coin.go"],
importpath = "go-common/app/interface/main/app-interface/model/coin",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,12 @@
package coin
type Arc struct {
Aid int64 `json:"aid,omitempty"`
Tid int64 `json:"tid,omitempty"`
Name string `json:"tname,omitempty"`
Copyright int `json:"copyright,omitempty"`
Title string `json:"title,omitempty"`
Pic string `json:"pic,omitempty"`
Play int `json:"play,omitempty"`
VideoReview int `json:"video_review,omitempty"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["community.go"],
importpath = "go-common/app/interface/main/app-interface/model/community",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,12 @@
package community
type Community struct {
ID int `json:"id"`
Name string `json:"name"`
Desc string `json:"desc"`
Thumb string `json:"thumb"`
PostCount int `json:"post_count"`
MemberCount int `json:"member_count"`
PostNickname string `json:"post_nickname"`
MemberNickname string `json:"member_nickname"`
}

View File

@@ -0,0 +1,393 @@
package model
import (
"fmt"
livemdl "go-common/app/interface/main/app-interface/model/live"
"go-common/app/service/main/archive/model/archive"
"go-common/library/conf/env"
)
// app-interface const
const (
// PlatAndroid is int8 for android.
PlatAndroid = int8(0)
// PlatIPhone is int8 for iphone.
PlatIPhone = int8(1)
// PlatIPad is int8 for ipad.
PlatIPad = int8(2)
// PlatWPhone is int8 for wphone.
PlatWPhone = int8(3)
// PlatAndroidG is int8 for Android Googleplay.
PlatAndroidG = int8(4)
// PlatIPhoneI is int8 for Iphone Global.
PlatIPhoneI = int8(5)
// PlatIPadI is int8 for IPAD Global.
PlatIPadI = int8(6)
// PlatAndroidTV is int8 for AndroidTV Global.
PlatAndroidTV = int8(7)
// PlatAndroidI is int8 for Android Global.
PlatAndroidI = int8(8)
// PlatIpadHD is int8 for IpadHD
PlatIpadHD = int8(9)
// PlatAndroidB is int8 for Android Blue.
PlatAndroidB = int8(10)
// PlatIPhoneB is int8 for Android Blue.
PlatIPhoneB = int8(11)
GotoAv = "av"
GotoWeb = "web"
GotoBangumi = "bangumi"
GotoMovie = "movie"
GotoBangumiWeb = "bangumi_web"
GotoSp = "sp"
GotoLive = "live"
GotoGame = "game"
GotoAuthor = "author"
GotoClip = "clip"
GotoAlbum = "album"
GotoArticle = "article"
GotoAudio = "audio"
GotoSpecial = "special"
GotoBanner = "banner"
GotoSpecialS = "special_s"
GotoConverge = "converge"
GOtoRecommendWord = "recommend_word"
GotoPGC = "pgc"
GotoSuggestKeyWord = "suggest_keyword"
GotoComic = "comic"
GotoChannel = "channel"
GotoEP = "ep"
GotoTwitter = "twitter"
GotoStar = "star"
GotoTicket = "ticket"
GotoProduct = "product"
GotoSpace = "space"
GotoSpecialerGuide = "special_guide"
GotoDynamic = "dynamic"
// EnvPro is pro.
EnvPro = "pro"
EnvHK = "hk"
// EnvTest is env.
EnvTest = "test"
// EnvDev is env.
EnvDev = "dev"
// ForbidCode is forbid by law
ForbidCode = -110
NoResultCode = -111
CoverIng = "即将上映"
CoverPay = "付费观看"
CoverFree = "免费观看"
CoverVipFree = "付费观看"
CoverVipOnly = "专享"
CoverVipFirst = "抢先"
Hans = "hans"
Hant = "hant"
// AttrNo attribute no
AttrNo = int32(0)
// AttrYes attribute yes
AttrYes = int32(1)
AttrBitArchive = uint32(0)
AttrBitArticle = uint32(1)
AttrBitClip = uint32(2)
AttrBitAlbum = uint32(3)
AttrBitAudio = uint32(34)
)
// for FillURI
var (
AvHandler = func(a *archive.Archive3) func(uri string) string {
return func(uri string) string {
if a == nil {
return uri
}
if a.Dimension.Height != 0 || a.Dimension.Width != 0 {
return fmt.Sprintf("%s?player_width=%d&player_height=%d&player_rotate=%d", uri, a.Dimension.Width, a.Dimension.Height, a.Dimension.Rotate)
}
return uri
}
}
LiveHandler = func(l *livemdl.RoomInfo) func(uri string) string {
return func(uri string) string {
if l == nil {
return uri
}
if l.BroadcastType == 0 || l.BroadcastType == 1 {
return fmt.Sprintf("%s?broadcast_type=%d", uri, l.BroadcastType)
}
return uri
}
}
)
// IsAndroid check plat is android or ipad.
func IsAndroid(plat int8) bool {
return plat == PlatAndroid || plat == PlatAndroidG || plat == PlatAndroidI || plat == PlatAndroidB
}
// IsIOS check plat is iphone or ipad.
func IsIOS(plat int8) bool {
return plat == PlatIPad || plat == PlatIPhone || plat == PlatIPadI || plat == PlatIPhoneI
}
// IsIPhone check plat is iphone.
func IsIPhone(plat int8) bool {
return plat == PlatIPhone || plat == PlatIPhoneI
}
// IsIPad check plat is pad.
func IsIPad(plat int8) bool {
return plat == PlatIPad || plat == PlatIPadI || plat == PlatIpadHD
}
// IsIPhoneB check plat is iphone_b.
func IsIPhoneB(plat int8) bool {
return plat == PlatIPhoneB
}
// Plat return plat by platStr or mobiApp
func Plat(mobiApp, device string) int8 {
switch mobiApp {
case "iphone":
if device == "pad" {
return PlatIPad
}
return PlatIPhone
case "white":
return PlatIPhone
case "ipad":
return PlatIpadHD
case "android":
return PlatAndroid
case "win", "winphone":
return PlatWPhone
case "android_G":
return PlatAndroidG
case "android_i":
return PlatAndroidI
case "iphone_i":
if device == "pad" {
return PlatIPadI
}
return PlatIPhoneI
case "ipad_i":
return PlatIPadI
case "android_tv":
return PlatAndroidTV
case "android_b":
return PlatAndroidB
case "iphone_b":
return PlatIPhoneB
}
return PlatIPhone
}
// IsOverseas is overseas
func IsOverseas(plat int8) bool {
return plat == PlatAndroidI || plat == PlatIPhoneI || plat == PlatIPadI
}
// FillURI deal app schema.
func FillURI(gt, param string, f func(uri string) string) (uri string) {
switch gt {
case GotoAv, "":
uri = "bilibili://video/" + param
case GotoLive:
uri = "bilibili://live/" + param
case GotoBangumi:
uri = "bilibili://bangumi/season/" + param
case GotoBangumiWeb:
uri = "http://bangumi.bilibili.com/anime/" + param
case GotoGame:
uri = "bilibili://game_center/detail?id=" + param + "&sourceType=adPut"
case GotoSp:
uri = "bilibili://splist/" + param
case GotoAuthor:
uri = "bilibili://author/" + param
case GotoClip:
uri = "bilibili://clip/" + param
case GotoAlbum:
uri = "bilibili://album/" + param
case GotoArticle:
uri = "bilibili://article/" + param
case GotoWeb:
uri = param
case GotoPGC:
uri = "https://www.bilibili.com/bangumi/play/ss" + param
case GotoChannel:
uri = "bilibili://pegasus/channel/" + param + "/"
case GotoEP:
uri = "https://www.bilibili.com/bangumi/play/ep" + param
case GotoTwitter:
uri = "bilibili://pictureshow/detail/" + param
case GotoSpace:
uri = "bilibili://space/" + param
case GotoDynamic:
uri = "bilibili://following/detail/" + param
}
if f != nil {
uri = f(uri)
}
return
}
// StatusMark cover status mark
func StatusMark(status int) string {
if status == 0 {
return CoverIng
} else if status == 1 {
return CoverPay
} else if status == 2 {
return CoverFree
} else if status == 3 {
return CoverVipFree
} else if status == 4 {
return CoverVipOnly
} else if status == 5 {
return CoverVipFirst
}
return ""
}
// AttrVal get attribute value
func AttrVal(attr int32, bit uint32) (v int32) {
v = (attr >> bit) & int32(1)
return
}
// AttrSet set attribute value
func AttrSet(attr int32, v int32, bit uint32) int32 {
return attr&(^(1 << bit)) | (v << bit)
}
// Direction define
type Direction int
// app-interface const
const (
Upward Direction = 1
Downward Direction = 2
)
// Cursor struct
type Cursor struct {
Current int64
Direction Direction
Size int
}
// Latest judge cursor Current
func (c *Cursor) Latest() bool {
return c.Current == 0
}
// MoveUpward judge cursor Direction
func (c *Cursor) MoveUpward() bool {
return c.Direction == Upward
}
// MoveDownward judge cursor Direction
func (c *Cursor) MoveDownward() bool {
return c.Direction == Downward
}
// NewCursor judge cuser
func NewCursor(maxID int64, minID int64, size int) (cuser *Cursor, err error) {
if maxID < 0 || minID < 0 {
err = fmt.Errorf("either max_id(%d) or min_id(%d) < 0", maxID, minID)
return
}
if (minID * maxID) != 0 {
err = fmt.Errorf("both max_id(%d) and max_id(%d) > 0", maxID, minID)
return
}
if minID == 0 && maxID == 0 {
cuser = &Cursor{Current: 0, Direction: Downward, Size: size}
} else if maxID > 0 {
cuser = &Cursor{Current: maxID, Direction: Downward, Size: size}
} else {
cuser = &Cursor{Current: minID, Direction: Upward, Size: size}
}
return
}
// InvalidBuild invalid build
func InvalidBuild(srcBuild, cfgBuild int, cfgCond string) bool {
if cfgBuild != 0 && cfgCond != "" {
switch cfgCond {
case "gt":
if cfgBuild >= srcBuild {
return true
}
case "lt":
if cfgBuild <= srcBuild {
return true
}
case "eq":
if cfgBuild != srcBuild {
return true
}
case "ne":
if cfgBuild == srcBuild {
return true
}
}
}
return false
}
// env sh001 run
func EnvRun() (res bool) {
var _zone = "sh001"
if env.Zone == _zone {
return true
}
return false
}
// FormMediaType media type
func FormMediaType(mediaType int) (mediaName string) {
switch mediaType {
case 1:
mediaName = "番剧"
case 2:
mediaName = "电影"
case 3:
mediaName = "纪录片"
case 4:
mediaName = "国创"
case 5:
mediaName = "电视剧"
case 6:
mediaName = "漫画"
case 7:
mediaName = "综艺"
case 123:
mediaName = "电视剧"
case 124:
mediaName = "电视剧"
case 125:
mediaName = "纪录片"
case 126:
mediaName = "电影"
case 127:
mediaName = "动漫"
}
return
}
// ReasonStyle reason style
type ReasonStyle struct {
Text string `json:"text,omitempty"`
TextColor string `json:"text_color,omitempty"`
TextColorNight string `json:"text_color_night,omitempty"`
BgColor string `json:"bg_color,omitempty"`
BgColorNight string `json:"bg_color_night,omitempty"`
BorderColor string `json:"border_color,omitempty"`
BorderColorNight string `json:"border_color_night,omitempty"`
BgStyle int8 `json:"bg_style,omitempty"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["elec.go"],
importpath = "go-common/app/interface/main/app-interface/model/elec",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,15 @@
package elec
import "encoding/json"
type Info struct {
Start int64 `json:"start,omitempty"`
Show bool `json:"show"`
Total int `json:"total,omitempty"`
Count int `json:"count,omitempty"`
ElecNum int `json:"elec_num"`
State int `json:"state,omitempty"`
List json.RawMessage `json:"list,omitempty"`
User json.RawMessage `json:"user,omitempty"`
ElecSet json.RawMessage `json:"elec_set,omitempty"`
}

View File

@@ -0,0 +1,41 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"folder.go",
"result.go",
],
importpath = "go-common/app/interface/main/app-interface/model/favorite",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/app-interface/model:go_default_library",
"//app/interface/main/app-interface/model/audio:go_default_library",
"//app/interface/main/app-interface/model/bplus:go_default_library",
"//app/interface/main/app-interface/model/sp:go_default_library",
"//app/interface/main/app-interface/model/topic:go_default_library",
"//app/interface/openplatform/article/model:go_default_library",
"//app/service/main/archive/api:go_default_library",
"//app/service/main/archive/model/archive:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,51 @@
package favorite
import "go-common/app/service/main/archive/api"
type Folder struct {
MediaID int64 `json:"media_id"`
Fid int `json:"fid"`
Mid int `json:"mid"`
Name string `json:"name"`
MaxCount int `json:"max_count"`
CurCount int `json:"cur_count"`
AttenCount int `json:"atten_count"`
State int `json:"state"`
CTime int `json:"ctime"`
MTime int `json:"mtime"`
Cover []Cover `json:"cover,omitempty"`
Videos []Cover `json:"videos,omitempty"` // NOTE: old favourite
}
type Cover struct {
Aid int `json:"aid"`
Pic string `json:"pic"`
Type int32 `json:"type"`
}
type Video struct {
Seid string `json:"seid"`
Page int `json:"page"`
Pagesize int `json:"pagesize"`
PageCount int `json:"pagecount"`
Total int `json:"total"`
SuggestKeyword string `json:"suggest_keyword"`
Mid int64 `json:"mid"`
Fid int64 `json:"fid"`
Tid int `json:"tid"`
Order string `json:"order"`
Keyword string `json:"keyword"`
Tlist []struct {
Tid int16 `json:"tid"`
Name string `json:"name"`
Count int `json:"count"`
} `json:"tlist,omitempty"`
Archives []*Archive `json:"archives"`
}
type Archive struct {
*api.Arc
FavAt int64 `json:"fav_at"`
PlayNum string `json:"play_num"`
HighlightTitle string `json:"highlight_title"`
}

View File

@@ -0,0 +1,318 @@
package favorite
import (
"strconv"
"go-common/app/interface/main/app-interface/model"
"go-common/app/interface/main/app-interface/model/audio"
"go-common/app/interface/main/app-interface/model/bplus"
"go-common/app/interface/main/app-interface/model/sp"
"go-common/app/interface/main/app-interface/model/topic"
article "go-common/app/interface/openplatform/article/model"
"go-common/app/service/main/archive/model/archive"
"time"
)
type MyFavorite struct {
Tab *Tab `json:"tab,omitempty"`
Favorite *FavList `json:"favorite,omitempty"`
}
type Tab struct {
Fav bool `json:"favorite"`
Topic bool `json:"topic"`
Article bool `json:"article"`
Clips bool `json:"clips"`
Albums bool `json:"albums"`
Specil bool `json:"specil"`
Cinema bool `json:"cinema"`
Audios bool `json:"audios"`
Menu bool `json:"menu"`
PGCMenu bool `json:"pgc_menu"`
Ticket bool `json:"ticket"`
Product bool `json:"product"`
}
type FavList struct {
Count int `json:"count"`
Items []*FavItem `json:"items"`
}
type FavideoList struct {
Count int `json:"count"`
Items []*FavideoItem `json:"items"`
}
type TopicList struct {
Count int `json:"count"`
Items []*TopicItem `json:"items"`
}
type ArticleList struct {
Count int `json:"count"`
Items []*ArticleItem `json:"items"`
}
type ClipsList struct {
*bplus.PageInfo
Items []*ClipsItem `json:"items"`
}
type AlbumsList struct {
*bplus.PageInfo
Items []*AlbumItem `json:"items"`
}
type SpList struct {
Count int `json:"count"`
Items []*SpItem `json:"items"`
}
type AudioList struct {
Count int `json:"count"`
Items []*AudioItem `json:"items"`
}
func (i *FavItem) FromFav(f *Folder) {
i.MediaID = f.MediaID
i.Fid = f.Fid
i.Mid = f.Mid
i.Name = f.Name
if f.Cover != nil {
i.Cover = f.Cover
}
i.CurCount = f.CurCount
i.State = f.State
}
type FavItem struct {
MediaID int64 `json:"media_id"`
Fid int `json:"fid"`
Mid int `json:"mid"`
Name string `json:"name"`
CurCount int `json:"cur_count"`
State int `json:"state"`
Cover []Cover `json:"cover"`
}
func (i *FavideoItem) FromFavideo(fv *Archive) {
i.Aid = fv.Aid
i.Title = fv.Title
i.Pic = fv.Pic
i.Name = fv.Author.Name
i.PlayNum = int(fv.Stat.View)
i.Danmaku = int(fv.Stat.Danmaku)
i.Param = strconv.FormatInt(int64(fv.Aid), 10)
i.Goto = model.GotoAv
i.URI = model.FillURI(i.Goto, i.Param, model.AvHandler(archive.BuildArchive3(fv.Arc)))
i.UGCPay = fv.Rights.UGCPay
}
type FavideoItem struct {
Aid int64 `json:"aid"`
Title string `json:"title"`
Pic string `json:"pic"`
Name string `json:"name"`
PlayNum int `json:"play_num"`
Danmaku int `json:"danmaku"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
UGCPay int32 `json:"ugc_pay"`
}
func (i *TopicItem) FromTopic(tp *topic.List) {
i.ID = tp.ID
i.MID = tp.MID
i.Name = tp.Name
i.PCCover = tp.PCCover
i.H5Cover = tp.H5Cover
i.FavAt = tp.FavAt
i.PCUrl = tp.PCUrl
i.H5Url = tp.H5Url
i.Desc = tp.Desc
i.Param = strconv.FormatInt(int64(tp.ID), 10)
i.Goto = model.GotoWeb
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type TopicItem struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
Name string `json:"name"`
PCCover string `json:"pc_cover"`
H5Cover string `json:"h5_cover"`
FavAt int64 `json:"fav_at"`
PCUrl string `json:"pc_url"`
H5Url string `json:"h5_url"`
Desc string `json:"desc"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *ArticleItem) FromArticle(af *article.Favorite) {
i.ID = af.ID
i.Title = af.Title
i.BannerURL = af.BannerURL
i.TemplateID = int(af.TemplateID)
i.Name = af.Author.Name
i.ImageURLs = af.ImageURLs
i.Summary = af.Summary
i.FTime = af.FavoriteTime
i.Param = strconv.FormatInt(int64(af.ID), 10)
i.Goto = model.GotoArticle
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type ArticleItem struct {
ID int64 `json:"id"`
Title string `json:"title"`
TemplateID int `json:"template_id"`
BannerURL string `json:"banner_url"`
Name string `json:"name"`
ImageURLs []string `json:"image_urls"`
Summary string `json:"summary"`
FTime int64 `json:"favorite_time"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *ClipsItem) FromClips(c *bplus.ClipList) {
i.ID = c.Content.Item.ID
i.Name = c.Content.User.Name
i.UID = c.Content.User.UID
i.HeadURL = c.Content.User.HeadURL
i.IsVIP = c.Content.User.IsVIP
i.IsFollowed = c.Content.User.IsFollowed
i.UploadTimeText = c.Content.Item.UploadTimeText
i.Tags = c.Content.Item.Tags
i.Cover = c.Content.Item.Cover
i.VideoTime = c.Content.Item.VideoTime
i.Desc = c.Content.Item.Desc
i.DanakuNum = c.Content.Item.DanakuNum
i.WatchedNum = c.Content.Item.WatchedNum
i.Param = strconv.FormatInt(int64(c.Content.Item.ID), 10)
i.Goto = model.GotoClip
i.URI = model.FillURI(i.Goto, i.Param, nil)
i.Status = c.Content.Item.ShowStatus
i.Reply = c.Content.Item.Reply
i.UploadTime = c.Content.Item.UploadTime
i.Width = c.Content.Item.Width
i.Height = c.Content.Item.Height
i.FirstPic = c.Content.Item.FirstPic
i.VideoPlayURL = c.Content.Item.VideoPlayURL
i.BackupPlayURL = c.Content.Item.BackupPlayURL
i.LikeNum = c.Content.Item.LikeNum
}
type ClipsItem struct {
ID int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
UID int64 `json:"uid,omitempty"`
HeadURL string `json:"head_url,omitempty"`
IsVIP int `json:"is_vip,omitempty"`
UploadTimeText string `json:"upload_time_text,omitempty"`
Tags []string `json:"tags,omitempty"`
Cover struct {
Def string `json:"default,omitempty"`
} `json:"cover,omitempty"`
VideoTime int `json:"video_time,omitempty"`
Desc string `json:"description,omitempty"`
DanakuNum int `json:"damaku_num,omitempty"`
WatchedNum int `json:"watched_num,omitempty"`
Goto string `json:"goto,omitempty"`
Param string `json:"param,omitempty"`
URI string `json:"uri,omitempty"`
Status int `json:"status,omitempty"`
Reply int `json:"reply,omitempty"`
FirstPic string `json:"first_pic,omitempty"`
BackupPlayURL []string `json:"backup_playurl,omitempty"`
IsFollowed bool `json:"is_followed,omitempty"`
UploadTime string `json:"upload_time,omitempty"`
Width int `json:"width,omitempty"`
Height int `json:"height,omitempty"`
VideoPlayURL string `json:"video_playurl,omitempty"`
LikeNum int `json:"like_num,omitempty"`
}
func (i *AlbumItem) FromAlbum(bp *bplus.AlbumList) {
i.ID = bp.Content.ID
i.Pic = bp.Content.Pic
i.PicCount = bp.Content.PicCount
i.ShowStatus = bp.Content.ShowStatus
i.Param = strconv.FormatInt(int64(bp.Content.ID), 10)
i.Goto = model.GotoAlbum
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type AlbumItem struct {
ID int64 `json:"id"`
Pic []*bplus.Pictures `json:"pictures"`
ShowStatus int `json:"show_status"`
PicCount int `json:"pictures_count"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *SpItem) FromSp(s *sp.Item) {
i.SpID = s.SpID
i.Title = s.Title
i.Cover = s.Cover
i.MCover = s.MCover
i.SCover = s.SCover
timeTmp, _ := time.Parse("2006-01-02 15:04", s.CTime)
i.CTime = timeTmp.Unix()
i.Param = strconv.FormatInt(int64(s.SpID), 10)
i.Goto = model.GotoSp
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type SpItem struct {
SpID int64 `json:"spid"`
Title string `json:"title"`
Cover string `json:"cover"`
MCover string `json:"m_cover"`
SCover string `json:"s_cover"`
CTime int64 `json:"create_at"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *AudioItem) FromAudio(a *audio.FavAudio) {
i.ID = a.ID
i.Title = a.Title
i.IsOpen = a.IsOpen
i.Cover = a.ImgURL
i.Count = a.RecordsNum
}
type AudioItem struct {
ID int64 `json:"id"`
Title string `json:"title"`
Cover string `json:"cover"`
IsOpen int `json:"is_open"`
Count int `json:"count"`
}
type TabItem struct {
Name string `json:"name"`
Uri string `json:"uri"`
Tab string `json:"tab"`
}
type TabParam struct {
MobiApp string `form:"mobi_app"`
Device string `form:"device"`
Build int `form:"build"`
Platform string `form:"platform"`
Mid int64 `form:"mid"`
Business string `form:"business"`
AccessKey string `form:"access_key"`
ActionKey string `form:"actionKey"`
Filtered string `form:"filtered"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["history.go"],
importpath = "go-common/app/interface/main/app-interface/model/history",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,95 @@
package history
// HisParam fro history
type HisParam struct {
MobiApp string `form:"mobi_app"`
Device string `form:"device"`
Build int64 `form:"build"`
Platform string `form:"platform"`
Pn int `form:"pn"`
Ps int `form:"ps"`
Mid int64 `form:"mid"`
Max int64 `form:"max"`
MaxTP int8 `form:"max_tp"`
Business string `form:"business"`
}
// LiveParam statue param
type LiveParam struct {
RoomIDs string `form:"room_ids"`
}
// DelParam del param
type DelParam struct {
Mid int64 `form:"mid"`
Boids []string `form:"boids,split" validate:"min=1"`
}
// ClearParam clear param
type ClearParam struct {
Mid int64 `form:"mid"`
Business string `form:"business"`
}
// ListRes for history
type ListRes struct {
Title string `json:"title"`
Covers []string `json:"covers,omitempty"`
Cover string `json:"cover,omitempty"`
URI string `json:"uri"`
History struct {
Oid int64 `json:"oid"`
Tp int8 `json:"tp"`
Cid int64 `json:"cid,omitempty"`
Page int32 `json:"page,omitempty"`
Part string `json:"part,omitempty"`
Business string `json:"business"`
} `json:"history"`
Videos int64 `json:"videos,omitempty"`
Name string `json:"name,omitempty"`
Mid int64 `json:"mid,omitempty"`
Goto string `json:"goto"`
Badge string `json:"badge,omitempty"`
ViewAt int64 `json:"view_at"`
Progress int64 `json:"progress,omitempty"`
Duration int64 `json:"duration,omitempty"`
ShowTitle string `json:"show_title,omitempty"`
TagName string `json:"tag_name,omitempty"`
LiveStatus int `json:"live_status,omitempty"`
Current string `json:"current,omitempty"`
Total string `json:"total,omitempty"`
NewDesc string `json:"new_desc,omitempty"`
IsFinish int8 `json:"is_finish,omitempty"`
}
// PGCRes for history
type PGCRes struct {
EpID int64 `json:"ep_id"`
Cover string `json:"cover"`
URI string `json:"uri"`
Title string `json:"title"`
ShowTitle string `json:"show_title"`
Season struct {
Title string `json:"title"`
} `json:"season"`
}
// ListCursor for history
type ListCursor struct {
Tab []*BusTab `json:"tab"`
List []*ListRes `json:"list"`
Cursor *Cursor `json:"cursor"`
}
// BusTab business tab
type BusTab struct {
Business string `json:"business"`
Name string `json:"name"`
}
// Cursor for history
type Cursor struct {
Max int64 `json:"max"`
MaxTP int8 `json:"max_tp"`
Ps int `json:"ps"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["live.go"],
importpath = "go-common/app/interface/main/app-interface/model/live",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,81 @@
package live
// Live for live
type Live struct {
Mid int64 `json:"mid,omitempty"`
RoomID int64 `json:"roomid,omitempty"`
Title string `json:"title,omitempty"`
}
// Room for live
type Room struct {
UID int64 `json:"uid,omitempty"`
RoomID int64 `json:"room_id,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
Uname string `json:"uname,omitempty"`
Face string `json:"face,omitempty"`
Online int `json:"online,omitempty"`
Area string `json:"area,omitempty"`
AreaID int `json:"area_id,omitempty"`
LiveStatus int `json:"live_status,omitempty"`
AreaV2ID int64 `json:"area_v2_id,omitempty"`
AreaV2Name string `json:"area_v2_name,omitempty"`
AreaV2ParentID int64 `json:"area_v2_parent_id,omitempty"`
AreaV2ParentName string `json:"area_v2_parent_name,omitempty"`
BroadcastType int `json:"broadcast_type,omitempty"`
}
// Status for live
type Status struct {
LiveStatus int `json:"live_status,omitempty"`
}
// Glory for live
type Glory struct {
ID string `json:"id,omitempty"`
UID string `json:"uid,omitempty"`
GID string `json:"gid,omitempty"`
On string `json:"on,omitempty"`
GloryInfo *struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Cover string `json:"pic_url,omitempty"`
Level string `json:"level,omitempty"`
Activity string `json:"activity,omitempty"`
URI string `json:"jump_url,omitempty"`
} `json:"glory_info,omitempty"`
UserInfo *struct {
UID int64 `json:"uid,omitempty"`
Name string `json:"uname,omitempty"`
Face string `json:"face,omitempty"`
Level int `json:"rlevel,omitempty"`
LevelColor int64 `json:"rlevel_color,omitempty"`
} `json:"user_info,omitempty"`
Version int `json:"version,omitempty"`
}
// Exp for live
type Exp struct {
Level int `json:"user_level,omitempty"`
Master *struct {
Level int `json:"level,omitempty"`
Color int64 `json:"color,omitempty"`
} `json:"master_level,omitempty"`
Color int64 `json:"color,omitempty"`
}
// RoomInfo for live
type RoomInfo struct {
RoomID int64 `json:"roomid"`
ShortID int64 `json:"short_id"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
UserCover string `json:"user_cover,omitempty"`
URI string `json:"uri,omitempty"`
Mid int64 `json:"uid,omitempty"`
Name string `json:"uname,omitempty"`
TagName string `json:"area_v2_name,omitempty"`
Status int `json:"live_status"`
BroadcastType int `json:"broadcast_type,omitempty"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["pay.go"],
importpath = "go-common/app/interface/main/app-interface/model/pay",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,18 @@
package pay
// UserWaller http://info.bilibili.co/pages/viewpage.action?pageId=7559096
type UserWallet struct {
Code int `json:"errno"`
Message string `json:"msg"`
ShowMessage string `json:"showMsg"`
Data struct {
Mid int64 `json:"mid"`
TotalBp float64 `json:"totalBp"`
DefaultBp float64 `json:"defaultBp"`
IosBp float64 `json:"iosBp"`
CouponBalance float64 `json:"couponBalance"`
AvailableBp float64 `json:"availableBp"`
UnavailableBp float64 `json:"unavailableBp"`
UnavailableReason string `json:"unavailableReason"`
} `json:"data"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["region.go"],
importpath = "go-common/app/interface/main/app-interface/model/region",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,15 @@
package region
type Region struct {
Rid int16 `json:"tid"`
Reid int16 `json:"reid"`
Name string `json:"name"`
Logo string `json:"logo"`
Goto string `json:"goto"`
Param string `json:"param"`
Rank string `json:"-"`
Plat int8 `json:"-"`
Build int `json:"-"`
Condition string `json:"-"`
Area string `json:"-"`
}

View File

@@ -0,0 +1,32 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["relation.go"],
importpath = "go-common/app/interface/main/app-interface/model/relation",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/account/api:go_default_library",
"//app/service/main/relation/model:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,43 @@
package relation
import (
accv1 "go-common/app/service/main/account/api"
relation "go-common/app/service/main/relation/model"
)
type Vip struct {
Type int `json:"vipType"`
DueDate int64 `json:"vipDueDate"`
DueRemark string `json:"dueRemark"`
AccessStatus int `json:"accessStatus"`
VipStatus int `json:"vipStatus"`
VipStatusWarn string `json:"vipStatusWarn"`
}
// Following is user followinng info.
type Following struct {
*relation.Following
Uname string `json:"uname"`
Face string `json:"face"`
Sign string `json:"sign"`
OfficialVerify accv1.OfficialInfo `json:"official_verify"`
Vip Vip `json:"vip"`
Live int `json:"live"`
}
type Tag struct {
Mid int64 `json:"mid"`
Uname string `json:"uname"`
Face string `json:"face"`
Sign string `json:"sign"`
OfficialVerify accv1.OfficialInfo `json:"official_verify"`
Vip Vip `json:"vip"`
Live int `json:"live"`
}
// ByMTime implements sort.Interface for []model.Following based on the MTime field.
type ByMTime []*relation.Following
func (mt ByMTime) Len() int { return len(mt) }
func (mt ByMTime) Swap(i, j int) { mt[i], mt[j] = mt[j], mt[i] }
func (mt ByMTime) Less(i, j int) bool { return mt[i].MTime < mt[j].MTime }

View File

@@ -0,0 +1,45 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"from.go",
"result.go",
],
importpath = "go-common/app/interface/main/app-interface/model/search",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/app-interface/model:go_default_library",
"//app/interface/main/app-interface/model/bangumi:go_default_library",
"//app/interface/main/app-interface/model/bplus:go_default_library",
"//app/interface/main/app-interface/model/live:go_default_library",
"//app/interface/main/app-interface/model/tag:go_default_library",
"//app/interface/openplatform/article/model:go_default_library",
"//app/service/main/account/model:go_default_library",
"//app/service/main/archive/api:go_default_library",
"//app/service/main/archive/model/archive:go_default_library",
"//app/service/openplatform/pgc-season/api/grpc/season/v1:go_default_library",
"//library/log:go_default_library",
"//library/time:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,611 @@
package search
import (
"encoding/json"
"go-common/app/interface/main/app-interface/model"
"go-common/library/log"
xtime "go-common/library/time"
)
// search const
const (
TypeVideo = "video"
TypeLive = "live_room"
TypeMediaBangumi = "media_bangumi"
TypeMediaFt = "media_ft"
TypeArticle = "article"
TypeSpecial = "special_card"
TypeBanner = "banner"
TypeUser = "user"
TypeBiliUser = "bili_user"
TypeGame = "game"
TypeSpecialS = "special_card_small"
TypeConverge = "content_card"
TypeQuery = "query"
TypeLiveMaster = "live_master"
TypeTwitter = "twitter"
TypeComic = "comic"
TypeStar = "star"
TypeTicket = "ticket"
TypeProduct = "product"
TypeSpecialerGuide = "special_guide_card"
TypeChannel = "tag"
SuggestionJump = 99
SuggestionJumpUser = 81
SuggestionJumpPGC = 82
SuggestionAV = "video"
SuggestionLive = "live"
SuggestionArticle = "article"
SearchLiveAllAndroid = 5275000
SearchLiveAllIOS = 6800
SearchEggInfoAndroid = 5270000
LiveBroadcastTypeAndroid = 5305000
SearchTwitterAndroid = 5315000
SearchTwitterIOS = 8111
SearchNewIPad = 8231
SearchNewIPadHD = 12041
SearchConvergeIOS = 8140
SearchConvergeAndroid = 5320000
SearchStarIOS = 8220
SearchStarAndroid = 5335000
SearchTicketIOS = 8220
SearchTicketAndroid = 5335000
SearchProductIOS = 8220
SearchProductAndroid = 5335000
)
// Search all
type Search struct {
Code int `json:"code,omitempty"`
Trackid string `json:"seid,omitempty"`
Page int `json:"page,omitempty"`
PageSize int `json:"pagesize,omitempty"`
Total int `json:"total,omitempty"`
NumResults int `json:"numResults,omitempty"`
NumPages int `json:"numPages,omitempty"`
SuggestKeyword string `json:"suggest_keyword,omitempty"`
CrrQuery string `json:"crr_query,omitempty"`
Attribute int32 `json:"exp_bits,omitempty"`
PageInfo struct {
Bangumi *Page `json:"bangumi,omitempty"`
UpUser *Page `json:"upuser,omitempty"`
BiliUser *Page `json:"bili_user,omitempty"`
User *Page `json:"user,omitempty"`
Movie *Page `json:"movie,omitempty"`
Film *Page `json:"pgc,omitempty"`
Article *Page `json:"article,omitempty"`
LiveRoom *Page `json:"live_room,omitempty"`
LiveUser *Page `json:"live_user,omitempty"`
LiveAll *Page `json:"live_all,omitempty"`
MediaBangumi *Page `json:"media_bangumi,omitempty"`
MediaFt *Page `json:"media_ft,omitempty"`
} `json:"pageinfo,omitempty"`
Result struct {
Bangumi []*Bangumi `json:"bangumi,omitempty"`
UpUser []*User `json:"upuser,omitempty"`
BiliUser []*User `json:"bili_user,omitempty"`
User []*User `json:"user,omitempty"`
Movie []*Movie `json:"movie,omitempty"`
LiveRoom []*Live `json:"live_room,omitempty"`
LiveUser []*Live `json:"live_user,omitempty"`
Video []*Video `json:"video,omitempty"`
MediaBangumi []*Media `json:"media_bangumi,omitempty"`
MediaFt []*Media `json:"media_ft,omitempty"`
} `json:"result,omitempty"`
FlowResult []*Flow `json:"flow_result,omitempty"`
FlowPlaceholder int `json:"flow_placeholder,omitempty"`
EggInfo *struct {
Source int64 `json:"source,omitempty"`
ShowCount int `json:"show_count,omitempty"`
} `json:"egg_info,omitempty"`
}
// NoResultRcmd no result rcmd
type NoResultRcmd struct {
Code int `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ReqType string `json:"req_type,omitempty"`
Result []*Video `json:"result,omitempty"`
NumResults int `json:"numResults,omitempty"`
Page int `json:"page,omitempty"`
Trackid string `json:"seid,omitempty"`
SuggestKeyword string `json:"suggest_keyword,omitempty"`
RecommendTips string `json:"recommend_tips,omitempty"`
}
// RecommendPre search at pre-page
type RecommendPre struct {
Code int `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
NumResult int `json:"numResult,omitempty"`
Trackid string `json:"seid,omitempty"`
Result []*struct {
Type string `json:"type,omitempty"`
Query string `json:"query,omitempty"`
List []*struct {
Type string `json:"source_type,omitempty"`
ID int64 `json:"source_id,omitempty"`
} `json:"rec_list,omitempty"`
} `json:"result,omitempty"`
}
// Page struct
type Page struct {
NumResults int `json:"numResults"`
Pages int `json:"pages"`
}
// Bangumi struct
type Bangumi struct {
Name string `json:"name,omitempty"`
SeasonID int `json:"season_id,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
Evaluate string `json:"evaluate,omitempty"`
NewestEpID int `json:"newest_ep_id,omitempty"`
NewestEpIndex string `json:"newest_ep_index,omitempty"`
IsFinish int `json:"is_finish,omitempty"`
IsStarted int `json:"is_started,omitempty"`
NewestCat string `json:"newest_cat,omitempty"`
NewestSeason string `json:"newest_season,omitempty"`
TotalCount int `json:"total_count,omitempty"`
Pages int `json:"numPages,omitempty"`
CatList *struct {
TV int `json:"tv"`
Movie int `json:"movie"`
Ova int `json:"ova"`
} `json:"catlist,omitempty"`
}
// Movie struct
type Movie struct {
Title string `json:"title"`
SpID string `json:"spid"`
Type string `json:"type"`
Aid int64 `json:"aid"`
Desc string `json:"description"`
Actors string `json:"actors"`
Staff string `json:"staff"`
Cover string `json:"cover"`
Pic string `json:"pic"`
ScreenDate string `json:"screenDate"`
Area string `json:"area"`
Status int `json:"status"`
Length int `json:"length"`
Pages int `json:"numPages"`
}
// User struct
type User struct {
Mid int64 `json:"mid,omitempty"`
Name string `json:"uname,omitempty"`
SName string `json:"name,omitempty"`
OfficialVerify *OfficialVerify `json:"official_verify,omitempty"`
Usign string `json:"usign,omitempty"`
Fans int `json:"fans,omitempty"`
Videos int `json:"videos,omitempty"`
Level int `json:"level,omitempty"`
Pic string `json:"upic,omitempty"`
Pages int `json:"numPages,omitempty"`
Res []*struct {
Play interface{} `json:"play,omitempty"`
Danmaku int `json:"dm,omitempty"`
Pubdate int64 `json:"pubdate,omitempty"`
Title string `json:"title,omitempty"`
Aid int64 `json:"aid,omitempty"`
Pic string `json:"pic,omitempty"`
ArcURL string `json:"arcurl,omitempty"`
Duration string `json:"duration,omitempty"`
IsPay int `json:"is_pay,omitempty"`
} `json:"res,omitempty"`
IsLive int `json:"is_live,omitempty"`
RoomID int64 `json:"room_id,omitempty"`
IsUpuser int `json:"is_upuser,omitempty"`
}
// OfficialVerify struct
type OfficialVerify struct {
Type int `json:"type"`
Desc string `json:"desc,omitempty"`
}
// Video struct
type Video struct {
ID int64 `json:"id"`
Author string `json:"author"`
Title string `json:"title"`
Pic string `json:"pic"`
Desc string `json:"description"`
Play interface{} `json:"play"`
Danmaku int `json:"video_review"`
Duration string `json:"duration"`
Pages int `json:"numPages"`
ViewType string `json:"view_type"`
RecTags []string `json:"rec_tags"`
IsPay int `json:"is_pay"`
NewRecTags []*RecTag `json:"new_rec_tags"`
}
// RecTag from video
type RecTag struct {
Name string `json:"tag_name"`
Style int8 `json:"tag_style"`
}
// Live struct
type Live struct {
Total int `json:"total,omitempty"`
Pages int `json:"pages"`
UID int64 `json:"uid,omitempty"`
RoomID int64 `json:"roomid,omitempty"`
Type string `json:"type,omitempty"`
Title string `json:"title,omitempty"`
LiveStatus int `json:"live_status,omitempty"`
ShortID int `json:"short_id,omitempty"`
Uname string `json:"uname,omitempty"`
Uface string `json:"uface,omitempty"`
Cover string `json:"cover,omitempty"`
Online int `json:"online,omitempty"`
Attentions int `json:"attentions,omitempty"`
Tags string `json:"tags,omitempty"`
Area int `json:"area,omitempty"`
CateName string `json:"cate_name,omitempty"`
CateParentName string `json:"cate_parent_name,omitempty"`
UserCover string `json:"user_cover,omitempty"`
VerifyType int `json:"verify_type,omitempty"`
VerifyDesc string `json:"verify_desc,omitempty"`
Fans int `json:"fans,omitempty"`
}
// Article struct
type Article struct {
ID int64 `json:"id"`
Mid int64 `json:"mid"`
Uname string `json:"uname"`
TemplateID int `json:"template_id"`
Title string `json:"title"`
Desc string `json:"desc"`
ImageUrls []string `json:"image_urls"`
View int `json:"view"`
Like int `json:"like"`
Reply int `json:"reply"`
}
// Media struct
type Media struct {
MediaID int64 `json:"media_id,omitempty"`
SeasonID int64 `json:"season_id,omitempty"`
Title string `json:"title,omitempty"`
OrgTitle string `json:"org_title,omitempty"`
Styles string `json:"styles,omitempty"`
Cover string `json:"cover,omitempty"`
PlayState int `json:"play_state,omitempty"`
MediaScore *struct {
Score float64 `json:"score,omitempty"`
UserCount int `json:"user_count,omitempty"`
} `json:"media_score,omitempty"`
MediaType int `json:"media_type,omitempty"`
CV string `json:"cv,omitempty"`
Staff string `json:"staff,omitempty"`
Areas string `json:"areas,omitempty"`
GotoURL string `json:"goto_url,omitempty"`
Pubtime xtime.Time `json:"pubtime,omitempty"`
HitColumns []string `json:"hit_columns,omitempty"`
AllNetName string `json:"all_net_name,omitempty"`
AllNetIcon string `json:"all_net_icon,omitempty"`
AllNetURL string `json:"all_net_url,omitempty"`
DisplayInfo json.RawMessage `json:"display_info,omitempty"`
}
// Query struct
type Query struct {
Type string `json:"type,omitempty"`
Name string `json:"name,omitempty"`
ID int64 `json:"id,omitempty"`
FromSource string `json:"from_source,omitempty"`
}
// Hot struct
type Hot struct {
Code int `json:"code,omitempty"`
SeID string `json:"seid,omitempty"`
TrackID string `json:"trackid"`
List []struct {
Keyword string `json:"keyword"`
Status string `json:"status"`
NameType string `json:"name_type"`
} `json:"list"`
}
// Suggest struct
type Suggest struct {
Code int `json:"code"`
Stoken string `json:"stoken"`
ResultBs interface{} `json:"result"`
Result struct {
Accurate struct {
UpUser interface{} `json:"upuser,omitempty"`
Bangumi interface{} `json:"bangumi,omitempty"`
} `json:"accurate,omitempty"`
Tag []*struct {
Value string `json:"value,omitempty"`
} `json:"tag,omitempty"`
} `json:"-"`
}
// Suggest2 struct
type Suggest2 struct {
Code int `json:"code"`
Stoken string `json:"stoken"`
Result *struct {
Tag []*SuggestTag `json:"tag"`
} `json:"result"`
}
// SuggestTag struct
type SuggestTag struct {
Value string `json:"value,omitempty"`
Ref int64 `json:"ref,omitempty"`
Name string `json:"name,omitempty"`
SpID int `json:"spid,omitempty"`
Type string `json:"type,omitempty"`
}
// Suggest3 struct
type Suggest3 struct {
Code int `json:"code"`
TrackID string `json:"trackid"`
Result []*Sug `json:"result"`
}
// Sug struct
type Sug struct {
ShowName string `json:"show_name,omitempty"`
Term string `json:"term,omitempty"`
Ref int64 `json:"ref,omitempty"`
TermType int `json:"term_type,omitempty"`
SubType string `json:"sub_type,omitempty"`
Pos int `json:"pos,omitempty"`
Cover string `json:"cover,omitempty"`
CoverSize float64 `json:"cover_size,omitempty"`
Value json.RawMessage `json:"value,omitempty"`
PGC *SugPGC `json:"-"`
User *SugUser `json:"-"`
}
// SugPGC fro sug
type SugPGC struct {
MediaID int64 `json:"media_id,omitempty"`
SeasonID int64 `json:"season_id,omitempty"`
Title string `json:"title,omitempty"`
MediaType int `json:"media_type,omitempty"`
GotoURL string `json:"goto_url,omitempty"`
Areas string `json:"areas,omitempty"`
Pubtime xtime.Time `json:"pubtime,omitempty"`
FixPubTime string `json:"fix_pubtime_str,omitempty"`
Styles string `json:"styles,omitempty"`
CV string `json:"cv,omitempty"`
Staff string `json:"staff,omitempty"`
MediaScore float64 `json:"media_score,omitempty"`
MediaUserCount int `json:"media_user_cnt,omitempty"`
Cover string `json:"cover,omitempty"`
Badges []*model.ReasonStyle `json:"badges,omitempty"`
}
// SugUser fro sug
type SugUser struct {
Mid int64 `json:"uid,omitempty"`
Face string `json:"face,omitempty"`
Name string `json:"uname,omitempty"`
Fans int `json:"fans,omitempty"`
Videos int `json:"videos,omitempty"`
Level int `json:"level,omitempty"`
OfficialVerifyType int `json:"verify_type,omitempty"`
}
// Operate struct
type Operate struct {
ID int64 `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
RedirectURL string `json:"redirect_url,omitempty"`
Desc string `json:"desc,omitempty"`
Corner string `json:"corner,omitempty"`
RecReason string `json:"rec_reason,omitempty"`
ContentList []*struct {
Type int `json:"type,omitempty"`
ID int64 `json:"id,omitempty"`
} `json:"content_list,omitempty"`
}
// Game struct
type Game struct {
ID int64 `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
Desc string `json:"description,omitempty"`
View float64 `json:"view,omitempty"`
Like int64 `json:"like,omitempty"`
Status int `json:"status,omitempty"`
RedirectURL string `json:"redirect_url,omitempty"`
}
// Comic struct
type Comic struct {
ID int64 `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Author []string `json:"author,omitempty"`
Cover string `json:"cover,omitempty"`
Styles string `json:"styles,omitempty"`
URL string `json:"url,omitempty"`
ComicURL string `json:"sq_url,omitempty"`
}
// Channel struct
type Channel struct {
Type string `json:"type,omitempty"`
TagID int64 `json:"tag_id,omitempty"`
TagName string `json:"tag_name,omitempty"`
AttenCount int `json:"atten_count,omitempty"`
Cover string `json:"cover,omitempty"`
Desc string `json:"desc,omitempty"`
Values []*Flow `json:"value_list,omitempty"`
}
// Twitter twitter.
type Twitter struct {
ID int64 `json:"id,omitempty"`
PicID int64 `json:"pic_id"`
Cover []string `json:"cover,omitempty"`
CoverCount int `json:"cover_count,omitempty"`
Content string `json:"content,omitempty"`
}
// Star struct
type Star struct {
ID int64 `json:"id,omitempty"`
Cover string `json:"cover,omitempty"`
Desc string `json:"desc,omitempty"`
Title string `json:"title,omitempty"`
MID int64 `json:"mid,omitempty"`
TagID int64 `json:"tag_id,omitempty"`
TagList []*struct {
TagName string `json:"tagname,omitempty"`
KeyWord string `json:"searchtagname,omitempty"`
ValueList []*struct {
Type string `json:"type,omitempty"`
Video *Video `json:"values,omitempty"`
} `json:"value_list,omitempty"`
} `json:"tag_list,omitempty"`
}
// Ticket for search.
type Ticket struct {
ID int64 `json:"id,omitempty"`
Title string `json:"project_name,omitempty"`
Cover string `json:"cover,omitempty"`
ShowTime string `json:"show_time,omitempty"`
CityName string `json:"city_name,omitempty"`
VenueName string `json:"venue_name,omitempty"`
PriceLow int `json:"price_low,omitempty"`
PriceType int `json:"need_up,omitempty"`
ReqNum int `json:"required_number,omitempty"`
URL string `json:"url,omitempty"`
}
// Product for search.
type Product struct {
ID int64 `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
ShopName string `json:"shop_name,omitempty"`
Price int `json:"price,omitempty"`
PriceType int `json:"need_up,omitempty"`
ReqNum int `json:"required_number,omitempty"`
URL string `json:"url,omitempty"`
}
// SpecialerGuide fro search
type SpecialerGuide struct {
ID int64 `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Desc string `json:"desc,omitempty"`
Cover string `json:"cover,omitempty"`
Tel string `json:"tel,omitempty"`
}
// Flow struct
type Flow struct {
LinkType string `json:"linktype,omitempty"`
Position int `json:"position,omitempty"`
Type string `json:"type,omitempty"`
TypeName string `json:"type_name,omitempty"`
Value json.RawMessage `json:"value,omitempty"`
Video *Video
Live *Live
Operate *Operate
Article *Article
Media *Media
User *User
Game *Game
Query []*Query
Twitter *Twitter
Comic *Comic
Star *Star
Ticket *Ticket
Product *Product
SpecialerGuide *SpecialerGuide
Channel *Channel
TrackID string `json:"trackid,omitempty"`
}
// Change chagne flow
func (f *Flow) Change() {
var err error
switch f.Type {
case TypeVideo:
err = json.Unmarshal(f.Value, &f.Video)
case TypeLive:
err = json.Unmarshal(f.Value, &f.Live)
case TypeMediaBangumi, TypeMediaFt:
err = json.Unmarshal(f.Value, &f.Media)
case TypeArticle:
err = json.Unmarshal(f.Value, &f.Article)
case TypeSpecial, TypeBanner, TypeSpecialS, TypeConverge:
err = json.Unmarshal(f.Value, &f.Operate)
case TypeUser, TypeBiliUser:
err = json.Unmarshal(f.Value, &f.User)
case TypeGame:
err = json.Unmarshal(f.Value, &f.Game)
case TypeQuery:
err = json.Unmarshal(f.Value, &f.Query)
case TypeComic:
err = json.Unmarshal(f.Value, &f.Comic)
case TypeTwitter:
err = json.Unmarshal(f.Value, &f.Twitter)
case TypeStar:
err = json.Unmarshal(f.Value, &f.Star)
case TypeTicket:
err = json.Unmarshal(f.Value, &f.Ticket)
case TypeProduct:
err = json.Unmarshal(f.Value, &f.Product)
case TypeSpecialerGuide:
err = json.Unmarshal(f.Value, &f.SpecialerGuide)
case TypeChannel:
if err = json.Unmarshal(f.Value, &f.Channel); err == nil {
if f.Channel != nil && len(f.Channel.Values) > 0 {
for _, value := range f.Channel.Values {
value.Change()
}
}
}
}
if err != nil {
log.Error("Change json.Unmarshal(%s) error(%+v)", f.Value, err)
}
}
// SugChange chagne sug value
func (s *Sug) SugChange() {
var err error
switch s.TermType {
case SuggestionJumpUser:
err = json.Unmarshal(s.Value, &s.PGC)
case SuggestionJumpPGC:
err = json.Unmarshal(s.Value, &s.User)
}
if err != nil {
log.Error("SugChange json.Unmarshal(%s) error(%+v)", s.Value, err)
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["shop.go"],
importpath = "go-common/app/interface/main/app-interface/model/shop",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,9 @@
package shop
type Info struct {
Shop *struct {
ID int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Status int `json:"status,omitempty"`
} `json:"shop,omitempty"`
}

View File

@@ -0,0 +1,29 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["sidebar.go"],
importpath = "go-common/app/interface/main/app-interface/model/sidebar",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//library/time:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,28 @@
package sidebar
import (
"go-common/library/time"
)
// SideBar struct
type SideBar struct {
ID int64 `json:"id,omitempty"`
Tip int `json:"tip,omitempty"`
Rank int `json:"rank,omitempty"`
Logo string `json:"logo,omitempty"`
LogoWhite string `json:"logo_white,omitempty"`
Name string `json:"name,omitempty"`
Param string `json:"param,omitempty"`
Module int `json:"module,omitempty"`
Plat int8 `json:"-"`
Build int `json:"-"`
Conditions string `json:"-"`
OnlineTime time.Time `json:"online_time"`
}
// Limit struct
type Limit struct {
ID int64 `json:"-"`
Build int `json:"-"`
Condition string `json:"-"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["specil.go"],
importpath = "go-common/app/interface/main/app-interface/model/sp",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,17 @@
package sp
type Specil struct {
Results int `json:"results"`
Pages int `json:"pages"`
Items map[string]*Item `json:"list"`
}
type Item struct {
Title string `json:"title"`
Cover string `json:"cover"`
MCover string `json:"m_cover"`
SCover string `json:"s_cover"`
CTime string `json:"create_at"`
SpID int64 `json:"spid"`
Attention int `json:"attention"`
}

View File

@@ -0,0 +1,47 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"contribute.go",
"mine.go",
"space.go",
],
importpath = "go-common/app/interface/main/app-interface/model/space",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/app-interface/model:go_default_library",
"//app/interface/main/app-interface/model/audio:go_default_library",
"//app/interface/main/app-interface/model/bangumi:go_default_library",
"//app/interface/main/app-interface/model/bplus:go_default_library",
"//app/interface/main/app-interface/model/community:go_default_library",
"//app/interface/main/app-interface/model/elec:go_default_library",
"//app/interface/main/app-interface/model/favorite:go_default_library",
"//app/interface/main/tag/model:go_default_library",
"//app/interface/openplatform/article/model:go_default_library",
"//app/service/main/account/api:go_default_library",
"//app/service/main/account/model:go_default_library",
"//app/service/main/archive/api:go_default_library",
"//library/time:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,269 @@
package space
import (
"go-common/app/interface/main/app-interface/model"
"go-common/app/interface/main/app-interface/model/audio"
"go-common/app/interface/main/app-interface/model/bplus"
article "go-common/app/interface/openplatform/article/model"
"go-common/app/service/main/archive/api"
xtime "go-common/library/time"
"strconv"
)
const (
_gotoAv = 0
_gotoArticle = 1
_gotoClip = 2
_gotoAlbum = 3
_gotoAudio = 4
)
// Contributes struct
type Contributes struct {
Tab *Tab `json:"tab,omitempty"`
Items []*Item `json:"items,omitempty"`
Links *Links `json:"links,omitempty"`
}
// Tab struct
type Tab struct {
Archive bool `json:"archive"`
Article bool `json:"article"`
Clip bool `json:"clip"`
Album bool `json:"album"`
Favorite bool `json:"favorite"`
Bangumi bool `json:"bangumi"`
Coin bool `json:"coin"`
Like bool `json:"like"`
Community bool `json:"community"`
Dynamic bool `json:"dynamic"`
Audios bool `json:"audios"`
Shop bool `json:"shop"`
}
// Item struct
type Item struct {
ID int64 `json:"id,omitempty"`
TypeName string `json:"tname,omitempty"`
Category *article.Category `json:"category,omitempty"`
Title string `json:"title,omitempty"`
Cover string `json:"cover,omitempty"`
Tag string `json:"tag,omitempty"`
Tags []*article.Tag `json:"tags,omitempty"`
Desc string `json:"description,omitempty"`
URI string `json:"uri,omitempty"`
Param string `json:"param,omitempty"`
Goto string `json:"goto,omitempty"`
Length string `json:"length,omitempty"`
Duration int64 `json:"duration,omitempty"`
Banner string `json:"banner,omitempty"`
Play int `json:"play,omitempty"`
Comment int `json:"comment,omitempty"`
Danmaku int `json:"danmaku,omitempty"`
Count int `json:"count,omitempty"`
Reply int `json:"reply,omitempty"`
CTime xtime.Time `json:"ctime,omitempty"`
MTime xtime.Time `json:"mtime,omitempty"`
ImageURLs []string `json:"image_urls,omitempty"`
Pictures []*bplus.Pictures `json:"pictures,omitempty"`
Words int64 `json:"words,omitempty"`
Stats *article.Stats `json:"stats,omitempty"`
AuthType int `json:"authType,omitempty"`
Member int64 `json:"member,omitempty"`
}
// Links struct
type Links struct {
Previous int64 `json:"previous,omitempty"`
Next int64 `json:"next,omitempty"`
}
// Link func
func (l *Links) Link(sinceID, untilID int64) {
if sinceID < 0 || untilID < 0 {
return
}
l.Previous = sinceID
l.Next = untilID
}
// Items struct
type Items []*Item
//Len()
func (is Items) Len() int { return len(is) }
//Less()
func (is Items) Less(i, j int) bool {
var it, jt xtime.Time
if is[i] != nil {
it = is[i].CTime
}
if is[j] != nil {
jt = is[j].CTime
}
return it > jt
}
//Swap()
func (is Items) Swap(i, j int) {
is[i], is[j] = is[j], is[i]
}
// Clip struct
type Clip struct {
ID int64 `json:"id"`
Duration int64 `json:"duration"`
CTime xtime.Time `json:"ctime"`
View int `json:"view"`
Damaku int `json:"damaku"`
Title string `json:"title"`
Cover string `json:"cover"`
Tag string `json:"tag"`
}
// Album struct
type Album struct {
ID int64 `json:"doc_id"`
CTime xtime.Time `json:"ctime"`
Count int `json:"count"`
View int `json:"view"`
Comment int `json:"comment"`
Title string `json:"title"`
Desc string `json:"description"`
Pictures []*Pictures `json:"pictures"`
}
// Pictures struct
type Pictures struct {
ImgSrc string `json:"img_src"`
ImgWidth string `json:"img_width"`
ImgHeight string `json:"img_height"`
}
// Tag tag.
type Tag struct {
Tid int64 `json:"tid"`
Name string `json:"name"`
}
// FromArc3 func
func (i *Item) FromArc3(a *api.Arc) {
i.ID = a.Aid
i.Title = a.Title
i.Cover = a.Pic
i.TypeName = a.TypeName
i.Param = strconv.FormatInt(a.Aid, 10)
i.Goto = model.GotoAv
i.URI = model.FillURI(i.Goto, i.Param, nil)
i.Danmaku = int(a.Stat.Danmaku)
i.Duration = a.Duration
i.CTime = a.PubDate
i.Play = int(a.Stat.View)
}
// FromArticle func
func (i *Item) FromArticle(a *article.Meta) {
i.ID = a.ID
i.Title = a.Title
i.Category = a.Category
i.Desc = a.Summary
i.ImageURLs = a.ImageURLs
i.CTime = a.Ctime
i.Tags = a.Tags
i.Banner = a.BannerURL
i.Param = strconv.FormatInt(a.ID, 10)
i.Goto = model.GotoArticle
i.URI = model.FillURI(i.Goto, i.Param, nil)
i.Stats = a.Stats
}
// FromClip func
func (i *Item) FromClip(c *bplus.Clip) {
i.ID = c.ID
i.Duration = c.Duration
i.CTime = c.CTime
i.Play = c.View
i.Danmaku = c.Damaku
i.Param = strconv.FormatInt(c.ID, 10)
i.Goto = model.GotoClip
i.URI = model.FillURI(i.Goto, i.Param, nil)
i.Title = c.Title
i.Cover = c.Cover
i.Tag = c.Tag
}
// FromAlbum func
func (i *Item) FromAlbum(a *bplus.Album) {
i.ID = a.ID
i.CTime = a.CTime
i.Count = a.Count
i.Play = a.View
i.Comment = a.Comment
i.Param = strconv.FormatInt(a.ID, 10)
i.Goto = model.GotoAlbum
i.URI = model.FillURI(i.Goto, i.Param, nil)
i.Title = a.Title
i.Desc = a.Desc
i.Pictures = a.Pictures
}
// FromAudio func
func (i *Item) FromAudio(a *audio.Audio) {
i.ID = a.ID
i.CTime = a.CTime
i.Play = a.Play
i.Reply = a.Reply
i.Param = strconv.FormatInt(a.ID, 10)
i.Goto = model.GotoAudio
i.URI = a.Schema
i.Cover = a.Cover
i.Title = a.Title
i.AuthType = a.AuthType
i.Duration = a.Duration
}
// FormatKey func
func (i *Item) FormatKey() {
switch i.Goto {
case model.GotoAv:
i.Member = i.ID<<6 | _gotoAv
case model.GotoArticle:
i.Member = i.ID<<6 | _gotoArticle
case model.GotoClip:
i.Member = i.ID<<6 | _gotoClip
case model.GotoAlbum:
i.Member = i.ID<<6 | _gotoAlbum
case model.GotoAudio:
i.Member = i.ID<<6 | _gotoAudio
default:
i.Member = i.ID
}
}
// ParseKey func
func (i *Item) ParseKey() {
i.ID = i.Member >> 6
switch int(i.Member & 0x3f) {
case _gotoAv:
i.Goto = model.GotoAv
case _gotoArticle:
i.Goto = model.GotoArticle
case _gotoClip:
i.Goto = model.GotoClip
case _gotoAlbum:
i.Goto = model.GotoAlbum
case _gotoAudio:
i.Goto = model.GotoAudio
}
}
// Attrs struct
type Attrs struct {
Archive bool `json:"archive,omitempty"`
Article bool `json:"article,omitempty"`
Clip bool `json:"clip,omitempty"`
Album bool `json:"album,omitempty"`
Audio bool `json:"audio,omitempty"`
}

View File

@@ -0,0 +1,87 @@
package space
import (
accv1 "go-common/app/service/main/account/api"
accmdl "go-common/app/service/main/account/model"
)
// Mine my center struct
type Mine struct {
Mid int64 `json:"mid"`
Name string `json:"name"`
Face string `json:"face"`
Coin float64 `json:"coin"`
BCoin float64 `json:"bcoin"`
Sex int32 `json:"sex"`
Rank int32 `json:"rank"`
Silence int32 `json:"silence"`
EndTime int64 `json:"end_time,omitempty"`
ShowVideoup int `json:"show_videoup"`
ShowCreative int `json:"show_creative"`
Level int32 `json:"level"`
VipType int32 `json:"vip_type"`
AudioType int `json:"audio_type"`
Dynamic int64 `json:"dynamic"`
Following int64 `json:"following"`
Follower int64 `json:"follower"`
NewFollowers int64 `json:"new_followers"`
Official struct {
Type int8 `json:"type"`
Desc string `json:"desc"`
} `json:"official_verify"`
Pendant *Pendant `json:"pendant,omitempty"`
Sections []*Section `json:"sections,omitempty"`
IpadSections []*SectionItem `json:"ipad_sections,omitempty"`
IpadUpperSections []*SectionItem `json:"ipad_upper_sections,omitempty"`
}
// Section for mine page, like 【个人中心】【我的服务】
type Section struct {
Title string `json:"title"`
Items []*SectionItem `json:"items"`
}
// SectionItem like 【离线缓存】 【历史记录】,a part of section
type SectionItem struct {
Title string `json:"title"`
URI string `json:"uri"`
Icon string `json:"icon"`
NeedLogin int8 `json:"need_login,omitempty"`
RedDot int8 `json:"red_dot,omitempty"`
}
// Myinfo myinfo
type Myinfo struct {
Mid int64 `json:"mid"`
Name string `json:"name"`
Sign string `json:"sign"`
Coins float64 `json:"coins"`
Birthday string `json:"birthday"`
Face string `json:"face"`
Sex int `json:"sex"`
Level int32 `json:"level"`
Rank int32 `json:"rank"`
Silence int32 `json:"silence"`
EndTime int64 `json:"end_time,omitempty"`
Vip accmdl.VipInfo `json:"vip"`
EmailStatus int32 `json:"email_status"`
TelStatus int32 `json:"tel_status"`
Official accv1.OfficialInfo `json:"official"`
Identification int32 `json:"identification"`
Pendant *Pendant `json:"pendant,omitempty"`
}
// MineParam struct
type MineParam struct {
MobiApp string `form:"mobi_app"`
Device string `form:"device"`
Build int `form:"build"`
Platform string `form:"platform"`
Mid int64 `form:"mid"`
Filtered string `form:"filtered"`
}
// Pendant struct
type Pendant struct {
Image string `json:"image"`
}

View File

@@ -0,0 +1,363 @@
package space
import (
"strconv"
"encoding/json"
"go-common/app/interface/main/app-interface/model"
"go-common/app/interface/main/app-interface/model/audio"
"go-common/app/interface/main/app-interface/model/bangumi"
"go-common/app/interface/main/app-interface/model/community"
"go-common/app/interface/main/app-interface/model/elec"
"go-common/app/interface/main/app-interface/model/favorite"
tag "go-common/app/interface/main/tag/model"
article "go-common/app/interface/openplatform/article/model"
"go-common/app/service/main/archive/api"
xtime "go-common/library/time"
)
// Space struct
type Space struct {
Relation int `json:"relation"`
Medal int `json:"medal,omitempty"`
Attention uint32 `json:"attention,omitempty"`
Setting *Setting `json:"setting,omitempty"`
Tab *Tab `json:"tab,omitempty"`
Card *Card `json:"card,omitempty"`
Space *Mob `json:"images,omitempty"`
Shop *Shop `json:"shop,omitempty"`
Live json.RawMessage `json:"live,omitempty"`
Elec *elec.Info `json:"elec,omitempty"`
Archive *ArcList `json:"archive,omitempty"`
Article *ArticleList `json:"article,omitempty"`
Clip *ClipList `json:"clip,omitempty"`
Album *AlbumList `json:"album,omitempty"`
Favourite *FavList `json:"favourite,omitempty"`
Season *BangumiList `json:"season,omitempty"`
CoinArc *ArcList `json:"coin_archive,omitempty"`
LikeArc *ArcList `json:"like_archive,omitempty"`
Audios *AudioList `json:"audios,omitempty"`
Community *CommuList `json:"community,omitempty"`
}
// Card struct
type Card struct {
Mid string `json:"mid"`
Name string `json:"name"`
Approve bool `json:"approve"`
Sex string `json:"sex"`
Rank string `json:"rank"`
Face string `json:"face"`
DisplayRank string `json:"DisplayRank"`
Regtime int64 `json:"regtime"`
Spacesta int `json:"spacesta"`
Birthday string `json:"birthday"`
Place string `json:"place"`
Description string `json:"description"`
Article int `json:"article"`
Attentions []int64 `json:"attentions"`
Fans int `json:"fans"`
Friend int `json:"friend"`
Attention int `json:"attention"`
Sign string `json:"sign"`
LevelInfo LevelInfo `json:"level_info"`
Pendant PendantInfo `json:"pendant"`
Nameplate NameplateInfo `json:"nameplate"`
OfficialVerify OfficialInfo `json:"official_verify"`
Vip struct {
Type int `json:"vipType"`
DueDate int64 `json:"vipDueDate"`
DueRemark string `json:"dueRemark"`
AccessStatus int `json:"accessStatus"`
VipStatus int `json:"vipStatus"`
VipStatusWarn string `json:"vipStatusWarn"`
} `json:"vip"`
FansGroup int `json:"fans_group,omitempty"`
Audio int `json:"audio,omitempty"`
FansUnread bool `json:"fans_unread,omitempty"`
}
// Mob struct
type Mob struct {
ImgURL string `json:"imgUrl"`
}
// Shop struct
type Shop struct {
ID int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
}
// LevelInfo struct
type LevelInfo struct {
Cur int32 `json:"current_level"`
Min int32 `json:"current_min"`
NowExp int32 `json:"current_exp"`
NextExp interface{} `json:"next_exp"`
}
// PendantInfo struct
type PendantInfo struct {
Pid int `json:"pid"`
Name string `json:"name"`
Image string `json:"image"`
Expire int `json:"expire"`
}
// NameplateInfo struct
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"`
}
// OfficialInfo struct
type OfficialInfo struct {
Type int8 `json:"type"`
Desc string `json:"desc"`
Role int8 `json:"role"`
Title string `json:"title"`
}
// Setting struct
type Setting struct {
Channel int `json:"channel,omitempty"`
FavVideo int `json:"fav_video"`
CoinsVideo int `json:"coins_video"`
LikesVideo int `json:"likes_video"`
Bangumi int `json:"bangumi"`
PlayedGame int `json:"played_game"`
Groups int `json:"groups"`
}
// TagList struct
type TagList struct {
Count int `json:"count"`
Tags []*tag.Tag `json:"item"`
}
// ArcList struct
type ArcList struct {
Count int `json:"count"`
Item []*ArcItem `json:"item"`
}
// ArticleList struct
type ArticleList struct {
Count int `json:"count"`
Item []*ArticleItem `json:"item"`
ListsCount int `json:"lists_count"`
Lists []*article.List `json:"lists"`
}
// CommuList struct
type CommuList struct {
Count int `json:"count"`
Item []*CommItem `json:"item"`
}
// FavList struct
type FavList struct {
Count int `json:"count"`
Item []*favorite.Folder `json:"item"`
}
// BangumiList struct
type BangumiList struct {
Count int `json:"count"`
Item []*BangumiItem `json:"item"`
}
// AudioList struct
type AudioList struct {
Count int `json:"count"`
Item []*AudioItem `json:"item"`
}
// ClipList struct
type ClipList struct {
Count int `json:"count"`
More int `json:"has_more"`
Offset int `json:"next_offset"`
Item []*Item `json:"item"`
}
// AlbumList struct
type AlbumList struct {
Count int `json:"count"`
More int `json:"has_more"`
Offset int `json:"next_offset"`
Item []*Item `json:"item"`
}
// ArcItem struct
type ArcItem struct {
Title string `json:"title"`
TypeName string `json:"tname"`
Cover string `json:"cover"`
URI string `json:"uri"`
Param string `json:"param"`
Goto string `json:"goto"`
Length string `json:"length"`
Duration int64 `json:"duration"`
// av
Play int `json:"play"`
Danmaku int `json:"danmaku"`
CTime xtime.Time `json:"ctime"`
UGCPay int32 `json:"ugc_pay"`
}
// ArticleItem struct
type ArticleItem struct {
*article.Meta
URI string `json:"uri"`
Param string `json:"param"`
Goto string `json:"goto"`
}
// BangumiItem struct
type BangumiItem struct {
Title string `json:"title"`
Cover string `json:"cover"`
URI string `json:"uri"`
Param string `json:"param"`
Goto string `json:"goto"`
Finish int8 `json:"finish"`
Index string `json:"index"`
MTime xtime.Time `json:"mtime"`
NewestEpIndex string `json:"newest_ep_index"`
IsStarted int `json:"is_started"`
IsFinish string `json:"is_finish"`
NewestEpID string `json:"newest_ep_id"`
TotalCount string `json:"total_count"`
Attention string `json:"attention"`
}
// CommItem struct
type CommItem struct {
ID int `json:"id"`
Name string `json:"name"`
Desc string `json:"desc"`
Thumb string `json:"thumb"`
PostCount int `json:"post_count"`
MemberCount int `json:"member_count"`
PostNickname string `json:"post_nickname"`
MemberNickname string `json:"member_nickname"`
}
// AudioItem struct
type AudioItem struct {
ID int64 `json:"id"`
Aid int64 `json:"aid"`
UID int64 `json:"uid"`
Title string `json:"title"`
Cover string `json:"cover"`
Author string `json:"author"`
Schema string `json:"schema"`
Duration int64 `json:"duration"`
Play int `json:"play"`
Reply int `json:"reply"`
IsOff int `json:"isOff"`
AuthType int `json:"authType"`
CTime xtime.Time `json:"ctime"`
}
// FromSeason func
func (i *BangumiItem) FromSeason(b *bangumi.Season) {
i.Title = b.Title
i.Cover = b.Cover
i.Goto = model.GotoBangumi
i.Param = b.SeasonID
i.URI = model.FillURI(model.GotoBangumiWeb, b.SeasonID, nil)
i.IsStarted = b.IsStarted
if b.IsFinish == "1" {
i.Finish = 1
}
i.NewestEpIndex = b.NewestEpIndex
i.TotalCount = b.TotalCount
if b.UserSeason != nil {
i.Attention = b.UserSeason.Attention
}
}
// FromCoinArc func
func (i *ArcItem) FromCoinArc(a *api.Arc) {
i.Title = a.Title
i.Cover = a.Pic
i.Param = strconv.FormatInt(int64(a.Aid), 10)
i.URI = model.FillURI(model.GotoAv, i.Param, nil)
i.Goto = model.GotoAv
i.Danmaku = int(a.Stat.Danmaku)
i.Duration = a.Duration
i.CTime = a.PubDate
i.Play = int(a.Stat.View)
}
// FromLikeArc fun
func (i *ArcItem) FromLikeArc(a *api.Arc) {
i.Title = a.Title
i.Cover = a.Pic
i.Param = strconv.FormatInt(int64(a.Aid), 10)
i.URI = model.FillURI(model.GotoAv, i.Param, nil)
i.Goto = model.GotoAv
i.Danmaku = int(a.Stat.Danmaku)
i.Duration = a.Duration
i.CTime = a.PubDate
i.Play = int(a.Stat.View)
}
// FromArticle func
func (i *ArticleItem) FromArticle(a *article.Meta) {
i.Meta = a
i.Param = strconv.FormatInt(int64(a.ID), 10)
i.URI = model.FillURI(model.GotoArticle, i.Param, nil)
i.Goto = model.GotoArticle
}
// FromArc func
func (i *ArcItem) FromArc(c *api.Arc) {
i.Title = c.Title
i.Cover = c.Pic
i.TypeName = c.TypeName
i.Param = strconv.FormatInt(int64(c.Aid), 10)
i.URI = model.FillURI(model.GotoAv, i.Param, nil)
i.Goto = model.GotoAv
i.Danmaku = int(c.Stat.Danmaku)
i.CTime = c.PubDate
i.Duration = c.Duration
i.Play = int(c.Stat.View)
i.UGCPay = c.Rights.UGCPay
}
// FromCommunity func
func (i *CommItem) FromCommunity(c *community.Community) {
i.ID = c.ID
i.Name = c.Name
i.Desc = c.Desc
i.Thumb = c.Thumb
i.PostCount = c.PostCount
i.MemberCount = c.MemberCount
i.PostNickname = c.PostNickname
i.MemberNickname = c.MemberNickname
}
// FromAudio func
func (i *AudioItem) FromAudio(a *audio.Audio) {
i.ID = a.ID
i.Aid = a.Aid
i.UID = a.UID
i.Title = a.Title
i.Cover = a.Cover
i.Author = a.Author
i.Schema = a.Schema
i.Duration = a.Duration
i.Play = a.Play
i.Reply = a.Reply
i.IsOff = a.IsOff
i.AuthType = a.AuthType
i.CTime = a.CTime
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["tag.go"],
importpath = "go-common/app/interface/main/app-interface/model/tag",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,13 @@
package tag
type Tag struct {
TagID int64 `json:"tag_id"`
Name string `json:"tag_name"`
Cover string `json:"cover"`
Likes int64 `json:"likes"`
Hates int64 `json:"hates"`
Liked int8 `json:"liked"`
Hated int8 `json:"hated"`
Attribute int8 `json:"attribute"`
IsAtten int `json:"is_atten"`
}

View File

@@ -0,0 +1,28 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["topic.go"],
importpath = "go-common/app/interface/main/app-interface/model/topic",
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,36 @@
package topic
type Topic struct {
Page int `json:"page"`
PageSize int `json:"pagesize"`
Total int `json:"total"`
Lists []*List `json:"list"`
}
type List struct {
ID int64 `json:"id"`
TpID int64 `json:"tp_id"`
MID int64 `json:"mid"`
FavAt int64 `json:"fav_at"`
State int64 `json:"state"`
Stime string `json:"stime"`
Etime string `json:"etime"`
Ctime string `json:"ctime"`
Mtime string `json:"mtime"`
Name string `json:"name"`
Author string `json:"author"`
PCUrl string `json:"pc_url"`
H5Url string `json:"h5_url"`
PCCover string `json:"pc_cover"`
H5Cover string `json:"h5_cover"`
Rank int64 `json:"rank"`
PageName string `json:"page_name"`
Plat int64 `json:"plat"`
Desc string `json:"desc"`
Click int64 `json:"click"`
TPType int64 `json:"type"`
Mold int64 `json:"mold"`
Series int64 `json:"series"`
Dept int64 `json:"dept"`
ReplyID int64 `json:"reply_id"`
}