main.go 3.2 KB

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