video_list_helper.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package video_list_helper
  2. import (
  3. "sync"
  4. "github.com/allanpk716/ChineseSubFinder/pkg/settings"
  5. vsh "github.com/allanpk716/ChineseSubFinder/pkg/video_scan_and_refresh_helper"
  6. seriesHelper "github.com/allanpk716/ChineseSubFinder/pkg/logic/series_helper"
  7. "github.com/allanpk716/ChineseSubFinder/pkg/my_util"
  8. "github.com/sirupsen/logrus"
  9. )
  10. type VideoListHelper struct {
  11. settings *settings.Settings // 设置的实例
  12. log *logrus.Logger // 日志实例
  13. }
  14. // RefreshMainList 获取到电影、连续剧一级目录信息,不包含 Season 及其以下信息
  15. // 只给出 Movie 的FullPath,Series 的 RootDirPath
  16. func (v *VideoListHelper) RefreshMainList() (*vsh.NormalScanVideoResult, error) {
  17. defer func() {
  18. v.log.Infoln("ScanNormalMovieAndSeries End")
  19. }()
  20. v.log.Infoln("ScanNormalMovieAndSeries Start...")
  21. // ------------------------------------------------------------------------------
  22. // 由于需要进行视频信息的缓存,用于后续的逻辑,那么本地视频的扫描默认都会进行
  23. normalScanResult := vsh.NormalScanVideoResult{}
  24. // 直接由本程序自己去扫描视频视频有哪些
  25. // 全扫描
  26. wg := sync.WaitGroup{}
  27. var errMovie, errSeries error
  28. wg.Add(1)
  29. go func() {
  30. defer func() {
  31. wg.Done()
  32. }()
  33. // --------------------------------------------------
  34. // 电影
  35. normalScanResult.MoviesDirMap, errMovie = my_util.SearchMatchedVideoFileFromDirs(v.log, v.settings.CommonSettings.MoviePaths)
  36. }()
  37. wg.Add(1)
  38. go func() {
  39. defer func() {
  40. wg.Done()
  41. }()
  42. // --------------------------------------------------
  43. // 连续剧
  44. // 遍历连续剧总目录下的第一层目录
  45. normalScanResult.SeriesDirMap, errSeries = seriesHelper.GetSeriesListFromDirs(v.log, v.settings.CommonSettings.SeriesPaths)
  46. // ------------------------------------------------------------------------------
  47. // 输出调试信息,有那些连续剧文件夹名称
  48. if normalScanResult.SeriesDirMap == nil {
  49. return
  50. }
  51. normalScanResult.SeriesDirMap.Each(func(key interface{}, value interface{}) {
  52. for i, s := range value.([]string) {
  53. v.log.Debugln("embyHelper == nil GetSeriesList", i, s)
  54. }
  55. })
  56. }()
  57. wg.Wait()
  58. if errMovie != nil {
  59. return nil, errMovie
  60. }
  61. if errSeries != nil {
  62. return nil, errSeries
  63. }
  64. return &normalScanResult, nil
  65. }