poster.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package video_list_helper
  2. import (
  3. "path/filepath"
  4. "github.com/ChineseSubFinder/ChineseSubFinder/pkg"
  5. )
  6. // GetMoviePoster 获取电影的海报,如果为空就是没有找到
  7. func (v *VideoListHelper) GetMoviePoster(movieFPath string) string {
  8. /*
  9. ext 只考虑 jpg, png, bmp 三种格式
  10. 参考 TMM 的设置
  11. 1. poster.ext
  12. 2. movie.ext
  13. 3. folder.ext
  14. 4. <movie filename>-poster.ext
  15. 5. <movie filename>.ext
  16. 6. cover.ext
  17. */
  18. for _, ext := range extList {
  19. movieRootDir := filepath.Dir(movieFPath)
  20. movieName := filepath.Base(movieFPath)
  21. movieNameWithoutExt := movieName[:len(movieName)-len(filepath.Ext(movieName))]
  22. // 1. poster.ext
  23. posterFPath := filepath.Join(movieRootDir, "poster"+ext)
  24. if pkg.IsFile(posterFPath) {
  25. return posterFPath
  26. }
  27. // 2. movie.ext
  28. posterFPath = filepath.Join(movieRootDir, "movie"+ext)
  29. if pkg.IsFile(posterFPath) {
  30. return posterFPath
  31. }
  32. // 3. folder.ext
  33. posterFPath = filepath.Join(movieRootDir, "folder"+ext)
  34. if pkg.IsFile(posterFPath) {
  35. return posterFPath
  36. }
  37. // 4. <movie filename>-poster.ext
  38. posterFPath = filepath.Join(movieRootDir, movieNameWithoutExt+"-poster"+ext)
  39. if pkg.IsFile(posterFPath) {
  40. return posterFPath
  41. }
  42. // 5. <movie filename>.ext
  43. posterFPath = filepath.Join(movieRootDir, movieNameWithoutExt+ext)
  44. if pkg.IsFile(posterFPath) {
  45. return posterFPath
  46. }
  47. // 6. cover.ext
  48. posterFPath = filepath.Join(movieRootDir, "cover"+ext)
  49. if pkg.IsFile(posterFPath) {
  50. return posterFPath
  51. }
  52. }
  53. return ""
  54. }
  55. // GetSeriesPoster 获取电视剧的海报,如果为空就是没有找到
  56. func (v *VideoListHelper) GetSeriesPoster(seriesDir string) string {
  57. /*
  58. 参考 TMM 的设置
  59. 连续剧的
  60. 1. poster.ext
  61. 2. folder.ext
  62. Emby 的
  63. 3. fanart.ext
  64. Season的
  65. 1. seasonXX-poster.ext
  66. 2. <season folder>/seasonXX.ext
  67. 3. <season folder>/folder.ext
  68. */
  69. // 获取主封面
  70. for _, ext := range extList {
  71. // 1. poster.ext
  72. posterFPath := filepath.Join(seriesDir, "poster"+ext)
  73. if pkg.IsFile(posterFPath) {
  74. return posterFPath
  75. }
  76. // 2. folder.ext
  77. posterFPath = filepath.Join(seriesDir, "folder"+ext)
  78. if pkg.IsFile(posterFPath) {
  79. return posterFPath
  80. }
  81. // 3. fanart.ext
  82. posterFPath = filepath.Join(seriesDir, "fanart"+ext)
  83. if pkg.IsFile(posterFPath) {
  84. return posterFPath
  85. }
  86. }
  87. return ""
  88. }
  89. var (
  90. extList = []string{".jpg", ".png", ".bmp"}
  91. )
  92. type SeriesPosterInfo struct {
  93. SeriesPoster string
  94. SeasonPosterMap map[int]string
  95. }