12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package v1
- import (
- "github.com/allanpk716/ChineseSubFinder/pkg/hls_center"
- "net/http"
- "github.com/allanpk716/ChineseSubFinder/pkg/settings"
- "github.com/allanpk716/ChineseSubFinder/pkg/video_list_helper"
- "github.com/allanpk716/ChineseSubFinder/pkg/types/backend"
- "github.com/allanpk716/ChineseSubFinder/pkg/lock"
- "github.com/allanpk716/ChineseSubFinder/pkg/logic/cron_helper"
- "github.com/allanpk716/ChineseSubFinder/pkg/sub_formatter"
- "github.com/allanpk716/ChineseSubFinder/pkg/video_scan_and_refresh_helper"
- "github.com/gin-gonic/gin"
- "github.com/sirupsen/logrus"
- )
- type ControllerBase struct {
- log *logrus.Logger
- cronHelper *cron_helper.CronHelper
- pathUrlMap map[string]string
- videoScanAndRefreshHelper *video_scan_and_refresh_helper.VideoScanAndRefreshHelper
- videoListHelper *video_list_helper.VideoListHelper
- hslCenter *hls_center.Center
- videoScanAndRefreshHelperIsRunning bool
- videoScanAndRefreshHelperLocker lock.Lock
- videoScanAndRefreshHelperErrMessage string
- restartSignal chan interface{}
- }
- func NewControllerBase(cronHelper *cron_helper.CronHelper, restartSignal chan interface{}) *ControllerBase {
- cb := &ControllerBase{
- log: cronHelper.Logger,
- cronHelper: cronHelper,
- pathUrlMap: make(map[string]string),
- // 这里因为不进行任务的添加,仅仅是扫描,所以 downloadQueue 可以为 nil
- videoScanAndRefreshHelper: video_scan_and_refresh_helper.NewVideoScanAndRefreshHelper(
- sub_formatter.GetSubFormatter(cronHelper.Logger, settings.Get().AdvancedSettings.SubNameFormatter),
- cronHelper.FileDownloader, nil),
- videoListHelper: video_list_helper.NewVideoListHelper(cronHelper.Logger),
- hslCenter: hls_center.NewCenter(cronHelper.Logger),
- videoScanAndRefreshHelperLocker: lock.NewLock(),
- restartSignal: restartSignal,
- }
- return cb
- }
- func (cb *ControllerBase) SetPathUrlMapItem(path string, url string) {
- cb.pathUrlMap[path] = url
- }
- // GetPathUrlMap x://电影 -- /movie_dir_0 or x://电视剧 -- /series_dir_0
- func (cb *ControllerBase) GetPathUrlMap() map[string]string {
- return cb.pathUrlMap
- }
- func (cb *ControllerBase) Close() {
- cb.cronHelper.Stop()
- cb.videoScanAndRefreshHelper.Cancel()
- cb.videoScanAndRefreshHelperLocker.Close()
- }
- func (cb *ControllerBase) GetVersion() string {
- return "v1"
- }
- func (cb *ControllerBase) ErrorProcess(c *gin.Context, funcName string, err error) {
- if err != nil {
- cb.log.Errorln(funcName, err.Error())
- c.JSON(http.StatusInternalServerError, backend.ReplyCommon{Message: err.Error()})
- }
- }
|