summaryrefslogtreecommitdiffstats
path: root/clerk
diff options
context:
space:
mode:
authorRasmus Steinke <rasi@xssn.at>2015-08-31 00:42:36 +0200
committerRasmus Steinke <rasi@xssn.at>2015-08-31 00:42:36 +0200
commite7bd374e100cdf6eea1c19d6ff805af289f3ac36 (patch)
tree5e8fba17afff8e182796dc781f72b4218f383046 /clerk
parent93bfa58faaef1580acb8ab971efebdbd9b5a8d96 (diff)
downloadperl-app-clerk-e7bd374e100cdf6eea1c19d6ff805af289f3ac36.tar.gz
perl-app-clerk-e7bd374e100cdf6eea1c19d6ff805af289f3ac36.tar.xz
speed up savetoplaylist track
Diffstat (limited to 'clerk')
-rwxr-xr-xclerk82
1 files changed, 53 insertions, 29 deletions
diff --git a/clerk b/clerk
index 5d63349..be4a389 100755
--- a/clerk
+++ b/clerk
@@ -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"