zimuku_test.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package zimuku
  2. import (
  3. "github.com/allanpk716/ChineseSubFinder/internal/logic/file_downloader"
  4. "github.com/allanpk716/ChineseSubFinder/internal/logic/series_helper"
  5. "github.com/allanpk716/ChineseSubFinder/internal/pkg/cache_center"
  6. "github.com/allanpk716/ChineseSubFinder/internal/pkg/log_helper"
  7. "github.com/allanpk716/ChineseSubFinder/internal/pkg/rod_helper"
  8. "github.com/allanpk716/ChineseSubFinder/internal/pkg/settings"
  9. "github.com/allanpk716/ChineseSubFinder/internal/pkg/sub_helper"
  10. "github.com/allanpk716/ChineseSubFinder/internal/pkg/unit_test_helper"
  11. "path/filepath"
  12. "testing"
  13. )
  14. func TestSupplier_GetSubListFromKeyword(t *testing.T) {
  15. browser, err := rod_helper.NewBrowser(log_helper.GetLogger4Tester(), "", true, settings.NewSettings().AdvancedSettings.SuppliersSettings.Zimuku.RootUrl)
  16. if err != nil {
  17. t.Fatal(err)
  18. }
  19. defer func() {
  20. _ = browser.Close()
  21. }()
  22. //imdbId1 := "tt3228774"
  23. videoName := "黑白魔女库伊拉"
  24. s := NewSupplier(file_downloader.NewFileDownloader(cache_center.NewCacheCenter("test", settings.NewSettings(), log_helper.GetLogger4Tester())))
  25. outList, err := s.getSubListFromKeyword(browser, videoName)
  26. if err != nil {
  27. t.Error(err)
  28. }
  29. println(outList)
  30. for i, sublist := range outList {
  31. println(i, sublist.Name, sublist.Ext, sublist.Language.String(), sublist.Score, len(sublist.Data))
  32. }
  33. }
  34. func TestSupplier_GetSubListFromFile(t *testing.T) {
  35. browser, err := rod_helper.NewBrowser(log_helper.GetLogger4Tester(), "", true, settings.NewSettings().AdvancedSettings.SuppliersSettings.Zimuku.RootUrl)
  36. if err != nil {
  37. t.Fatal(err)
  38. }
  39. defer func() {
  40. _ = browser.Close()
  41. }()
  42. //movie1 := "X:\\电影\\The Devil All the Time (2020)\\The Devil All the Time (2020) WEBDL-1080p.mkv"
  43. //movie1 := "X:\\电影\\龙猫 (1988)\\龙猫 (1988) 1080p DTS.mkv"
  44. //movie1 := "X:\\电影\\消失爱人 (2016)\\消失爱人 (2016) 720p AAC.rmvb"
  45. //movie1 := "X:\\电影\\Spiral From the Book of Saw (2021)\\Spiral From the Book of Saw (2021) WEBDL-1080p.mkv"
  46. //movie1 := "X:\\电影\\机动战士Z高达:星之继承者 (2005)\\机动战士Z高达:星之继承者 (2005) 1080p TrueHD.mkv"
  47. //movie1 := "X:\\连续剧\\The Bad Batch\\Season 1\\The Bad Batch - S01E01 - Aftermath WEBDL-1080p.mkv"
  48. rootDir := unit_test_helper.GetTestDataResourceRootPath([]string{"sub_spplier"}, 5, true)
  49. movie1 := filepath.Join(rootDir, "zimuku", "movies", "The Devil All the Time (2020)", "The Devil All the Time (2020) WEBDL-1080p.mkv")
  50. s := NewSupplier(file_downloader.NewFileDownloader(cache_center.NewCacheCenter("test", settings.NewSettings(), log_helper.GetLogger4Tester())))
  51. outList, err := s.getSubListFromMovie(browser, movie1)
  52. if err != nil {
  53. t.Error(err)
  54. }
  55. println(outList)
  56. for i, sublist := range outList {
  57. println(i, sublist.Name, sublist.Ext, sublist.Language.String(), sublist.Score, len(sublist.Data))
  58. }
  59. }
  60. func TestSupplier_GetSubListFromFile4Series(t *testing.T) {
  61. //ser := "X:\\连续剧\\The Bad Batch" // tt12708542
  62. //ser := "X:\\连续剧\\杀死伊芙 (2018)" // tt12708542
  63. //ser := "X:\\连续剧\\Money.Heist"
  64. //ser := "X:\\连续剧\\黄石 (2018)"
  65. // 可以指定几集去调试
  66. epsMap := make(map[int][]int, 0)
  67. epsMap[4] = []int{1}
  68. //epsMap[1] = []int{1, 2, 3}
  69. rootDir := unit_test_helper.GetTestDataResourceRootPath([]string{"sub_spplier"}, 5, true)
  70. ser := filepath.Join(rootDir, "zimuku", "series", "黄石 (2018)")
  71. // 读取本地的视频和字幕信息
  72. seriesInfo, err := series_helper.ReadSeriesInfoFromDir(log_helper.GetLogger4Tester(),
  73. ser,
  74. 90,
  75. false,
  76. false,
  77. epsMap)
  78. if err != nil {
  79. t.Fatal(err)
  80. }
  81. s := NewSupplier(file_downloader.NewFileDownloader(cache_center.NewCacheCenter("test", settings.NewSettings(), log_helper.GetLogger4Tester())))
  82. outList, err := s.GetSubListFromFile4Series(seriesInfo)
  83. if err != nil {
  84. t.Fatal(err)
  85. }
  86. println(outList)
  87. for i, sublist := range outList {
  88. println(i, sublist.Name, sublist.Ext, sublist.Language.String(), sublist.Score, len(sublist.Data))
  89. }
  90. organizeSubFiles, err := sub_helper.OrganizeDlSubFiles(log_helper.GetLogger4Tester(), filepath.Base(seriesInfo.DirPath), outList)
  91. if err != nil {
  92. t.Fatal(err)
  93. }
  94. for s2, strings := range organizeSubFiles {
  95. println(s2, strings)
  96. }
  97. }
  98. func TestSupplier_getSubListFromKeyword(t *testing.T) {
  99. browser, err := rod_helper.NewBrowser(log_helper.GetLogger4Tester(), "", true, settings.NewSettings().AdvancedSettings.SuppliersSettings.Zimuku.RootUrl)
  100. if err != nil {
  101. t.Fatal(err)
  102. }
  103. defer func() {
  104. _ = browser.Close()
  105. }()
  106. //imdbID := "tt12708542" // 星球大战:残次品
  107. //imdbID := "tt7016936" // 杀死伊芙
  108. //imdbID := "tt2990738" // 恐怖直播
  109. //imdbID := "tt3032476" // 风骚律师
  110. //imdbID := "tt6468322" // 纸钞屋
  111. //imdbID := "tt15299712" // 云南虫谷
  112. //imdbID := "tt3626476" // Vacation Friends (2021)
  113. imdbID := "tt11192306" // Superman.and.Lois
  114. zimuku := NewSupplier(file_downloader.NewFileDownloader(cache_center.NewCacheCenter("test", settings.NewSettings(), log_helper.GetLogger4Tester())))
  115. subInfos, err := zimuku.getSubListFromKeyword(browser, imdbID)
  116. if err != nil {
  117. t.Fatal(err)
  118. }
  119. for i, sublist := range subInfos {
  120. println(i, sublist.Name, sublist.Ext, sublist.Language.String(), sublist.Score, len(sublist.Data))
  121. }
  122. }
  123. func TestSupplier_step3(t *testing.T) {
  124. // 调试用,不作为单元测试的一个考核,因为可能不可控
  125. //dlUrl := "https://zmk.pw/dld/162150.html"
  126. //s := Supplier{}
  127. //fileName, datas, err := s.DownFile(dlUrl)
  128. //if err != nil {
  129. // t.Fatal(err)
  130. //}
  131. //
  132. //println(fileName)
  133. //println(len(datas))
  134. }
  135. func TestSupplier_CheckAlive(t *testing.T) {
  136. s := NewSupplier(file_downloader.NewFileDownloader(cache_center.NewCacheCenter("test", settings.NewSettings(), log_helper.GetLogger4Tester())))
  137. alive, _ := s.CheckAlive()
  138. if alive == false {
  139. t.Fatal("CheckAlive == false")
  140. }
  141. }