فهرست منبع

调整字幕扫描任务进度展示细节

Signed-off-by: allan716 <[email protected]>
allan716 3 سال پیش
والد
کامیت
8d5d17dd78

+ 19 - 7
internal/pkg/common/global_value.go

@@ -42,22 +42,34 @@ func SetSubScanJobStatusPreparing(startedTime string) {
 	subDownloadJobInfoLock.Unlock()
 }
 
-// SetSubScanJobStatusRunning 设置扫描字幕任务的状态为运行
-func SetSubScanJobStatusRunning(WorkingUnitIndex, UnitCount int, WorkingUnitName string,
-	WorkingVideoIndex, VideoCount int, WorkingVideoName string) {
+// SetSubScanJobStatusScanMovie 设置扫描字幕任务的状态为运行
+func SetSubScanJobStatusScanMovie(WorkingUnitIndex, UnitCount int, WorkingUnitName string) {
 
 	subDownloadJobInfoLock.Lock()
+
 	if subDownloadJobInfo == nil {
 		subDownloadJobInfo = &ws.SubDownloadJobInfo{}
 	}
-	subDownloadJobInfo.Status = ws.Running
+	subDownloadJobInfo.Status = ws.ScanMovie
 	subDownloadJobInfo.WorkingUnitIndex = WorkingUnitIndex
 	subDownloadJobInfo.UnitCount = UnitCount
 	subDownloadJobInfo.WorkingUnitName = WorkingUnitName
 
-	subDownloadJobInfo.WorkingVideoIndex = WorkingVideoIndex
-	subDownloadJobInfo.VideoCount = VideoCount
-	subDownloadJobInfo.WorkingVideoName = WorkingVideoName
+	subDownloadJobInfoLock.Unlock()
+}
+
+// SetSubScanJobStatusScanSeriesMain 设置扫描字幕任务的状态为运行
+func SetSubScanJobStatusScanSeriesMain(WorkingUnitIndex, UnitCount int, WorkingUnitName string) {
+
+	subDownloadJobInfoLock.Lock()
+
+	if subDownloadJobInfo == nil {
+		subDownloadJobInfo = &ws.SubDownloadJobInfo{}
+	}
+	subDownloadJobInfo.Status = ws.ScanSeries
+	subDownloadJobInfo.WorkingUnitIndex = WorkingUnitIndex
+	subDownloadJobInfo.UnitCount = UnitCount
+	subDownloadJobInfo.WorkingUnitName = WorkingUnitName
 
 	subDownloadJobInfoLock.Unlock()
 }

+ 10 - 3
internal/pkg/downloader/downloader.go

@@ -12,6 +12,7 @@ import (
 	seriesHelper "github.com/allanpk716/ChineseSubFinder/internal/logic/series_helper"
 	subSupplier "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_supplier"
 	"github.com/allanpk716/ChineseSubFinder/internal/logic/sub_timeline_fixer"
+	pkgcommon "github.com/allanpk716/ChineseSubFinder/internal/pkg/common"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/log_helper"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/my_util"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/settings"
@@ -250,6 +251,9 @@ func (d *Downloader) DownloadSub4Movie() error {
 	// 一个视频文件同时多个站点查询,阻塞完毕后,在进行下一个
 	for i, oneVideoFullPath := range d.movieFileFullPathList {
 
+		// 设置任务的状态
+		pkgcommon.SetSubScanJobStatusScanMovie(i+1, len(d.movieFileFullPathList), filepath.Base(oneVideoFullPath))
+
 		err = d.taskControl.Invoke(&task_control.TaskData{
 			Index: i,
 			DataEx: DownloadInputData{
@@ -358,6 +362,9 @@ func (d *Downloader) DownloadSub4Series() error {
 	seriesDirMap.Each(func(seriesRootPathName interface{}, seriesNames interface{}) {
 		for _, seriesName := range seriesNames.([]string) {
 
+			// 设置任务的状态
+			pkgcommon.SetSubScanJobStatusScanSeriesMain(seriesCount+1, len(seriesNames.([]string)), seriesName)
+
 			err = d.taskControl.Invoke(&task_control.TaskData{
 				Index: seriesCount,
 				DataEx: DownloadInputData{
@@ -480,9 +487,6 @@ func (d *Downloader) seriesDlFunc(ctx context.Context, inData interface{}) error
 				return err
 			}
 		} else {
-
-			//physicalSeriesFolderFPath := ""
-
 			// 先进行 emby_helper api 的操作,读取需要更新字幕的项目
 			seriesInfo, organizeSubFiles, err = d.subSupplierHub.DownloadSub4SeriesFromEmby(
 				filepath.Join(downloadInputData.RootDirPath, downloadInputData.OneSeriesPath),
@@ -499,6 +503,7 @@ func (d *Downloader) seriesDlFunc(ctx context.Context, inData interface{}) error
 	}
 
 	// 只针对需要下载字幕的视频进行字幕的选择保存
+	subVideoCount := 0
 	for epsKey, episodeInfo := range seriesInfo.NeedDlEpsKeyList {
 
 		stage := make(chan interface{}, 1)
@@ -516,6 +521,8 @@ func (d *Downloader) seriesDlFunc(ctx context.Context, inData interface{}) error
 		case <-stage:
 			break
 		}
+
+		subVideoCount++
 	}
 	// 这里会拿到一份季度字幕的列表比如,Key 是 S1E0 S2E0 S3E0,value 是新的存储位置
 	fullSeasonSubDict := d.saveFullSeasonSub(seriesInfo, organizeSubFiles)

+ 5 - 8
internal/types/backend/ws/sub_download_jobs_info.go

@@ -1,12 +1,9 @@
 package ws
 
 type SubDownloadJobInfo struct {
-	Status            string `json:"status"`              // "running", "waiting",不是运行中,就是等待中
-	StartedTime       string `json:"started_time"`        // 任务开始的时间
-	WorkingUnitIndex  int    `json:"working_unit_index"`  // 正在处理到第几部电影或者连续剧
-	UnitCount         int    `json:"unit_count"`          // 一共有多少部电影或者连续剧
-	WorkingUnitName   string `json:"working_unit_name"`   // 电影名称,或者连续剧的名称
-	WorkingVideoIndex int    `json:"working_video_index"` // 正在处理到第几个视频
-	VideoCount        int    `json:"video_count"`         // 一共有几个视频
-	WorkingVideoName  string `json:"working_video_name"`  // 电影名称,或者是连续剧中某一季的某一集的名称
+	Status           string `json:"status"`             // "running", "waiting",不是运行中,就是等待中
+	StartedTime      string `json:"started_time"`       // 任务开始的时间
+	WorkingUnitIndex int    `json:"working_unit_index"` // 正在处理到第几部电影或者连续剧
+	UnitCount        int    `json:"unit_count"`         // 一共有多少部电影或者连续剧
+	WorkingUnitName  string `json:"working_unit_name"`  // 电影名称,或者连续剧的名称
 }

+ 4 - 3
internal/types/backend/ws/ws_type.go

@@ -72,9 +72,10 @@ func (c CommonMessage) String() string {
 }
 
 const (
-	Preparing = "preparing"
-	Running   = "running"
-	Waiting   = "waiting"
+	Preparing  = "preparing"
+	ScanMovie  = "scan-movie"
+	ScanSeries = "scan-series"
+	Waiting    = "waiting"
 )
 
 var CloseThisConnect = []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1}