Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- replace_spaces() {
- sed "s|[ ]\{1,\}|_|g" <<< "${1}"
- }
- remove_misc() {
- echo "$1" | \
- sed \
- -e "s|'||g" \
- -e "s|\.\{2,\}|_|g" \
- -e "s|,||g" \
- -e "s|\._|-|g" \
- -e "s|\.-|-|g" \
- -e "s|-\.|\.|g" \
- -e "s|_\.|\.|g" \
- -e "s|=|_|g" \
- -e "s|&|_|g" \
- -e "s|!||g" \
- -e "s|(||g" \
- -e "s|)||g" \
- -e "s|\[||g" \
- -e "s|\]||g" \
- -e "s|{||g" \
- -e "s|}||g" \
- -e "s|~||g" \
- -e "s|-_|-|g" \
- -e "s|_-|-|g" \
- -e "s|- |-|g" \
- -e "s| -|-|g" \
- -e "s|--|-|g" \
- -e "s|\:|-|g" | \
- sed -e 's|[_]\{2,\}|_|g'
- }
- remove_custom() {
- sed "s|${2}||g" <<< "${1}"
- }
- lowercase() {
- tr '[:upper:]' '[:lower:]' <<< "${1}"
- }
- numbering() {
- grep -q '^[0-9][0-9][_\.]' <<< "${1}" && \
- sed "s|^\([0-9][0-9]\).\(.*\)|\1-\2|" <<< "${1}" || \
- echo "$1"
- }
- extension() {
- grep -q -e 'mp3$' -e 'ogg$' <<< "${1}" && \
- sed "s|^\(.*\)[-_]\([a-zA-Z0-9]\{3,3\}\)$|\1\.\2|" <<< "${1}" || \
- echo "$1"
- }
- remove_artist() {
- artist=$(basename `pwd`)
- grep -q -e "^${artist}" <<< "${1}" && \
- sed "s|^${artist}||" <<< "${1}" || \
- echo "$1"
- }
- guess_title() {
- title=$(id3info $1 | grep TIT2 | cut -d':' -f2)
- [[ ! -z ${title} ]] && \
- sed "s|^\(.*\)\.\([a-zA-Z0-9]\{3,3\}\)$|\1-${title}\.\2|" <<< "${2}" || \
- echo "$2"
- }
- create_m3u() {
- [ ! -d "${1}" ] && return 1
- cd "${1}"
- find ./ -type f -name '*.mp3' -o -name '*.ogg' | sed 's|^\./||' | sort > 00-album.m3u
- cd - &>/dev/null
- }
- find ./ -mindepth 1 -maxdepth 1 | while read entry; do
- entry=`sed 's|^\./||' <<< "${entry}"`
- [ "${entry}" = "" ] && continue
- newentry="${entry}"
- [ "$1" != "" ] && newentry=`remove_custom "${newentry}" "$1"`
- [ "$2" != "" ] && newentry=`remove_custom "${newentry}" "$2"`
- newentry=`remove_misc "${newentry}"`
- newentry=`lowercase "${newentry}"`
- newentry=`replace_spaces "${newentry}"`
- [ -f "${entry}" ] && newentry=`numbering "${newentry}"`
- [ -f "${entry}" ] && newentry=`extension "${newentry}"`
- [ -d "${entry}" ] && newentry=`remove_artist "${newentry}"`
- [[ $(wc -c <<< "${entry}") -le 7 ]] && newentry=`guess_title "${entry}" "${newentry}"`
- if [[ "${entry}" != "${newentry}" && ! -z ${newentry} ]]; then
- echo "${entry} -> ${newentry}"
- mv -- "${entry}" "${newentry}"
- fi
- done
- # change perms
- find ./ -type d -exec chmod 755 {} \;
- find ./ -type f -exec chmod 644 {} \;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement