From d91dc25749391daaebff3c685c10de7ac8183951 Mon Sep 17 00:00:00 2001 From: ac79b0c6 <105047743+ac79b0c6@users.noreply.github.com> Date: Fri, 16 Dec 2022 10:49:30 +0800 Subject: update mkvlib:fix bug. --- .github/workflows/release.yml | 2 +- mkvlib/go.mod | 2 +- mkvlib/mkv.go | 26 +++++++++++++++++--------- mkvlib/shared.go | 2 +- mkvtool/go.mod | 2 +- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f47eb39..f168835 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.18 + go-version: 1.19 - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 diff --git a/mkvlib/go.mod b/mkvlib/go.mod index 5f11b7d..5b51de0 100644 --- a/mkvlib/go.mod +++ b/mkvlib/go.mod @@ -1,6 +1,6 @@ module github.com/MkvAutoSubset/MkvAutoSubset/mkvlib -go 1.18 +go 1.19 require ( github.com/antchfx/xmlquery v1.3.10 diff --git a/mkvlib/mkv.go b/mkvlib/mkv.go index fc694e2..ce80bf2 100644 --- a/mkvlib/mkv.go +++ b/mkvlib/mkv.go @@ -178,7 +178,7 @@ func (self *mkvProcessor) CreateMKV(file string, tracks, attachments []string, o _sl = _arr[1] } if len(_arr) > 2 { - _st = _arr[2] + _st = strings.Join(_arr[2:], "_") } if _sl != "" { args = append(args, "--language", "0:"+_sl) @@ -247,11 +247,13 @@ func (self *mkvProcessor) CreateMKVs(vDir, sDir, fDir, tDir, oDir, slang, stitle for _, item := range files { ec := 0 _, _, _, _f := splitPath(item) - tmp, _ := findPath(sDir, fmt.Sprintf(`%s(_[\S ]*)?\.\S+$`, regexp.QuoteMeta(_f))) + tmp, _ := findPath(sDir, `\.\S+$`) asses := make([]string, 0) subs := make([]string, 0) p := path.Join(tDir, _f) fn := path.Join(oDir, _f) + s1 := path.Join(p, "asses") + s2 := path.Join(p, "subs") if self.mks { fn += ".mks" } else { @@ -264,14 +266,20 @@ func (self *mkvProcessor) CreateMKVs(vDir, sDir, fDir, tDir, oDir, slang, stitle continue } for _, sub := range tmp { - if strings.HasSuffix(sub, ".ass") { - _, _, _, __f := splitPath(sub) - _s := path.Join(p, __f) + ".ass" - _ = copyFileOrDir(sub, _s) + _, n, e, _ := splitPath(sub) + reg, _ := regexp.Compile(fmt.Sprintf(`^(%s)(_[^_]*)+\.\S+$`, regexp.QuoteMeta(_f))) + if !reg.MatchString(n) { + continue + } + _s := fmt.Sprintf("%s%s", randomStr(8), strings.Replace(n, _f, "", 1)) + if e == ".ass" { + _s = path.Join(s1, _s) asses = append(asses, _s) } else { - subs = append(subs, sub) + _s = path.Join(s2, _s) + subs = append(subs, _s) } + _ = copyFileOrDir(sub, _s) } attachments := make([]string, 0) tracks := make([]string, 0) @@ -279,8 +287,8 @@ func (self *mkvProcessor) CreateMKVs(vDir, sDir, fDir, tDir, oDir, slang, stitle if !self.ASSFontSubset(asses, fDir, "", false, lcb) { ec++ } else { - _tracks, _ := findPath(p, `\.pgs$`) - __p := path.Join(p, "subsetted") + _tracks, _ := findPath(s1, `\.pgs$`) + __p := path.Join(s1, "subsetted") attachments = findFonts(__p) tracks, _ = findPath(__p, `\.ass$`) tracks = append(tracks, _tracks...) diff --git a/mkvlib/shared.go b/mkvlib/shared.go index 4284c91..01a493d 100644 --- a/mkvlib/shared.go +++ b/mkvlib/shared.go @@ -12,7 +12,7 @@ import ( ) const libName = "mkvlib" -const libVer = "v2.2.1" +const libVer = "v2.2.2" const LibFName = libName + " " + libVer diff --git a/mkvtool/go.mod b/mkvtool/go.mod index c018272..5fc5c52 100644 --- a/mkvtool/go.mod +++ b/mkvtool/go.mod @@ -1,6 +1,6 @@ module github.com/MkvAutoSubset/MkvAutoSubset/mkvtool -go 1.18 +go 1.19 require ( github.com/MkvAutoSubset/MkvAutoSubset/mkvlib v0.0.0-20221212045535-9e5efd8c0622 -- cgit v1.2.1