summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRasmus Steinke <rasi@xssn.at>2014-09-24 17:55:42 +0200
committerRasmus Steinke <rasi@xssn.at>2014-09-24 17:55:42 +0200
commitd3a2fcada3063f445e140a7e36d3e5f88df7b393 (patch)
tree3ae02a3d5b0f78f93b56d0c061b8bba81dfc446d
parent63c682ace032b61c76fe38741b60dfe35f7a6765 (diff)
downloadperl-app-clerk-d3a2fcada3063f445e140a7e36d3e5f88df7b393.tar.gz
perl-app-clerk-d3a2fcada3063f445e140a7e36d3e5f88df7b393.tar.xz
outsourced updater - runs in background
-rwxr-xr-xclerk115
1 files changed, 9 insertions, 106 deletions
diff --git a/clerk b/clerk
index ca49b4a..bb2b767 100755
--- a/clerk
+++ b/clerk
@@ -8,55 +8,13 @@ else
mkdir "$HOME/.config/clerk/ratings"
fi
-# create cached album list
-new_db="$(mpc stats | grep Updated | sed 's/ //g')"
-if [[ "$change_db" == "$new_db" ]]; then
- if [[ -f $HOME/.config/clerk/album.cache && -f $HOME/.config/clerk/tracks.cache && -f $HOME/.config/clerk/last.cache ]]; then
- album_temp=$(cat $HOME/.config/clerk/album.cache)
- tracks_temp=$(cat $HOME/.config/clerk/tracks.cache)
- last_temp=$(cat $HOME/.config/clerk/last.cache)
- echo "album/track cache up to date"
- else
- notify-send "clerk" "Creating caches"
- album_temp_cur=$(mppc listall --format "{$mpd_artist} $seperator {album} $seperator {date}" | uniq)
- echo "$album_temp_cur" > $HOME/.config/clerk/album.cache
- album_temp=$(cat $HOME/.config/clerk/album.cache)
- tracks_temp_cur=$(mppc listall --format "{artist} $seperator {track} $seperator {title} $seperator {album}")
- echo "$tracks_temp_cur" > $HOME/.config/clerk/tracks.cache
- tracks_temp=$(cat $HOME/.config/clerk/tracks.cache)
- last_temp_cur=$(export seperator="$seperator"; mppc listall --format "{last-modified}$seperator{date}$seperator{$mpd_artist}$seperator{album}" | sort -r | awk -F "$seperator" '{ print $2,ENVIRON["seperator"],$3,ENVIRON["seperator"],$4 }' | awk '!x[$0]++')
- echo "$last_temp_cur" > $HOME/.config/clerk/last.cache
- last_temp=$(cat $HOME/.config/clerk/last.cache)
- fi
-else
- notify-send "clerk" "Updating caches"
- sed -i "s/change_db=".*"/change_db=""$new_db""/" $HOME/.config/clerk/config
- rm -f $HOME/.config/clerk/album_cache
- rm -f $HOME/.config/clerk/tracks.cache
- rm -f $HOME/.config/clerk/last.cache
- album_temp_cur=$(mppc listall --format "{$mpd_artist} $seperator {album} $seperator {date}" | uniq)
- echo "$album_temp_cur" > $HOME/.config/clerk/album.cache
- album_temp=$(cat $HOME/.config/clerk/album.cache)
- tracks_temp_cur=$(mppc listall --format "{artist} $seperator {track} $seperator {title} $seperator {album}")
- echo "$tracks_temp_cur" > $HOME/.config/clerk/tracks.cache
- tracks_temp=$(cat $HOME/.config/clerk/tracks.cache)
- last_temp_cur=$(export seperator="$seperator"; mppc listall --format "{last-modified}$seperator{date}$seperator{$mpd_artist}$seperator{album}" | sort -r | awk -F "$seperator" '{ print $2,ENVIRON["seperator"],$3,ENVIRON["seperator"],$4 }' | awk '!x[$0]++')
- echo "$last_temp_cur" > $HOME/.config/clerk/last.cache
- last_temp=$(cat $HOME/.config/clerk/last.cache)
-
-fi
-
+clerk_updater &
+album_temp=$(cat $HOME/.config/clerk/album.cache)
+tracks_temp=$(cat $HOME/.config/clerk/tracks.cache)
+last_temp=$(cat $HOME/.config/clerk/last.cache)
updateCache() {
- rm -f $HOME/.config/clerk/album_cache
- album_temp_cur=$(mppc listall --format "{$mpd_artist} $seperator {album} $seperator {date}" | uniq)
- echo "$album_temp_cur" > $HOME/.config/clerk/album.cache
-
- rm -f $HOME/.config/clerk/tracks.cache
- tracks_temp_cur=$(mppc listall --format "{artist} $seperator {track} $seperator {title} $seperator {album}")
- echo "$tracks_temp_cur" > $HOME/.config/clerk/tracks.cache
-
- notify-send "Clerk" "Album/Track Caches updated"
+ clerk_updater &
}
dplayPrompt () {
@@ -1399,8 +1357,8 @@ browseGenre2() {
while read ARTIST
do
seen=1
- export ARTIST="$ARTIST"
- if [[ "$ARTIST" == "0 Return to Genre Menu" ]]
+ export GENRE="$ARTIST"
+ if [[ "$GENRE" == "0 Return to Genre Menu" ]]
then browseGenre
elif [[ "$ARTIST" == "Replace All" ]]
then mpc clear && mpc add / && mpc play
@@ -1409,36 +1367,9 @@ browseGenre2() {
elif [[ "$ARTIST" == "Insert All" ]]
then mpc insert /
else
- browseGenre3
- fi
- done < <(echo -e "0 Return to Main Menu\n---\nAdd All\nInsert all\nReplace all\n---\n$(mppc list $mpd_artist genre "$GENRE" )" | dmenu_t -dmenu -p "Choose Genre > ")
-
- if [[ $seen = 0 ]]
- then
- exit
- fi
-}
-
-browseGenre3() {
- ALBUMS=$(mppc list album "$ARTIST")
- declare -i seen=0
- while read ALBUM
- do
- seen=1
- ALBUM_FINAL=$(echo "$ALBUM" | awk -F " $seperator " '{ print $2 }')
- DATE=$(echo "$ALBUM" | awk -F " $seperator " '{ print $1 }')
- if [[ "$ALBUM" == "0 Return to Artist Menu" ]]
- then browseGenre2
- elif [[ "$ALBUM" == "Replace All" ]]
- then mpc clear && mppc findadd artist "$ARTIST" && mpc play
- elif [[ "$ALBUM" == "Add All" ]]
- then mppc findadd artist "$ARTIST"
- elif [[ "$ALBUM" == "Insert All" ]]
- then mppc find artist "$ARTIST" --format '{file}'| mpc insert
- else
- browseGenre4
+ browseAlbum
fi
- done < <(echo -e "0 Return to Artist Menu\n---\nReplace All\nAdd All\nInsert All\n---\n$(mppc find $mpd_artist "$ARTIST" genre "$GENRE" --format "{date} $seperator {album}" | sort | uniq)" | dmenu_t -dmenu -p "Choose Album > ")
+ done < <(echo -e "0 Return to Main Menu\n---\nAdd All\nInsert all\nReplace all\n---\n$(mpc list artist genre "$GENRE")" | dmenu_t -dmenu -p "Choose Genre > ")
if [[ $seen = 0 ]]
then
@@ -1446,34 +1377,6 @@ browseGenre3() {
fi
}
-browseGenre4() {
- declare -i seen=0
- while read TRACK
- do
- seen=1
- TRACKFINAL=$(echo "$TRACK" | awk -F " $seperator " '{ print $2 }')
- if [[ "$TRACK" = "0 Return to Album Menu" ]]
- then browseGenre3
- elif [[ "$TRACK" == "Replace All" ]]
- then mpc clear && mppc findadd artist "$ARTIST" album "$ALBUM_FINAL" date "$DATE" && mpc play
- elif [[ "$TRACK" == "Add All" ]]
- then mppc findadd artist "$ARTIST" album "$ALBUM_FINAL" date "$DATE"
- elif [[ "$TRACK" == "Insert All" ]]
- then mppc find artist "$ARTIST" album "$ALBUM_FINAL" date "$DATE" --format '{file}' | mpc insert
- else
- if [[ $(mpc playlist) == "" ]]; then
- mppc findadd artist "$ARTIST" album "$ALBUM_FINAL" date "$DATE" title "$TRACKFINAL" && mpc play
- else
- mppc findadd artist "$ARTIST" album "$ALBUM_FINAL" date "$DATE" title "$TRACKFINAL"
- fi
- fi
- done < <(echo -e "0 Return to Album Menu\n---\nReplace All\nAdd All\nInsert All\n---\n$(mppc find $mpd_artist "$ARTIST" album "$ALBUM_FINAL" --format "{track} $seperator {title}")" | dmenu_t -dmenu -p "Chose Track > ")
-
- if [[ $seen = 0 ]]; then
- exit
- fi
-}
-
################################################################################