add sleeptimer

This commit is contained in:
Denis Lehmann 2021-06-13 09:10:30 +02:00
parent f8d8927f56
commit 03f20cad71
2 changed files with 22 additions and 1 deletions

View file

@ -53,6 +53,7 @@
- Query multiple remote directories with one command
- Play remote files on other machines
- Synchronize playback positions with remote machines
- Sleeptimer
You can access your local machine also via SSH, so every occurrence of /remote/ in the list can be replaced with /local/.
@ -96,6 +97,7 @@
-m, --media-directories MEDIA_DIRECTORIES Use given media directories, config is ignored
-o, --or Use a logical OR for queries (default: AND)
-p, --playback-directory DIRECTORY Playback files directory
-q, --quit TIME_IN_MINUTES Quit after a given time
-r, --remote SSH_CONNECTION_STRING Execute strm with other given arguments on remote machine (-f is set by default)
-s, --shuffle Play files in random order
-t, --tidy Don't resume playback and don't synchronize playback positions

21
strm
View file

@ -17,6 +17,7 @@ function print_usage {
echo " -m, --media-directories MEDIA_DIRECTORIES Use given media directories, config is ignored"
echo " -o, --or Use a logical OR for queries (default: AND)"
echo " -p, --playback-directory DIRECTORY Playback files directory"
echo " -q, --quit TIME_IN_MINUTES Quit after a given time"
echo " -r, --remote SSH_CONNECTION_STRING Execute strm with other given arguments on remote machine (-f is set by default)"
echo " -s, --shuffle Play files in random order"
echo " -t, --tidy Don't resume playback and don't synchronize playback positions"
@ -50,6 +51,7 @@ media_directories=""
tidy=false
or=false
queries=()
quit=""
remote=""
remote_arguments=()
tmp_playback_directory=""
@ -106,6 +108,15 @@ while (( "$#" )); do
remote_arguments+=("$1")
shift
;;
-q|--quit)
if [ -n "$2" ] && [ "${2:0:1}" != "-" ]; then
quit="$2"
remote_arguments+=("$1" "$2")
shift 2
else
error "Argument for '$1' is missing"
fi
;;
-r|--remote)
if [ -n "$2" ] && [ "${2:0:1}" != "-" ]; then
remote="$2"
@ -356,7 +367,15 @@ if [ "$list" == false ]; then
fi
# Play all remote files
mpv --msg-level=all=error,statusline=status --watch-later-directory="$HOME/.cache/strm" --term-status-msg='${playlist-pos-1}/${playlist-count} - ${time-pos}/${duration} - \e[1m${metadata/artist:}${?metadata/artist: - }${metadata/album:}${?metadata/album: - }${metadata/title:}${!metadata/title:${filename/no-ext}}\e[0m' "${mpv_arguments[@]}" "${sftp_results[@]}"
if [ "$quit" != "" ]; then
# Convert minutes to seconds
((quit=quit*60))
timeout --foreground --signal QUIT "$quit" mpv --msg-level=all=error,statusline=status --watch-later-directory="$HOME/.cache/strm" --term-status-msg='${playlist-pos-1}/${playlist-count} - ${time-pos}/${duration} - \e[1m${metadata/artist:}${?metadata/artist: - }${metadata/album:}${?metadata/album: - }${metadata/title:}${!metadata/title:${filename/no-ext}}\e[0m' "${mpv_arguments[@]}" "${sftp_results[@]}"
else
mpv --msg-level=all=error,statusline=status --watch-later-directory="$HOME/.cache/strm" --term-status-msg='${playlist-pos-1}/${playlist-count} - ${time-pos}/${duration} - \e[1m${metadata/artist:}${?metadata/artist: - }${metadata/album:}${?metadata/album: - }${metadata/title:}${!metadata/title:${filename/no-ext}}\e[0m' "${mpv_arguments[@]}" "${sftp_results[@]}"
fi
# Synchronize playback directory back if not tidy and directory is set
if [ "$tidy" == false ] && [ "$playback_directory" != "" ]; then