mirror of
https://git.um-react.app/um/cli.git
synced 2025-11-28 03:33:02 +00:00
refactor: improve mmkv logic
This commit is contained in:
@@ -49,8 +49,8 @@ func main() {
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{Name: "input", Aliases: []string{"i"}, Usage: "path to input file or dir", Required: false},
|
||||
&cli.StringFlag{Name: "output", Aliases: []string{"o"}, Usage: "path to output dir", Required: false},
|
||||
&cli.StringFlag{Name: "qmc-mmkv", Aliases: []string{"db"}, Usage: "path to qmc mmkv (.crc file also required)", Required: false},
|
||||
&cli.StringFlag{Name: "qmc-mmkv-key", Aliases: []string{"key"}, Usage: "mmkv password (16 ascii chars)", Required: false},
|
||||
&cli.StringFlag{Name: "qmc-mmkv", Aliases: []string{"db"}, Usage: "path to QQMusic mmkv path", Required: false},
|
||||
&cli.StringFlag{Name: "qmc-mmkv-key", Aliases: []string{"key"}, Usage: "QQMusic mmkv password (16 ascii chars)", Required: false},
|
||||
&cli.StringFlag{Name: "kgg-db", Usage: "path to kgg db (win32 kugou v11)", Required: false},
|
||||
&cli.BoolFlag{Name: "remove-source", Aliases: []string{"rs"}, Usage: "remove source file", Required: false, Value: false},
|
||||
&cli.BoolFlag{Name: "skip-noop", Aliases: []string{"n"}, Usage: "skip noop decoder", Required: false, Value: true},
|
||||
@@ -176,13 +176,10 @@ func appMain(c *cli.Context) (err error) {
|
||||
return errors.New("output should be a writable directory")
|
||||
}
|
||||
|
||||
if mmkv := c.String("qmc-mmkv"); mmkv != "" {
|
||||
// If key is not set, the mmkv vault will be treated as unencrypted.
|
||||
key := c.String("qmc-mmkv-key")
|
||||
err := qmc.OpenMMKV(mmkv, key, logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// QMC: Load keys
|
||||
qmcKeys, err := qmc.LoadMMKVOrDefault(c.String("qmc-mmkv"), c.String("qmc-mmkv-key"), logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
kggDbPath := c.String("kgg-db")
|
||||
@@ -194,11 +191,18 @@ func appMain(c *cli.Context) (err error) {
|
||||
logger: logger,
|
||||
inputDir: inputDir,
|
||||
outputDir: output,
|
||||
kggDbPath: kggDbPath,
|
||||
skipNoopDecoder: c.Bool("skip-noop"),
|
||||
removeSource: c.Bool("remove-source"),
|
||||
updateMetadata: c.Bool("update-metadata"),
|
||||
overwriteOutput: c.Bool("overwrite"),
|
||||
|
||||
crypto: common.CryptoParams{
|
||||
// KuGou
|
||||
KggDbPath: kggDbPath,
|
||||
|
||||
// QQMusic
|
||||
QmcKeys: qmcKeys,
|
||||
},
|
||||
}
|
||||
|
||||
if inputStat.IsDir() {
|
||||
@@ -219,12 +223,12 @@ type processor struct {
|
||||
inputDir string
|
||||
outputDir string
|
||||
|
||||
kggDbPath string
|
||||
|
||||
skipNoopDecoder bool
|
||||
removeSource bool
|
||||
updateMetadata bool
|
||||
overwriteOutput bool
|
||||
|
||||
crypto common.CryptoParams
|
||||
}
|
||||
|
||||
func (p *processor) watchDir(inputDir string) error {
|
||||
@@ -352,11 +356,11 @@ func (p *processor) process(inputFile string, allDec []common.DecoderFactory) er
|
||||
logger := logger.With(zap.String("source", inputFile))
|
||||
|
||||
pDec, decoderFactory, err := p.findDecoder(allDec, &common.DecoderParams{
|
||||
Reader: file,
|
||||
Extension: filepath.Ext(inputFile),
|
||||
FilePath: inputFile,
|
||||
Logger: logger,
|
||||
KggDatabasePath: p.kggDbPath,
|
||||
Reader: file,
|
||||
Extension: filepath.Ext(inputFile),
|
||||
FilePath: inputFile,
|
||||
Logger: logger,
|
||||
CryptoParams: p.crypto,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user