main.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/allanpk716/ChineseSubFinder/internal/backend"
  5. "github.com/allanpk716/ChineseSubFinder/internal/logic/cron_helper"
  6. "github.com/allanpk716/ChineseSubFinder/internal/logic/file_downloader"
  7. "github.com/allanpk716/ChineseSubFinder/internal/pkg/global_value"
  8. "github.com/allanpk716/ChineseSubFinder/internal/pkg/log_helper"
  9. "github.com/allanpk716/ChineseSubFinder/internal/pkg/my_util"
  10. "github.com/allanpk716/ChineseSubFinder/internal/pkg/settings"
  11. "os"
  12. "strconv"
  13. )
  14. func init() {
  15. log_helper.GetLogger().Infoln("ChineseSubFinder Version:", AppVersion)
  16. global_value.SetAppVersion(AppVersion)
  17. global_value.SetExtEnCode(ExtEnCode)
  18. if my_util.OSCheck() == false {
  19. log_helper.GetLogger().Panicln(`You should search runtime.GOOS in the project, Implement unimplemented function`)
  20. }
  21. }
  22. func main() {
  23. //// ----------------------------------------------
  24. //// 前置的任务,热修复、字幕修改文件名格式、提前下载好浏览器
  25. //pj := pre_job.NewPreJob(settings.GetSettings(), log_helper.GetLogger())
  26. //err := pj.HotFix().ChangeSubNameFormat().ReloadBrowser().Wait()
  27. //if err != nil {
  28. // log_helper.GetLogger().Panicln("pre_job", err)
  29. //}
  30. //// ----------------------------------------------
  31. //scan, err := scan_played_video_subinfo.NewScanPlayedVideoSubInfo(*settings.GetSettings())
  32. //if err != nil {
  33. // log_helper.GetLogger().Panicln(err)
  34. //}
  35. //bok, err := scan.GetPlayedItemsSubtitle()
  36. //if err != nil {
  37. // log_helper.GetLogger().Panicln(err)
  38. //}
  39. //if bok == true {
  40. //
  41. // scan.Clear()
  42. //
  43. // err = scan.Scan()
  44. // if err != nil {
  45. // log_helper.GetLogger().Panicln(err)
  46. // }
  47. //}
  48. // ----------------------------------------------
  49. fileDownloader := file_downloader.NewFileDownloader(settings.GetSettings(), log_helper.GetLogger())
  50. cronHelper := cron_helper.NewCronHelper(fileDownloader)
  51. if settings.GetSettings().UserInfo.Username == "" || settings.GetSettings().UserInfo.Password == "" {
  52. // 如果没有完成,那么就不开启
  53. log_helper.GetLogger().Infoln("Need do Setup")
  54. } else {
  55. // 是否完成了 Setup,如果完成了,那么就开启第一次的扫描
  56. go func() {
  57. log_helper.GetLogger().Infoln("Setup is Done")
  58. cronHelper.Start(settings.GetSettings().CommonSettings.RunScanAtStartUp)
  59. }()
  60. }
  61. nowPort := readCustomPortFile()
  62. log_helper.GetLogger().Infoln(fmt.Sprintf("WebUI will listen at 0.0.0.0:%d", nowPort))
  63. // 支持在外部配置特殊的端口号,以防止本地本占用了无法使用
  64. backend.StartBackEnd(nowPort, cronHelper)
  65. }
  66. func readCustomPortFile() int {
  67. if my_util.IsFile(customPort) == false {
  68. return defPort
  69. } else {
  70. bytes, err := os.ReadFile(customPort)
  71. if err != nil {
  72. log_helper.GetLogger().Errorln("ReadFile CustomPort Error", err)
  73. log_helper.GetLogger().Infoln("Use DefPort", defPort)
  74. return defPort
  75. }
  76. atoi, err := strconv.Atoi(string(bytes))
  77. if err != nil {
  78. log_helper.GetLogger().Errorln("Atoi CustomPort Error", err)
  79. log_helper.GetLogger().Infoln("Use DefPort", defPort)
  80. return defPort
  81. }
  82. log_helper.GetLogger().Infoln("Use CustomPort", atoi)
  83. return atoi
  84. }
  85. }
  86. /*
  87. 使用 git tag 来做版本描述,然后在编译的时候传入版本号信息到这个变量上
  88. */
  89. var AppVersion = "unknow"
  90. // go build -ldflags="-X main.AppVersion=aabb -X main.ExtEnCode=ccdd" .
  91. var ExtEnCode = "abcdefg1234567890"
  92. const (
  93. defPort = 19035
  94. customPort = "CustomPort"
  95. )