From fc83af639a07e5394fb0311f9475d287924ddca4 Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Fri, 28 Jun 2024 22:32:19 +0300 Subject: [PATCH] bin: beets and qobuz --- .config/shell/music | 21 ++++++++++++++++++++- .local/bin/scripts/downloads-qobuz | 20 ++++++++++++++++++++ .local/bin/scripts/qobuz | 21 +++------------------ .local/bin/scripts/rgain | 5 +++-- 4 files changed, 46 insertions(+), 21 deletions(-) create mode 100755 .local/bin/scripts/downloads-qobuz diff --git a/.config/shell/music b/.config/shell/music index 3170f11..e9a5be4 100644 --- a/.config/shell/music +++ b/.config/shell/music @@ -64,6 +64,25 @@ addalbum() { unset IFS } + +updatemusic() { + for dir in $(find "$MUSIC" -mindepth 1 -maxdepth 1 -type d -name "[A-Z]*") + do builtin cd "$dir" + find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read dir + do target="$(echo ${dir} | tr -d ' ')" + find -maxdepth 1 \( -name "$dir" -o -iname "$(echo ${target} | sed 's/\([a-z]\)\([A-Z][a-z]\)/\1*\2/g')*" \) -not -name "$target" -exec mv -nv {} $target/ \; + done + done + cd "$MUSIC" + find -mindepth 4 -type d -not -path '*/Hip-Hop/*' -not -path '*/Movies/*' -not -path '*/LeagueOfLegends/*' -exec sh -c 'mv -vn "{}" "$(echo "{}" | cut -d/ -f2-3)/"' \; -prune + find -mindepth 4 -type d -exec sh -c 'test $(find "{}" -type f | grep -vE "(.jpe?g|.png)" | wc -l) -eq 1 && name="$(ls "{}" | grep -vE "(.jpe?g|.png)")" && mv -vi "{}/$name" "$(dirname "{}")/$(echo "$name" | sed "s|^01 ||")" && rm -rv "{}"' \; -prune + # TODO delete folders with only images: find -type d -exec sh -c 'test $(find "{}" -type f | grep -vE "(.jpe?g|.png)" | wc -l) -eq 0 && rm -r "{}"' \; -prune + find -empty -delete + formatsongs + printf "=== DONE RENAMING ===\n\n" + beet import -AC "$MUSIC" +} + formatsongs() { ( find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | formatin @@ -99,7 +118,6 @@ formatsong() { s/ [[(]\(None\|Free Download\|Original Mix\|Original\|Full Stream\|NCS Release\)[])]//i; s/ (\(Acoustic\|Live|.* Remix\))/ [\1]/i; s/ \[\(feat.*\)\]/ (\1)/i; - s/^\([A-z]\+\) The \([^-]\+\)$/\1, the \2/g; s/ \(\..\{2,4\}\)$/\1/; s/---/ - /; s/-LLS\././; @@ -108,4 +126,5 @@ formatsong() { s/ \././g; s/ / /g; s/\(\w\)+\(\w\)/\1 \2/g' - + #s/^\([A-z]\+\) The \([^-]\+\)$/\1, the \2/g; } diff --git a/.local/bin/scripts/downloads-qobuz b/.local/bin/scripts/downloads-qobuz new file mode 100755 index 0000000..b60ce3d --- /dev/null +++ b/.local/bin/scripts/downloads-qobuz @@ -0,0 +1,20 @@ +#!/bin/sh -ex +# Unpack and sort downloaded qobuz archive +# Obsolete through qobuz-dl +# Execute in target directory or with that as parameter +target="${1:-$PWD}" +archive=$(find $DATA/5* -maxdepth 2 -name Qobuz-commandes.tar) +cd $(dirname "$archive") +mkdir -p qobuz +cd qobuz +tar xf ../Qobuz-commandes.tar +mv -v ../*.jpg . || true +cd .. +mv -v qobuz $target/ #$d4/music/Worship/ +rm -i Qobuz-commandes.tar +cd $target/qobuz +find -type d -exec sh -c 'test $(ls "{}" | wc -l) -eq 1 && find "{}" -maxdepth 1 -type f | xargs -i% mv -v % .' \; +find -type d -empty -delete +formatsongs +find -maxdepth 1 -name "*.jpg" -exec sh -c 'mv -v "{}" "$(echo {} | rev | cut -d"/" -f1 | rev | cut -d"-" -f1-2 | tr -s "-" " " | xargs -i% find -type d -iname "%*")/"' \; +exec zsh diff --git a/.local/bin/scripts/qobuz b/.local/bin/scripts/qobuz index c161616..b45d227 100755 --- a/.local/bin/scripts/qobuz +++ b/.local/bin/scripts/qobuz @@ -1,18 +1,3 @@ -#!/bin/sh -ex -# Execute in target directory or with that as parameter -target="${1:-$PWD}" -archive=$(find $DATA/5* -maxdepth 2 -name Qobuz-commandes.tar) -cd $(dirname "$archive") -mkdir -p qobuz -cd qobuz -tar xf ../Qobuz-commandes.tar -mv -v ../*.jpg . || true -cd .. -mv -v qobuz $target/ #$d4/music/Worship/ -rm -i Qobuz-commandes.tar -cd $target/qobuz -find -type d -exec sh -c 'test $(ls "{}" | wc -l) -eq 1 && find "{}" -maxdepth 1 -type f | xargs -i% mv -v % .' \; -find -type d -empty -delete -formatsongs -find -maxdepth 1 -name "*.jpg" -exec sh -c 'mv -v "{}" "$(echo {} | rev | cut -d"/" -f1 | rev | cut -d"-" -f1-2 | tr -s "-" " " | xargs -i% find -type d -iname "%*")/"' \; -exec zsh +#!/bin/sh -e +# Wrapper for qobuz-dl +qobuz-dl $(test "$#" -gt 0 && echo dl || echo fun) -q 6 "$@" diff --git a/.local/bin/scripts/rgain b/.local/bin/scripts/rgain index 736298b..9bcafb3 100755 --- a/.local/bin/scripts/rgain +++ b/.local/bin/scripts/rgain @@ -1,6 +1,7 @@ #!/bin/sh # Recursively add replaygain to the given files or from the current directory -r128gain $(test -f "$1" || echo '--recursive') --skip-tagged --preserve-times 1 "${@:-.}" -# rsgain custom --album --skip-existing --tagmode=i +#rsgain custom --album --skip-existing --tagmode=i "${@:-${MUSIC:-.}}" +beet replaygain -a -t 4 -w || + r128gain $(test -f "$1" || echo '--recursive') --skip-tagged --preserve-times 1 "${@:-.}" # Need a find command, call for each album # rsgain easy --skip-existing --multithread=${SPARE_CORES:-3} "${@:-.}"