pre_job.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package base
  2. import (
  3. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/log_and_notifi"
  4. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/types/backend"
  5. "github.com/gin-gonic/gin"
  6. "net/http"
  7. )
  8. // PreJobHandler 系统启动后的预处理工作
  9. func (cb *ControllerBase) PreJobHandler(c *gin.Context) {
  10. var err error
  11. defer func() {
  12. // 统一的异常处理
  13. cb.ErrorProcess(c, "PreJobHandler", err)
  14. }()
  15. outInfo := backend.ReplyPreJob{
  16. IsDone: cb.preJob.IsDone(),
  17. StageName: cb.preJob.GetStageName(),
  18. }
  19. if cb.preJob.IsDone() == true {
  20. // 如果完成了,那么就附加对应的消息
  21. gErr := cb.preJob.GetGError()
  22. if gErr != nil {
  23. outInfo.GErrorInfo = gErr.Error()
  24. } else {
  25. outInfo.GErrorInfo = ""
  26. }
  27. errFiles := cb.preJob.GetRenameResults().ErrFiles
  28. // 将 errFiles 转为 []string
  29. outInfo.RenameErrResults = make([]string, 0)
  30. for k, _ := range errFiles {
  31. outInfo.RenameErrResults = append(outInfo.RenameErrResults, k)
  32. }
  33. } else {
  34. outInfo.NowProcessInfo = log_and_notifi.GetNowInfo()
  35. }
  36. c.JSON(http.StatusOK, outInfo)
  37. }