Explorar o código

更新批量锁定功能的后端接口

Signed-off-by: allan716 <[email protected]>
allan716 %!s(int64=2) %!d(string=hai) anos
pai
achega
f63ecdfc7e
Modificáronse 3 ficheiros con 429 adicións e 26 borrados
  1. 391 0
      go.sum
  2. 29 21
      internal/backend/controllers/v1/video_list_v2.go
  3. 9 5
      pkg/types/backend/req_video_list_add.go

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 391 - 0
go.sum


+ 29 - 21
internal/backend/controllers/v1/video_list_v2.go

@@ -264,43 +264,51 @@ func (cb *ControllerBase) ScanSkipInfo(c *gin.Context) {
 	case "POST":
 		{
 			// 查询
-			videoSkipInfo := backend2.ReqVideoSkipInfo{}
-			err = c.ShouldBindJSON(&videoSkipInfo)
+			videoSkipInfos := backend2.ReqVideoSkipInfos{}
+			err = c.ShouldBindJSON(&videoSkipInfos)
 			if err != nil {
 				return
 			}
-			isSkip := cb.cronHelper.Downloader.ScanLogic.Get(videoSkipInfo.VideoType, videoSkipInfo.PhysicalVideoFileFullPath)
+
+			isSkips := make([]bool, 0)
+			for _, videoSkipInfo := range videoSkipInfos.VideoSkipInfos {
+				isSkip := cb.cronHelper.Downloader.ScanLogic.Get(videoSkipInfo.VideoType, videoSkipInfo.PhysicalVideoFileFullPath)
+				isSkips = append(isSkips, isSkip)
+			}
 			c.JSON(http.StatusOK, backend2.ReplyVideoSkipInfo{
-				IsSkip: isSkip,
+				IsSkips: isSkips,
 			})
 			return
 		}
 	case "PUT":
 		{
 			// 设置
-			videoSkipInfo := backend2.ReqVideoSkipInfo{}
-			err = c.ShouldBindJSON(&videoSkipInfo)
+			videoSkipInfos := backend2.ReqVideoSkipInfos{}
+			err = c.ShouldBindJSON(&videoSkipInfos)
 			if err != nil {
 				return
 			}
 
-			var skipInfo *models.SkipScanInfo
-			if videoSkipInfo.VideoType == 0 {
-				// 电影
-				skipInfo = models.NewSkipScanInfoByMovie(videoSkipInfo.PhysicalVideoFileFullPath, videoSkipInfo.IsSkip)
-			} else {
-				// 电视剧
-				var parse *PTN.TorrentInfo
-				parse, err = PTN.Parse(videoSkipInfo.PhysicalVideoFileFullPath)
-				if err != nil {
-					cb.log.Errorln("SetScanSkipInfo.PTN.Parse", err)
-					return
+			for _, videoSkipInfo := range videoSkipInfos.VideoSkipInfos {
+
+				var skipInfo *models.SkipScanInfo
+				if videoSkipInfo.VideoType == 0 {
+					// 电影
+					skipInfo = models.NewSkipScanInfoByMovie(videoSkipInfo.PhysicalVideoFileFullPath, videoSkipInfo.IsSkip)
+				} else {
+					// 电视剧
+					var parse *PTN.TorrentInfo
+					parse, err = PTN.Parse(videoSkipInfo.PhysicalVideoFileFullPath)
+					if err != nil {
+						cb.log.Errorln("SetScanSkipInfo.PTN.Parse", err)
+						return
+					}
+					dirFPath := filepath.Dir(filepath.Dir(videoSkipInfo.PhysicalVideoFileFullPath))
+					skipInfo = models.NewSkipScanInfoBySeries(dirFPath, parse.Season, parse.Episode, videoSkipInfo.IsSkip)
 				}
-				dirFPath := filepath.Dir(filepath.Dir(videoSkipInfo.PhysicalVideoFileFullPath))
-				skipInfo = models.NewSkipScanInfoBySeries(dirFPath, parse.Season, parse.Episode, videoSkipInfo.IsSkip)
-			}
 
-			cb.cronHelper.Downloader.ScanLogic.Set(skipInfo)
+				cb.cronHelper.Downloader.ScanLogic.Set(skipInfo)
+			}
 
 			c.JSON(http.StatusOK, backend2.ReplyCommon{
 				Message: "ok"})

+ 9 - 5
pkg/types/backend/req_video_list_add.go

@@ -8,13 +8,17 @@ type ReqVideoListAdd struct {
 	IsBluray                  bool   `json:"is_bluray"`                     // 这个偏向于给外部 API 调用的时候传递使用。是否是蓝光,目前只支持电影的蓝光,连续剧没有调试过
 }
 
-type ReqVideoSkipInfo struct {
+type ReqVideoSkipInfos struct {
+	VideoSkipInfos []VideoSkipInfo `json:"video_skip_infos"` // 视频跳过信息
+}
+
+type ReplyVideoSkipInfo struct {
+	IsSkips []bool `json:"is_skips"` // 是否跳过
+}
+
+type VideoSkipInfo struct {
 	VideoType                 int    `json:"video_type"`                    // 0 是 movie or 1 是 series
 	PhysicalVideoFileFullPath string `json:"physical_video_file_full_path"` // 视频的物理路径
 	IsBluray                  bool   `json:"is_bluray"`                     // 是否是蓝光,目前只支持电影的蓝光,连续剧没有调试过
 	IsSkip                    bool   `json:"is_skip"`                       // 是否跳过
 }
-
-type ReplyVideoSkipInfo struct {
-	IsSkip bool `json:"is_skip"` // 是否跳过
-}

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio