From 8172c470e669c062db34f6607c818ab5b4887bab Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:58:32 +0900 Subject: feat(qndl-artist): add apply-download hook wrapper --- ar/.local/bin/qndl-artist | 14 ++++++++++++++ ar/.local/bin/tests/test-qndl-artist.sh | 7 +++++++ 2 files changed, 21 insertions(+) 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 -- cgit v1.2.3