diff options
Diffstat (limited to 'ar')
| -rwxr-xr-x | ar/.local/bin/qndl-artist | 14 | ||||
| -rw-r--r-- | ar/.local/bin/tests/test-qndl-artist.sh | 7 |
2 files changed, 21 insertions, 0 deletions
diff --git a/ar/.local/bin/qndl-artist b/ar/.local/bin/qndl-artist index 1be0939..f5828a0 100755 --- a/ar/.local/bin/qndl-artist +++ b/ar/.local/bin/qndl-artist @@ -20,6 +20,19 @@ cmd_normalize() { printf '%s\n' "$_name" } +# 후크용: 파일의 현재 아티스트 폴더명을 표준명으로 해석해 apply. +cmd_apply_download() { + _fp="$1" + case "$_fp" in + "$MUSIC"/*) : ;; + *) return 0 ;; # Music 밖이면 무시 + esac + _rel="${_fp#"$MUSIC"/}" + _seg="${_rel%%/*}" + _canon="$(cmd_normalize "$_seg")" + cmd_apply "$_fp" "$_canon" +} + # mp3 1개를 표준 폴더로 이동(필요시) + album_artist 설정. cmd_apply() { _fp="$1"; _canon="$2" @@ -60,5 +73,6 @@ _sub="${1:-}" case "$_sub" in normalize) cmd_normalize "$@" ;; apply) cmd_apply "$@" ;; +apply-download) cmd_apply_download "$@" ;; *) printf 'usage: qndl-artist {normalize|apply|apply-download|merge} ...\n' >&2; exit 2 ;; esac diff --git a/ar/.local/bin/tests/test-qndl-artist.sh b/ar/.local/bin/tests/test-qndl-artist.sh index 327e3fb..6f2c925 100644 --- a/ar/.local/bin/tests/test-qndl-artist.sh +++ b/ar/.local/bin/tests/test-qndl-artist.sh @@ -44,4 +44,11 @@ SOLO="$(mktemp -d)/Music"; mkdir -p "$SOLO" ( export XDG_MUSIC_DIR="$SOLO"; mkmp3 "$SOLO/Solo/Al/s.mp3"; "$BIN" apply "$SOLO/Solo/Al/s.mp3" "SoloCanon" ) eq "apply: prune keeps MUSIC root" "yes" "$([ -d "$SOLO" ] && echo yes || echo no)" +# --- apply-download --- +# 맵에 4MEN→4Men 이 있으므로 다운로드가 4MEN 폴더에 떨어지면 4Men으로 통일돼야 함 +mkmp3 "$XDG_MUSIC_DIR/4MEN/Later/y.mp3" +"$BIN" apply-download "$XDG_MUSIC_DIR/4MEN/Later/y.mp3" +eq "apply-download: unified via map" "yes" "$([ -f "$XDG_MUSIC_DIR/4Men/Later/y.mp3" ] && echo yes || echo no)" +eq "apply-download: album_artist" "4Men" "$(tag_of "$XDG_MUSIC_DIR/4Men/Later/y.mp3" album_artist)" + exit $FAIL |
