From 2c6809f0f5e4cfedaf2a4d2c730f7a63d31ee8ee Mon Sep 17 00:00:00 2001 From: bianjiajie Date: Fri, 27 Jan 2023 15:02:13 +0800 Subject: [PATCH] =?UTF-8?q?[feature]=20=E9=9A=8F=E6=9C=BA=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/app/api/idl/bilibili_picture.go | 10 ++++++---- internal/app/api/middlewares/cors.go | 9 +++++---- internal/app/api/service/bilbil_picture.go | 14 +++++++++++++- internal/pkg/bilibili/video.go | 1 - internal/pkg/httpserver/gin.go | 1 - internal/repository/bilibili_picture.go | 2 +- 6 files changed, 25 insertions(+), 12 deletions(-) diff --git a/internal/app/api/idl/bilibili_picture.go b/internal/app/api/idl/bilibili_picture.go index 317532a..a43d404 100644 --- a/internal/app/api/idl/bilibili_picture.go +++ b/internal/app/api/idl/bilibili_picture.go @@ -90,6 +90,7 @@ type BilibiliPicturesRecommendResp struct { type BilibiliPictureRandomResp struct { BilibiliDynamicPicture + DynamicURL string `json:"dynamic_url"` } type BilibiliDynamicDTO struct { DynamicID uint64 `json:"dynamic_id"` @@ -99,10 +100,11 @@ type BilibiliDynamicDTO struct { type BilibiliDynamicPictures []BilibiliDynamicPicture type BilibiliDynamicPicture struct { - Height float64 `json:"img_height"` - Size float64 `json:"img_size"` - Width float64 `json:"img_width"` - ImgSrc string `json:"img_src"` + Height float64 `json:"img_height"` + Size float64 `json:"img_size"` + Width float64 `json:"img_width"` + ImgSrc string `json:"img_src"` + DynamicID uint64 `json:"dynamic_id"` } type BilibiliDynamicTopicDetails []BilibiliDynamicTopicDetail diff --git a/internal/app/api/middlewares/cors.go b/internal/app/api/middlewares/cors.go index 92d0548..63bf4eb 100644 --- a/internal/app/api/middlewares/cors.go +++ b/internal/app/api/middlewares/cors.go @@ -1,16 +1,17 @@ package middlewares import ( - "github.com/gin-gonic/gin" "net/http" + + "github.com/gin-gonic/gin" ) func Cors() gin.HandlerFunc { return func(c *gin.Context) { method := c.Request.Method - origin := c.Request.Header.Get("Origin") + origin := c.Request.Header.Get("Origin") if origin != "" { - c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的域名 + c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的域名 c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE") c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization") c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type") @@ -20,4 +21,4 @@ func Cors() gin.HandlerFunc { } c.Next() } -} \ No newline at end of file +} diff --git a/internal/app/api/service/bilbil_picture.go b/internal/app/api/service/bilbil_picture.go index 6db2d74..cb0b193 100644 --- a/internal/app/api/service/bilbil_picture.go +++ b/internal/app/api/service/bilbil_picture.go @@ -3,6 +3,7 @@ package service import ( "context" "errors" + "fmt" "math/rand" "sync" "time" @@ -21,6 +22,8 @@ type RandomPicKey string const ( overall RandomPicKey = "overall" + + DynamicURL = "https://t.bilibili.com/%d" ) var ( @@ -77,7 +80,14 @@ func (c *RandomPicsCache) flush() { pictures := make(idl.BilibiliDynamicPictures, 0) for i := range list { for j := range list[i].Pictures { - pictures = append(pictures, list[i].Pictures[j]) + pictures = append(pictures, + idl.BilibiliDynamicPicture{ + Height: list[i].Pictures[j].Height, + Size: list[i].Pictures[j].Size, + Width: list[i].Pictures[j].Width, + ImgSrc: list[i].Pictures[j].ImgSrc, + DynamicID: list[i].DynamicID, + }) } } c.syncMap.Store(overall, pictures) @@ -144,6 +154,7 @@ func (service *BilbilPicture) Random(ctx context.Context) (*idl.BilibiliPictureR idx := rand.Intn(len(pictures)) resp := &idl.BilibiliPictureRandomResp{} resp.BilibiliDynamicPicture = pictures[idx] + resp.DynamicURL = fmt.Sprintf(DynamicURL, pictures[idx].DynamicID) return resp, nil } } @@ -168,5 +179,6 @@ func (service *BilbilPicture) Random(ctx context.Context) (*idl.BilibiliPictureR idx := rand.Intn(len(pictures)) resp := &idl.BilibiliPictureRandomResp{} resp.BilibiliDynamicPicture = pictures[idx] + resp.DynamicURL = fmt.Sprintf(DynamicURL, pictures[idx].DynamicID) return resp, nil } diff --git a/internal/pkg/bilibili/video.go b/internal/pkg/bilibili/video.go index c8e0c1d..7a19699 100644 --- a/internal/pkg/bilibili/video.go +++ b/internal/pkg/bilibili/video.go @@ -377,7 +377,6 @@ func (sdk *SDK) TopicDynamics(topicName string, offsetDynamicId uint64) (data *D func (sdk *SDK) Dynamic(dynamicId uint64) (data *Dynamic, err error) { url := fmt.Sprintf(dynamic, dynamicId) - fmt.Println(url) if err = sdk.fastGet(url, &data); err != nil { return nil, err } diff --git a/internal/pkg/httpserver/gin.go b/internal/pkg/httpserver/gin.go index 44e7100..e74cf33 100644 --- a/internal/pkg/httpserver/gin.go +++ b/internal/pkg/httpserver/gin.go @@ -32,7 +32,6 @@ func NewRouter(c *Config, logger *zap.Logger, init InitRouters) *gin.Engine { r.Use(gin.Recovery()) r.Use(ginZap.Ginzap(logger, time.RFC3339, true)) r.Use(ginZap.RecoveryWithZap(logger, true)) - if c.MaxMultipartMemory != 0 { // 最大上传文件大小 mb r.MaxMultipartMemory = int64(c.MaxMultipartMemory) << 20 diff --git a/internal/repository/bilibili_picture.go b/internal/repository/bilibili_picture.go index f572c93..0575bfc 100644 --- a/internal/repository/bilibili_picture.go +++ b/internal/repository/bilibili_picture.go @@ -104,7 +104,7 @@ func (impl *BilibiliPictureMysqlImpl) Random(rand float64) (list []*idl.Bilibili return nil, err } offset := math.Floor((pair.MaxId - pair.MinId) * rand) - err = conn.Where("id >= ?", uint64(pair.MinId+offset)).Select("pictures").Limit(5).Find(&list).Error + err = conn.Where("id >= ?", uint64(pair.MinId+offset)).Select("dynamic_id,pictures").Limit(5).Find(&list).Error if err != nil { return nil, err }