controller_base.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package base
  2. import (
  3. "net/http"
  4. "github.com/allanpk716/ChineseSubFinder/pkg"
  5. "github.com/allanpk716/ChineseSubFinder/pkg/lock"
  6. "github.com/allanpk716/ChineseSubFinder/pkg/cache_center"
  7. "github.com/allanpk716/ChineseSubFinder/pkg/random_auth_key"
  8. "github.com/allanpk716/ChineseSubFinder/pkg/settings"
  9. "github.com/sirupsen/logrus"
  10. "github.com/allanpk716/ChineseSubFinder/pkg/types/backend"
  11. "github.com/allanpk716/ChineseSubFinder/pkg/logic/file_downloader"
  12. "github.com/gin-gonic/gin"
  13. )
  14. type ControllerBase struct {
  15. fileDownloader *file_downloader.FileDownloader
  16. proxyCheckLocker lock.Lock
  17. restartSignal chan interface{}
  18. }
  19. func NewControllerBase(loggerBase *logrus.Logger, restartSignal chan interface{}) *ControllerBase {
  20. return &ControllerBase{
  21. fileDownloader: file_downloader.NewFileDownloader(
  22. cache_center.NewCacheCenter("local_task_queue", settings.GetSettings(), loggerBase),
  23. random_auth_key.AuthKey{
  24. BaseKey: pkg.BaseKey(),
  25. AESKey16: pkg.AESKey16(),
  26. AESIv16: pkg.AESIv16(),
  27. }),
  28. proxyCheckLocker: lock.NewLock(),
  29. restartSignal: restartSignal,
  30. }
  31. }
  32. func (cb *ControllerBase) ErrorProcess(c *gin.Context, funcName string, err error) {
  33. if err != nil {
  34. cb.fileDownloader.Log.Errorln(funcName, err.Error())
  35. c.JSON(http.StatusInternalServerError, backend.ReplyCommon{Message: err.Error()})
  36. }
  37. }
  38. func (cb *ControllerBase) Close() {
  39. cb.proxyCheckLocker.Close()
  40. }