main.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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.AppVersion = AppVersion
  16. if my_util.OSCheck() == false {
  17. panic(`You should search runtime.GOOS in the project, Implement unimplemented function`)
  18. }
  19. }
  20. func main() {
  21. cronHelper, err := cron_helper.NewCronHelper()
  22. if err != nil {
  23. panic("NewCronHelper " + err.Error())
  24. }
  25. if settings.GetSettings().UserInfo.Username == "" || settings.GetSettings().UserInfo.Password == "" {
  26. // 如果没有完成,那么就不开启
  27. log_helper.GetLogger().Infoln("Need do Setup")
  28. } else {
  29. // 是否完成了 Setup,如果完成了,那么就开启第一次的扫描
  30. go func() {
  31. log_helper.GetLogger().Infoln("Setup is Done")
  32. cronHelper.Start(settings.GetSettings().CommonSettings.RunScanAtStartUp)
  33. }()
  34. }
  35. nowPort := readCustomPortFile()
  36. log_helper.GetLogger().Infoln(fmt.Sprintf("WebUI will listen at 0.0.0.0:%d", nowPort))
  37. // 支持在外部配置特殊的端口号,以防止本地本占用了无法使用
  38. backend.StartBackEnd(nowPort, cronHelper)
  39. }
  40. func readCustomPortFile() int {
  41. if my_util.IsFile(customPort) == false {
  42. return defPort
  43. } else {
  44. bytes, err := os.ReadFile(customPort)
  45. if err != nil {
  46. log_helper.GetLogger().Errorln("ReadFile CustomPort Error", err)
  47. log_helper.GetLogger().Infoln("Use DefPort", defPort)
  48. return defPort
  49. }
  50. atoi, err := strconv.Atoi(string(bytes))
  51. if err != nil {
  52. log_helper.GetLogger().Errorln("Atoi CustomPort Error", err)
  53. log_helper.GetLogger().Infoln("Use DefPort", defPort)
  54. return defPort
  55. }
  56. log_helper.GetLogger().Infoln("Use CustomPort", atoi)
  57. return atoi
  58. }
  59. }
  60. /*
  61. 使用 git tag 来做版本描述,然后在编译的时候传入版本号信息到这个变量上
  62. */
  63. var AppVersion = "unknow"
  64. const (
  65. defPort = 19035
  66. customPort = "CustomPort"
  67. )