123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package pre_job
- import (
- "errors"
- "github.com/ChineseSubFinder/ChineseSubFinder/pkg/settings"
- "github.com/ChineseSubFinder/ChineseSubFinder/pkg/types"
- common2 "github.com/ChineseSubFinder/ChineseSubFinder/pkg/types/common"
- "github.com/ChineseSubFinder/ChineseSubFinder/pkg/hot_fix"
- "github.com/ChineseSubFinder/ChineseSubFinder/pkg/sub_formatter"
- "github.com/ChineseSubFinder/ChineseSubFinder/pkg/sub_formatter/common"
- "github.com/sirupsen/logrus"
- )
- type PreJob struct {
- stageName string
- gError error
- isDone bool
- log *logrus.Logger
- renameResults sub_formatter.RenameResults
- }
- func NewPreJob(log *logrus.Logger) *PreJob {
- return &PreJob{log: log, isDone: false}
- }
- func (p *PreJob) HotFix() *PreJob {
- if p.gError != nil {
- p.log.Infoln("Skip PreJob.Check()")
- return p
- }
- p.stageName = stageNameCHotFix
- defer func() {
- p.log.Infoln("PreJob.HotFix() End")
- }()
- p.log.Infoln("PreJob.HotFix() Start...")
- // ------------------------------------------------------------------------
- // 开始修复
- p.log.Infoln(common2.NotifyStringTellUserWait)
- err := hot_fix.HotFixProcess(p.log, types.HotFixParam{
- MovieRootDirs: settings.Get().CommonSettings.MoviePaths,
- SeriesRootDirs: settings.Get().CommonSettings.SeriesPaths,
- })
- if err != nil {
- p.log.Errorln("hot_fix.HotFixProcess()", err)
- p.gError = err
- return p
- }
- return p
- }
- func (p *PreJob) ChangeSubNameFormat() *PreJob {
- if p.gError != nil {
- p.log.Infoln("Skip PreJob.ChangeSubNameFormat()")
- return p
- }
- p.stageName = stageNameChangeSubNameFormat
- defer func() {
- p.log.Infoln("PreJob.ChangeSubNameFormat() End")
- }()
- p.log.Infoln("PreJob.ChangeSubNameFormat() Start...")
- // ------------------------------------------------------------------------
- /*
- 字幕命名格式转换,需要数据库支持
- 如果数据库没有记录经过转换,那么默认从 Emby 的格式作为检测的起点,转换到目标的格式
- 然后需要在数据库中记录本次的转换结果
- */
- p.log.Infoln(common2.NotifyStringTellUserWait)
- var err error
- p.renameResults, err = sub_formatter.SubFormatChangerProcess(p.log,
- settings.Get().CommonSettings.MoviePaths,
- settings.Get().CommonSettings.SeriesPaths,
- common.FormatterName(settings.Get().AdvancedSettings.SubNameFormatter))
- // 出错的文件有哪一些
- for s, i := range p.renameResults.ErrFiles {
- p.log.Errorln("reformat ErrFile:"+s, i)
- }
- if err != nil {
- p.log.Errorln("SubFormatChangerProcess() Error", err)
- p.gError = err
- return p
- }
- return p
- }
- func (p *PreJob) Wait() error {
- defer func() {
- p.isDone = true
- p.log.Infoln("PreJob.Wait() Done.")
- }()
- if p.gError != nil {
- outErrString := "PreJob.Wait() Get Error, " + "stageName:" + p.stageName + " -- " + p.gError.Error()
- p.log.Errorln(outErrString)
- return errors.New(outErrString)
- } else {
- return nil
- }
- }
- func (p *PreJob) GetStageName() string {
- return p.stageName
- }
- func (p *PreJob) IsDone() bool {
- return p.isDone
- }
- func (p *PreJob) GetRenameResults() sub_formatter.RenameResults {
- return p.renameResults
- }
- func (p *PreJob) GetGError() error {
- return p.gError
- }
- const (
- stageNameCHotFix = "HotFix"
- stageNameChangeSubNameFormat = "ChangeSubNameFormat"
- stageNameReloadBrowser = "ReloadBrowser"
- )
|