Browse Source

调整代码细节

Signed-off-by: allan716 <[email protected]>
allan716 3 years ago
parent
commit
06723251f8

+ 2 - 2
pkg/decode/decode.go

@@ -332,8 +332,8 @@ func GetVideoNfoInfo4SeriesDir(seriesDir string) (types.VideoNfoInfo, error) {
 	return getVideoNfoInfo(nfoFilePath, "tvshow")
 }
 
-// GetSeriesSeasonVideoNfoInfoFromEpisode 从一集获取这个 Series 的 IMDB info
-func GetSeriesSeasonVideoNfoInfoFromEpisode(oneEpFPath string) (types.VideoNfoInfo, error) {
+// GetVideoNfoInfoFromEpisode 从一集获取这个 Series 的 IMDB info
+func GetVideoNfoInfoFromEpisode(oneEpFPath string) (types.VideoNfoInfo, error) {
 
 	// 当前季的路径
 	EPdir := filepath.Dir(oneEpFPath)

+ 22 - 22
pkg/imdb_helper/imdb.go

@@ -29,31 +29,31 @@ func GetIMDBInfoFromVideoFile(log *logrus.Logger, videoFPath string, isMovie boo
 	getReady(log, _proxySettings)
 
 	var err error
-	var imdbInfo4Video types.VideoNfoInfo
+	var videoNfoInfo types.VideoNfoInfo
 	if isMovie == true {
-		imdbInfo4Video, err = decode.GetVideoNfoInfo4Movie(videoFPath)
+		videoNfoInfo, err = decode.GetVideoNfoInfo4Movie(videoFPath)
 	} else {
-		imdbInfo4Video, err = decode.GetSeriesSeasonVideoNfoInfoFromEpisode(videoFPath)
+		videoNfoInfo, err = decode.GetVideoNfoInfoFromEpisode(videoFPath)
 	}
 	if err != nil {
 		// 如果找不到当前电影的 IMDB Info 本地文件,那么就跳过
 		log.Warningln("getSubListFromFile", videoFPath, err)
 		return nil, err
 	}
-	imdbInfo, err := GetIMDBInfoFromVideoNfoInfo(log, imdbInfo4Video, _proxySettings)
+	imdbInfo, err := GetIMDBInfoFromVideoNfoInfo(log, videoNfoInfo, _proxySettings)
 	if err != nil {
 		log.Warningln("GetIMDBInfoFromVideoNfoInfo", videoFPath, err)
 		return nil, err
 	}
 	if len(imdbInfo.Description) <= 0 {
 		// 需要去外网获去补全信息,然后更新本地的信息
-		if imdbInfo.IMDBID != "" && imdbInfo4Video.ImdbId == "" {
+		if imdbInfo.IMDBID != "" && videoNfoInfo.ImdbId == "" {
 			// 可能本地没有获取到 IMDB ID 信息,那么从上面的 GetIMDBInfoFromVideoNfoInfo 可以从 TMDB ID 获取到 IMDB ID,那么需要传递下去
-			imdbInfo4Video.ImdbId = imdbInfo.IMDBID
+			videoNfoInfo.ImdbId = imdbInfo.IMDBID
 		}
-		t, err := getVideoInfoFromIMDBWeb(imdbInfo4Video, _proxySettings)
+		t, err := getVideoInfoFromIMDBWeb(videoNfoInfo, _proxySettings)
 		if err != nil {
-			log.Errorln("getVideoInfoFromIMDBWeb,", imdbInfo4Video.Title, err)
+			log.Errorln("getVideoInfoFromIMDBWeb,", videoNfoInfo.Title, err)
 			return nil, err
 		}
 		imdbInfo.Year = t.Year
@@ -68,7 +68,7 @@ func GetIMDBInfoFromVideoFile(log *logrus.Logger, videoFPath string, isMovie boo
 }
 
 // GetIMDBInfoFromVideoNfoInfo 从本地获取 IMDB 信息,注意,如果需要跳过,那么返回 Error == common.SkipCreateInDB
-func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, imdbInfo types.VideoNfoInfo, _proxySettings *settings.ProxySettings) (*models.IMDBInfo, error) {
+func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, videoNfoInfo types.VideoNfoInfo, _proxySettings *settings.ProxySettings) (*models.IMDBInfo, error) {
 
 	getReady(log, _proxySettings)
 	/*
@@ -81,17 +81,17 @@ func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, imdbInfo types.VideoNfoInfo
 		3. 因为现在默认是不跳过中文视频扫描的,所以如果开启后,则会再判断的时候访问外网获取,然后写入本地,过程会比较慢
 		4. 同时,再发送字幕和 IMDB Info 到服务器的时候,也需要判断是否 IMDB Info 信息是否齐全,否则就需要从外网获取齐全后再上传
 	*/
-	log.Debugln("GetIMDBInfoFromVideoNfoInfo", "IMDBID:", imdbInfo.ImdbId, "TMDBID:", imdbInfo.TmdbId, imdbInfo.Title, imdbInfo.Season, imdbInfo.Episode)
+	log.Debugln("GetIMDBInfoFromVideoNfoInfo", "IMDBID:", videoNfoInfo.ImdbId, "TMDBID:", videoNfoInfo.TmdbId, videoNfoInfo.Title, videoNfoInfo.Season, videoNfoInfo.Episode)
 	log.Debugln("GetIMDBInfoFromVideoNfoInfo", 0)
 
-	if imdbInfo.ImdbId != "" {
+	if videoNfoInfo.ImdbId != "" {
 		// 优先从 IMDB ID 去查找本地的信息
 		// 首先从数据库中查找是否存在这个 IMDB 信息,如果不存在再使用 Web 查找,且写入数据库
 		var imdbInfos []models.IMDBInfo
 		// 把嵌套关联的 has many 的信息都查询出来
 		dao.GetDb().
 			Preload("VideoSubInfos").
-			Limit(1).Where(&models.IMDBInfo{IMDBID: imdbInfo.ImdbId}).Find(&imdbInfos)
+			Limit(1).Where(&models.IMDBInfo{IMDBID: videoNfoInfo.ImdbId}).Find(&imdbInfos)
 
 		log.Debugln("GetIMDBInfoFromVideoNfoInfo", 1)
 
@@ -99,7 +99,7 @@ func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, imdbInfo types.VideoNfoInfo
 			// 没有找到,新增,存储本地,但是信息肯定是不完整的,需要在判断是否是中文的时候再次去外网获取补全信息
 			log.Debugln("GetIMDBInfoFromVideoNfoInfo", 2)
 			// 存入数据库
-			nowIMDBInfo := models.NewIMDBInfo(imdbInfo.ImdbId, "", 0, "", []string{}, []string{})
+			nowIMDBInfo := models.NewIMDBInfo(videoNfoInfo.ImdbId, "", 0, "", []string{}, []string{})
 			dao.GetDb().Create(nowIMDBInfo)
 
 			log.Debugln("GetIMDBInfoFromVideoNfoInfo", 3)
@@ -111,13 +111,13 @@ func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, imdbInfo types.VideoNfoInfo
 			// 找到
 			return &imdbInfos[0], nil
 		}
-	} else if imdbInfo.TmdbId != "" {
+	} else if videoNfoInfo.TmdbId != "" {
 		// 如果 IMDB ID 在本地没有获取到,但是 TMDB ID 获取到了,那么就从 Web 去查询 IMDB ID 出来
 		var imdbInfos []models.IMDBInfo
 		// 把嵌套关联的 has many 的信息都查询出来
 		dao.GetDb().
 			Preload("VideoSubInfos").
-			Limit(1).Where(&models.IMDBInfo{TmdbId: imdbInfo.TmdbId}).Find(&imdbInfos)
+			Limit(1).Where(&models.IMDBInfo{TmdbId: videoNfoInfo.TmdbId}).Find(&imdbInfos)
 
 		log.Debugln("GetIMDBInfoFromVideoNfoInfo", 1)
 
@@ -125,7 +125,7 @@ func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, imdbInfo types.VideoNfoInfo
 			// 没有找到那么就从 Web 端获取 imdb id 信息
 		} else if len(imdbInfos) > 1 {
 			// 如果找到多个,那么就应该删除这些,因为这些都是重复的,然后再次从 Web 去获取 imdb id 信息
-			dao.GetDb().Where(&models.IMDBInfo{TmdbId: imdbInfo.TmdbId}).Delete(&models.IMDBInfo{})
+			dao.GetDb().Where(&models.IMDBInfo{TmdbId: videoNfoInfo.TmdbId}).Delete(&models.IMDBInfo{})
 		} else {
 			log.Debugln("GetIMDBInfoFromVideoNfoInfo", 4)
 			// 找到
@@ -134,13 +134,13 @@ func GetIMDBInfoFromVideoNfoInfo(log *logrus.Logger, imdbInfo types.VideoNfoInfo
 		// 确定需要从 Web 端获取 imdb id 信息
 		log.Debugln("GetIMDBInfoFromVideoNfoInfo", 2)
 		videoType := ""
-		if imdbInfo.IsMovie == true {
+		if videoNfoInfo.IsMovie == true {
 			videoType = "movie"
 		} else {
 			videoType = "series"
 		}
 		// 联网查询
-		idConvertReply, err := subtitleBestApi.ConvertId(imdbInfo.TmdbId, "tmdb", videoType)
+		idConvertReply, err := subtitleBestApi.ConvertId(videoNfoInfo.TmdbId, "tmdb", videoType)
 		if err != nil {
 			return nil, err
 		}
@@ -213,22 +213,22 @@ func IsChineseVideo(log *logrus.Logger, imdbInfo types.VideoNfoInfo, _proxySetti
 }
 
 // getVideoInfoFromIMDBWeb 从 IMDB 网站 ID 查询影片的信息
-func getVideoInfoFromIMDBWeb(imdbInfo types.VideoNfoInfo, _proxySettings ...*settings.ProxySettings) (*imdb.Title, error) {
+func getVideoInfoFromIMDBWeb(videoNfoInfo types.VideoNfoInfo, _proxySettings ...*settings.ProxySettings) (*imdb.Title, error) {
 
 	client, err := my_util.NewHttpClient(_proxySettings...)
 	if err != nil {
 		return nil, err
 	}
 
-	t, err := imdb.NewTitle(client.GetClient(), imdbInfo.ImdbId)
+	t, err := imdb.NewTitle(client.GetClient(), videoNfoInfo.ImdbId)
 	if err != nil {
 		notify_center.Notify.Add("imdb model - imdb.NewTitle :", err.Error())
 		return nil, err
 	}
 	if t.Year == 0 {
 		// IMDB 信息获取的库(1.0.7),目前有bug,比如,tt6856242 年份为 0
-		if imdbInfo.Year != "" {
-			year, err := strconv.Atoi(imdbInfo.Year)
+		if videoNfoInfo.Year != "" {
+			year, err := strconv.Atoi(videoNfoInfo.Year)
 			if err != nil {
 				return nil, err
 			}

+ 4 - 4
pkg/mix_media_info/mix_media_info.go

@@ -67,9 +67,9 @@ func getMediaInfoEx(log *logrus.Logger, SubtitleBestApi *subtitle_best_api.Subti
 			return nil, err
 		}
 		if mediaInfoReply.Status == 2 {
-			// 说明进入了查询队列,可以等 20s 以上再次查询
-			log.Infoln("query queue, sleep 20s")
-			time.Sleep(20 * time.Second)
+			// 说明进入了查询队列,可以等 30s 以上再次查询
+			log.Infoln("query queue, sleep 30s")
+			time.Sleep(30 * time.Second)
 
 		} else if mediaInfoReply.Status == 1 {
 
@@ -111,7 +111,7 @@ func GetMediaInfoAndSave(log *logrus.Logger, SubtitleBestApi *subtitle_best_api.
 		return nil, err
 	}
 	if mediaInfo == nil {
-		// 超过 5次 20s 等待都没有查询到,返回错误
+		// 超过 9次 30s 等待都没有查询到,返回错误
 		return nil, errors.New("can't get media info from subtitle.best api")
 	}
 	// 更新 ID

+ 1 - 1
pkg/video_scan_and_refresh_helper/video_scan_and_refresh_helper.go

@@ -1265,7 +1265,7 @@ func (v *VideoScanAndRefreshHelper) filterMovieAndSeriesNeedDownloadEmby(emby *E
 				mixInfo.VideoInfo.Id,
 			)
 
-			info, err := decode.GetSeriesSeasonVideoNfoInfoFromEpisode(mixInfo.PhysicalVideoFileFullPath)
+			info, err := decode.GetVideoNfoInfoFromEpisode(mixInfo.PhysicalVideoFileFullPath)
 			if err != nil {
 				v.log.Warningln("filterMovieAndSeriesNeedDownloadEmby.Series.GetVideoInfoFromFileFullPath", err)
 				continue