diff options
| author | ac79b0c6 <[email protected]> | 2022-05-07 10:45:16 +0800 |
|---|---|---|
| committer | ac79b0c6 <[email protected]> | 2022-05-07 10:45:16 +0800 |
| commit | d34cea33c9a9aed2f330713efdcb375e198ee287 (patch) | |
| tree | ca153156516bf7c3e7ed968ee84d5ef244a5ff0c /mkvtool | |
| parent | a0b27e3e3caa53233f98106e69cfd3d47173b0ad (diff) | |
update mkvtool:fix caches
Diffstat (limited to 'mkvtool')
| -rw-r--r-- | mkvtool/go.mod | 5 | ||||
| -rw-r--r-- | mkvtool/main.go | 11 | ||||
| -rw-r--r-- | mkvtool/utils.go | 9 |
3 files changed, 17 insertions, 8 deletions
diff --git a/mkvtool/go.mod b/mkvtool/go.mod index 4d282ac..0c20219 100644 --- a/mkvtool/go.mod +++ b/mkvtool/go.mod @@ -2,10 +2,7 @@ module github.com/MkvAutoSubset/MkvAutoSubset/mkvtool go 1.18 -require ( - github.com/MkvAutoSubset/MkvAutoSubset/mkvlib v0.0.0-20220506111355-2978cfb6c703 - github.com/google/uuid v1.3.0 -) +require github.com/MkvAutoSubset/MkvAutoSubset/mkvlib v0.0.0-20220506111355-2978cfb6c703 require ( github.com/antchfx/xmlquery v1.3.10 // indirect diff --git a/mkvtool/main.go b/mkvtool/main.go index 12fd890..4d71da0 100644 --- a/mkvtool/main.go +++ b/mkvtool/main.go @@ -4,7 +4,6 @@ import ( "flag" "fmt" "github.com/MkvAutoSubset/MkvAutoSubset/mkvlib" - "github.com/google/uuid" "io" "io/ioutil" "log" @@ -17,7 +16,7 @@ import ( ) const appName = "MKV Tool" -const appVer = "v3.8.7" +const appVer = "v3.8.8" const tTitle = appName + " " + appVer var appFN = fmt.Sprintf("%s %s %s/%s", appName, appVer, runtime.GOOS, runtime.GOARCH) @@ -88,7 +87,7 @@ func main() { flag.BoolVar(&cc, "cc", false, "Create fonts cache.") flag.Var(asses, "a", "ASS files. (multiple & join ass mode)") flag.BoolVar(&n, "n", false, "Not do ass font subset & not change font name.") - flag.BoolVar(&clean, "clean", false, "Clean original file subtitles and fonts. (create mode only)") + flag.BoolVar(&clean, "clean", false, "Clean original file subtitles and fonts for create mode, or clean old caches for create cache mode.") flag.BoolVar(&ck, "ck", false, "Enable check mode.") flag.BoolVar(&cks, "cks", false, "Enable strict mode for check.") flag.StringVar(&sl, "sl", "chi", "Subtitle language. (create & make mode only)") @@ -161,7 +160,11 @@ func main() { } if cc && s != "" { - list := processer.CreateFontsCache(s, path.Join(cache_p, uuid.New().String()+".cache"), nil) + if clean { + _ = os.RemoveAll(cache_p) + } + p := path.Join(cache_p, path2MD5(s)+".cache") + list := processer.CreateFontsCache(s, p, nil) el := len(list) if el > 0 { ec++ diff --git a/mkvtool/utils.go b/mkvtool/utils.go index e60afe8..835e88c 100644 --- a/mkvtool/utils.go +++ b/mkvtool/utils.go @@ -1,7 +1,9 @@ package main import ( + "crypto/md5" "errors" + "fmt" "os" "path/filepath" "regexp" @@ -48,3 +50,10 @@ func splitPath(p string) (dir, name, ext, namewithoutext string) { } return } + +func path2MD5(p string) string { + p, _ = filepath.Abs(p) + h := md5.New() + h.Write([]byte(p)) + return fmt.Sprintf("%x", h.Sum(nil)) +} |
