diff --git a/cmd/um/main.go b/cmd/um/main.go index 8652d82..6b7715c 100644 --- a/cmd/um/main.go +++ b/cmd/um/main.go @@ -53,7 +53,7 @@ func main() { &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: "qmpc-mmkv-cli-exe", Usage: "path to QMPC MMKV Cli by LSR (v0.1.1+, auto-fetch QMC keys; Windows only)", Required: false, Value: "qmpc-mmkv-cli.exe"}, - &cli.StringFlag{Name: "qmc-android-db", Usage: "path to QQMusic Android player_process_db (dump from android: /data/data/com.tencent.qqmusic/databases/)", Required: false, Value: "player_process_db"}, + &cli.StringFlag{Name: "qmc-android-db", Usage: "path to QQMusic Android player_process_db (dump from android: /data/data/com.tencent.qqmusic/databases/)", Required: false, Value: ""}, &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}, @@ -186,10 +186,18 @@ func appMain(c *cli.Context) (err error) { if err != nil { return err } + qmcAndroidKeysPath := c.String("qmc-android-db") + if qmcAndroidKeysPath == "" { + // By default, use the current directory's `player_process_db` file if exists. + // Do not complain if this file does not exist. + if db, err := os.Stat("player_process_db"); err == nil && !db.IsDir() { + qmcAndroidKeysPath = "player_process_db" + } + } qmcKeys = mmkv.Merge( qmcKeys, qmc.LoadUserMMKV(c.String("qmc-mmkv"), c.String("qmc-mmkv-key"), logger), - qmc.LoadAndroidDB(c.String("qmc-android-db"), logger), + qmc.LoadAndroidDB(qmcAndroidKeysPath, logger), ) kggDbPath := c.String("kgg-db")