diff options
author | Rasmus Steinke <rasi@xssn.at> | 2015-08-31 00:42:36 +0200 |
---|---|---|
committer | Rasmus Steinke <rasi@xssn.at> | 2015-08-31 00:42:36 +0200 |
commit | e7bd374e100cdf6eea1c19d6ff805af289f3ac36 (patch) | |
tree | 5e8fba17afff8e182796dc781f72b4218f383046 /clerk | |
parent | 93bfa58faaef1580acb8ab971efebdbd9b5a8d96 (diff) | |
download | perl-app-clerk-e7bd374e100cdf6eea1c19d6ff805af289f3ac36.tar.gz perl-app-clerk-e7bd374e100cdf6eea1c19d6ff805af289f3ac36.tar.xz |
speed up savetoplaylist track
Diffstat (limited to 'clerk')
-rwxr-xr-x | clerk | 82 |
1 files changed, 53 insertions, 29 deletions
@@ -1185,8 +1185,6 @@ TRACK_TEMP=$((echo -e "0 Return to Browse Menu\n---"; cat $HOME/.config/clerk/t TRACK="${TRACK_TEMP#*¬}" unset filter export filter="$(echo ${TRACK_TEMP} | awk -F '¬' '{ print $1 }')" - echo "${filter}" - echo "${TRACK}" if [[ "$TRACK" == "0 Return to Browse Menu" ]] then browseLibPrompt @@ -1276,12 +1274,21 @@ saveAlbumToPlaylist() { if [[ "$TRACK" == "0 Return to Main Menu" ]] then dplayPrompt else - artist=$(echo "$TRACK" | awk -F "$separator" '{print $1}') - date=$(echo "$TRACK" | awk -F "$separator" '{print $2}') - album=$(echo "$TRACK" | awk -F "$separator" '{print $3}') + artist=$(echo -en "$TRACK" \ + | awk -F '\t' '{ print $1 }' \ + | sed -e 's/[[:space:]]*$//') + group2=$(echo -en "$TRACK" \ + | awk -F '\t' '{ print $2 }' \ + | sed -e 's/[[:space:]]*$//') + album=$(echo "$group2" \ + | awk -F " — " '{print $2}') + date=$(echo "$group2" \ + | awk -F " — " '{print $1}' \ + | awk '{print substr($0, 2, length($0) - 2)}') + mpc search date "$date" album "$album" albumartist "$artist" | clerk_helper saveto fi - done < <(echo -e "0 Return to Main Menu\n---\n$(echo "$album_temp")" | dmenu_t -dmenu -p "Save Album to Playlist > ") + done < <(echo -e "0 Return to Main Menu\n---\n$(cat $HOME/.config/clerk/albums.cache)" | dmenu_t -dmenu -p "Save Album to Playlist > ") if [[ $seen = 0 ]] then @@ -1298,12 +1305,21 @@ saveLatestToPlaylist() { if [[ "$TRACK" == "0 Return to Main Menu" ]] then dplayPrompt else - artist=$(echo "$TRACK" | awk -F "$separator" '{print $2}') - date=$(echo "$TRACK" | awk -F "$separator" '{print $1}') - album=$(echo "$TRACK" | awk -F "$separator" '{print $3}') + artist=$(echo -en "$TRACK" \ + | awk -F '\t' '{ print $1 }' \ + | sed -e 's/[[:space:]]*$//') + group2=$(echo -en "$TRACK" \ + | awk -F '\t' '{ print $2 }' \ + | sed -e 's/[[:space:]]*$//') + album=$(echo "$group2" \ + | awk -F " — " '{print $2}') + date=$(echo "$group2" \ + | awk -F " — " '{print $1}' \ + | awk '{print substr($0, 2, length($0) - 2)}') + mpc search date "$date" album "$album" albumartist "$artist" | clerk_helper saveto fi - done < <(echo -e "0 Return to Main Menu\n---\n$(echo "$last_temp")" | dmenu_t -dmenu -p "Save Album to Playlist > ") + done < <(echo -e "0 Return to Main Menu\n---\n$(cat $HOME/.config/clerk/latest.cache)" | dmenu_t -dmenu -p "Save Album to Playlist > ") if [[ $seen = 0 ]] then @@ -1312,24 +1328,34 @@ saveLatestToPlaylist() { } saveTrackToPlaylist() { - declare -i seen=0 - while read TRACK - do - seen=1 - if [[ "$TRACK" == "0 Return to Main Menu" ]] - then dplayPrompt - else - artist=$(echo "$TRACK" | awk -F "$separator" '{print $1}') - track=$(echo "$TRACK" | awk -F "$separator" '{print $2}') - album=$(echo "$TRACK" | awk -F "$separator" '{print $4}') - title=$(echo "$TRACK" | awk -F "$separator" '{print $5}') - mpc search track "$track" album "$album" title "$title" albumartist "$artist" | clerk_helper saveto - fi - done < <(echo -e "0 Return to Main Menu\n---\n$(echo "$tracks_temp")" | dmenu_t -dmenu -p "Save Track to Playlist > ") + TRACK_TEMP=$((echo -e "0 Return to Main Menu\n---"; cat $HOME/.config/clerk/tracks.cache) | dmenu_t -filter "$filter" -select "$entry" -format "f¬s" -dmenu -p "Save Track to Playlist > ") - if [[ $seen = 0 ]] - then + TRACK="${TRACK_TEMP#*¬}" + unset filter + export filter="$(echo ${TRACK_TEMP} | awk -F '¬' '{ print $1 }')" + + + if [[ "$TRACK" == "0 Return to Main Menu" ]] + then dplayPrompt + elif [[ -z "$TRACK" ]]; then exit + else + filename=$(echo "$TRACK" | awk -F "\t" '{print $3}') + info=$(mpc search --format '%artist%\t%album%\t%date%\t%track%\t%title%' filename "${filename}") + artist="$(echo "$info" \ + | awk -F '\t' '{ print $1 }')" + album="$(echo "$info" \ + | awk -F '\t' '{ print $2 }')" + date="$(echo "$info" \ + | awk -F '\t' '{ print $3 }')" + track="$(echo "$info" \ + | awk -F '\t' '{ print $4 }')" + title="$(echo "$info" \ + | awk -F '\t' '{ print $5 }')" + + mpc search track "$track" album "$album" title "$title" albumartist "$artist" | clerk_helper saveto + entry="$TRACK" + saveTrackToPlaylist fi } @@ -1499,12 +1525,10 @@ while :; do echo "" echo "Library" echo " --add <track, album, latest> adds selection at the end of the queue" - echo " --browse <artist, albumartist, date, genre, folder, system> browse library" echo " --random <track, album> play random track or album" echo "" echo "Playlist" - echo " --queue <show, delete, suspend, resume> manage current queue" - echo " --manage manage playlists" + echo " --queue <show, suspend, resume> manage current queue" echo " --playlist <savealbum, savelast, savetrack> save selection to playlist \"clerk\"" echo " --rss load podcast" echo " (podcast should be placed in ~/.config/clerk/podcasts" |