Просмотр исходного кода

修复 subhd 的下载之后,匹配视频错误的问题

Signed-off-by: 716 <[email protected]>
716 4 лет назад
Родитель
Сommit
b84d484ef9
5 измененных файлов с 29 добавлено и 11 удалено
  1. 5 4
      downloader.go
  2. 5 3
      model/sub_helper.go
  3. 9 0
      model/unarchiveFile.go
  4. 5 1
      sub_supplier/subhd/subhd.go
  5. 5 3
      sub_supplier/subhd/subhd_test.go

+ 5 - 4
downloader.go

@@ -80,7 +80,8 @@ func (d Downloader) DownloadSub4Movie(dir string) error {
 		inData := i.(InputData)
 		// -----------------------------------------------------
 		// 构建每个字幕站点下载者的实例
-		var subSupplierHub = sub_supplier.NewSubSupplierHub(shooter.NewSupplier(d.reqParam),
+		var subSupplierHub = sub_supplier.NewSubSupplierHub(
+			shooter.NewSupplier(d.reqParam),
 			subhd.NewSupplier(d.reqParam),
 			xunlei.NewSupplier(d.reqParam),
 			zimuku.NewSupplier(d.reqParam),
@@ -136,10 +137,10 @@ func (d Downloader) DownloadSub4Series(dir string) error {
 		// 构建每个字幕站点下载者的实例
 		var subSupplierHub *sub_supplier.SubSupplierHub
 		subSupplierHub = sub_supplier.NewSubSupplierHub(
-			zimuku.NewSupplier(d.reqParam),
+			//zimuku.NewSupplier(d.reqParam),
 			subhd.NewSupplier(d.reqParam),
-			xunlei.NewSupplier(d.reqParam),
-			shooter.NewSupplier(d.reqParam),
+			//xunlei.NewSupplier(d.reqParam),
+			//shooter.NewSupplier(d.reqParam),
 		)
 		// 这里拿到了这一部连续剧的所有的剧集信息,以及所有下载到的字幕信息
 		seriesInfo, organizeSubFiles, err := subSupplierHub.DownloadSub4Series(inData.OneVideoFullPath, inData.Index)

+ 5 - 3
model/sub_helper.go

@@ -33,7 +33,7 @@ func OrganizeDlSubFiles(tmpFolderName string, subInfos []common.SupplierSubInfo)
 		nowExt := strings.ToLower(subInfo.Ext)
 		epsKey := GetEpisodeKeyName(subInfo.Season, subInfo.Episode)
 		_, ok := siteSubInfoDict[epsKey]
-		if ok == true {
+		if ok == false {
 			// 不存在则实例化
 			siteSubInfoDict[epsKey] = make([]string, 0)
 		}
@@ -87,8 +87,10 @@ func OrganizeDlSubFiles(tmpFolderName string, subInfos []common.SupplierSubInfo)
 func ChangeVideoExt2SubExt(subInfos []common.SupplierSubInfo) {
 	for x, info := range subInfos {
 		tmpSubFileName := info.Name
-		if strings.Contains(tmpSubFileName, info.Ext) == false {
-			subInfos[x].Name = tmpSubFileName + info.Ext
+		if IsWantedVideoExtDef(tmpSubFileName) == false && IsWantedArchiveExtName(tmpSubFileName) == false {
+			if strings.Contains(tmpSubFileName, info.Ext) == false {
+				subInfos[x].Name = tmpSubFileName + info.Ext
+			}
 		}
 	}
 }

+ 9 - 0
model/unarchiveFile.go

@@ -162,4 +162,13 @@ func unArr7z(fileFullPath, desRootPath string) error {
 	}
 
 	return nil
+}
+
+func IsWantedArchiveExtName(fileName string) bool {
+	switch strings.ToLower(filepath.Ext(fileName)) {
+	case ".zip", ".tar",".rar", "7z":
+		return true
+	default:
+		return false
+	}
 }

+ 5 - 1
sub_supplier/subhd/subhd.go

@@ -103,7 +103,11 @@ func (s Supplier) GetSubListFromFile4Series(seriesInfo *common.SeriesInfo) ([]co
 			s.log.Errorln("step2Ex", err)
 			continue
 		}
-		subInfos = append(subInfos, *common.NewSupplierSubInfo(s.GetSupplierName(), int64(i), hdContent.Filename, common.ChineseSimple, model.AddBaseUrl(common.SubSubHDRootUrl, item.Url), 0, 0, hdContent.Ext, hdContent.Data))
+		oneSubInfo := common.NewSupplierSubInfo(s.GetSupplierName(), int64(i), hdContent.Filename, common.ChineseSimple, model.AddBaseUrl(common.SubSubHDRootUrl, item.Url), 0,
+			0, hdContent.Ext, hdContent.Data)
+		oneSubInfo.Season = item.Season
+		oneSubInfo.Episode = item.Episode
+		subInfos = append(subInfos, *oneSubInfo)
 	}
 
 	return subInfos, nil

+ 5 - 3
sub_supplier/subhd/subhd_test.go

@@ -7,7 +7,8 @@ import (
 
 func TestSupplier_GetSubListFromFile(t *testing.T) {
 
-	movie1 := "X:\\电影\\The Devil All the Time (2020)\\The Devil All the Time (2020) WEBDL-1080p.mkv"
+	//movie1 := "X:\\电影\\The Devil All the Time (2020)\\The Devil All the Time (2020) WEBDL-1080p.mkv"
+	movie1 := "X:\\电影\\Luca (2021)\\Luca (2021) WEBDL-1080p.mkv"
 	//movie1 := "X:\\电影\\Oslo (2021)\\Oslo (2021) WEBDL-1080p.mkv"
 	//movie1 := "X:\\电影\\Spiral From the Book of Saw (2021)\\Spiral From the Book of Saw (2021) WEBDL-1080p.mkv"
 	//movie1 := "X:\\电影\\消失爱人 (2016)\\消失爱人 (2016) 720p AAC.rmvb"
@@ -31,10 +32,11 @@ func TestSupplier_GetSubListFromFile(t *testing.T) {
 
 func TestSupplier_GetSubListFromFile4Series(t *testing.T) {
 
-	//ser := "X:\\连续剧\\The Bad Batch"	// tt12708542
+	ser := "X:\\连续剧\\The Bad Batch"	// tt12708542
 	//ser := "X:\\连续剧\\杀死伊芙 (2018)"	// tt7016936
 	//ser := "X:\\连续剧\\Money.Heist"
-	ser := "X:\\连续剧\\黑钱胜地 (2017)"
+	//ser := "X:\\连续剧\\黑钱胜地 (2017)"
+
 
 	// 读取本地的视频和字幕信息
 	seriesInfo, err := series_helper.ReadSeriesInfoFromDir(ser)