controller_base.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package base
  2. import (
  3. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/logic/pre_job"
  4. "net/http"
  5. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/lock"
  6. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/types/backend"
  7. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/logic/file_downloader"
  8. "github.com/gin-gonic/gin"
  9. )
  10. type ControllerBase struct {
  11. fileDownloader *file_downloader.FileDownloader
  12. proxyCheckLocker lock.Lock
  13. restartSignal chan interface{}
  14. preJob *pre_job.PreJob
  15. }
  16. func NewControllerBase(
  17. fileDownloader *file_downloader.FileDownloader,
  18. restartSignal chan interface{},
  19. preJob *pre_job.PreJob,
  20. ) *ControllerBase {
  21. return &ControllerBase{
  22. fileDownloader: fileDownloader,
  23. proxyCheckLocker: lock.NewLock(),
  24. restartSignal: restartSignal,
  25. preJob: preJob,
  26. }
  27. }
  28. func (cb *ControllerBase) ErrorProcess(c *gin.Context, funcName string, err error) {
  29. if err != nil {
  30. cb.fileDownloader.Log.Errorln(funcName, err.Error())
  31. c.JSON(http.StatusInternalServerError, backend.ReplyCommon{Message: err.Error()})
  32. }
  33. }
  34. func (cb *ControllerBase) Close() {
  35. cb.proxyCheckLocker.Close()
  36. }