123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package web
- import (
- "fmt"
- "math/rand"
- "time"
- "go-common/app/interface/main/web-goblin/conf"
- "go-common/app/service/main/archive/api"
- )
- const (
- _deal = 100
- )
- // Mi mi common .
- type Mi struct {
- ID int64 `json:"id"`
- Name string `json:"name"`
- Op string `json:"op"`
- AlternativeNames string `json:"alternative_names"`
- Cover Img `json:"cover"`
- Thumbnail Img `json:"thumbnail"`
- Description string `json:"description"`
- Tags string `json:"tags"`
- CreateTime string `json:"create_time"`
- ModifyTime string `json:"modify_time"`
- PublishTime string `json:"publish_time"`
- Author string `json:"author"`
- Category string `json:"category"`
- Rating float32 `json:"rating"`
- PlayCount int32 `json:"play_count"`
- PlayCountMonth int `json:"play_count_month"`
- PlayCountWeek int `json:"play_count_week"`
- PlayLength int64 `json:"play_length"`
- Language string `json:"language"`
- Images Img `json:"images"`
- Weburl string `json:"weburl"`
- Appurl string `json:"appurl"`
- MinVersion int `json:"min_version"`
- Pages []*PageInfo `json:"pages"`
- CommentCount int32 `json:"comment_count"`
- LikeCount int32 `json:"like_count"`
- }
- // PageInfo page3 .
- type PageInfo struct {
- Cid int64 `json:"cid"`
- Page int32 `json:"page"`
- }
- // Img img .
- type Img struct {
- URL string `json:"url"`
- Height int `json:"height"`
- Width int `json:"width"`
- }
- // SearchAids return aids .
- type SearchAids struct {
- Aid int64 `json:"aid"`
- Action string `json:"action"`
- }
- // FromArchive .
- func (f *Mi) FromArchive(a *api.Arc, p []*api.Page, op, source string) {
- f.ID = a.Aid
- f.Name = a.Title
- f.Author = a.Author.Name
- f.Category = a.TypeName
- f.Weburl = fmt.Sprintf("https://www.bilibili.com/video/av%d%s", a.Aid, source)
- f.Appurl = fmt.Sprintf("bilibili://video/%d", a.Aid)
- f.ModifyTime = a.PubDate.Time().Format("2006-01-02 15:04:05")
- f.Description = a.Desc
- f.CreateTime = a.Ctime.Time().Format("2006-01-02 15:04:05")
- f.Images.URL = a.Pic
- f.PlayLength = a.Duration
- f.Cover.URL = a.Pic
- f.Thumbnail.URL = a.Pic
- f.PlayCount = a.Stat.View
- f.PublishTime = a.PubDate.Time().Format("2006-01-02 15:04:05")
- f.MinVersion = 1
- f.Op = op
- f.CommentCount = a.Stat.Reply
- f.LikeCount = a.Stat.Like
- pLen := len(p)
- if pLen > 0 {
- f.Pages = make([]*PageInfo, pLen)
- for i := 0; i < pLen; i++ {
- f.Pages[i] = &PageInfo{}
- f.Pages[i].Page = p[i].Page
- f.Pages[i].Cid = p[i].Cid
- }
- } else {
- f.Pages = []*PageInfo{}
- }
- }
- // UgcFullDeal .
- func (f *Mi) UgcFullDeal() {
- var (
- lCount = conf.Conf.OutSearch.DealLikeFull
- commCount = conf.Conf.OutSearch.DealCommFull
- commRes = f.CommentCount + commCount
- likeRes = f.LikeCount + lCount
- )
- if f.PlayCount+f.CommentCount > 0 {
- commRes = commRes + (f.PlayCount/(f.PlayCount+f.CommentCount))*f.CommentCount
- }
- if f.PlayCount+f.LikeCount > 0 {
- likeRes = likeRes + (f.PlayCount/(f.PlayCount+f.LikeCount))*f.LikeCount
- }
- f.CommentCount = commRes
- f.LikeCount = likeRes
- }
- // UgcIncreDeal .
- func (f *Mi) UgcIncreDeal() {
- rand.Seed(time.Now().UnixNano())
- f.CommentCount = int32(rand.Intn(_deal))
- f.LikeCount = int32(rand.Intn(_deal)) + _deal
- }
|