2019-04-20 12:13:13 +00:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
2021-05-15 17:32:01 +00:00
|
|
|
# Description: Play random music (MP3, FLAC, M4A, WEBM, WMA) from current dir.
|
|
|
|
#
|
|
|
|
# Dependencies: mocp (or custom)
|
|
|
|
#
|
|
|
|
# Note: You may want to set GUIPLAYER.
|
2019-04-20 12:13:13 +00:00
|
|
|
#
|
|
|
|
# Shell: POSIX compliant
|
|
|
|
# Author: Arun Prakash Jana
|
|
|
|
|
2022-07-16 17:47:32 +00:00
|
|
|
GUIPLAYER="${GUIPLAYER:-""}"
|
2020-03-16 01:10:02 +00:00
|
|
|
NUMTRACKS="${NUMTRACKS:-100}"
|
2019-08-25 00:46:31 +00:00
|
|
|
|
2020-11-22 14:39:14 +00:00
|
|
|
if [ -n "$GUIPLAYER" ]; then
|
2020-04-26 18:35:11 +00:00
|
|
|
find . -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.m4a" -o -iname "*.webm" -o -iname "*.wma" \) | shuf -n "$NUMTRACKS" | xargs -d "\n" "$GUIPLAYER" > /dev/null 2>&1 &
|
2019-08-24 17:05:04 +00:00
|
|
|
|
|
|
|
# detach the player
|
2019-11-21 20:44:25 +00:00
|
|
|
sleep 1
|
2021-05-14 12:03:28 +00:00
|
|
|
elif type mocp >/dev/null 2>&1; then
|
2020-03-16 01:10:02 +00:00
|
|
|
cmd=$(pgrep -x mocp 2>/dev/null)
|
|
|
|
ret=$cmd
|
|
|
|
|
|
|
|
if [ -z "$ret" ]; then
|
|
|
|
# start MOC server
|
|
|
|
mocp -S
|
2020-04-27 03:05:43 +00:00
|
|
|
mocp -o shuffle
|
2020-03-16 01:10:02 +00:00
|
|
|
else
|
|
|
|
# mocp running, check if it's playing
|
|
|
|
state=$(mocp -i | grep "State:" | cut -d' ' -f2)
|
|
|
|
if [ "$state" = 'PLAY' ]; then
|
|
|
|
# add up to 100 random audio files
|
2020-04-27 03:05:43 +00:00
|
|
|
find . -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.m4a" -o -iname "*.webm" -o -iname "*.wma" \) | head -n "$NUMTRACKS" | xargs -d "\n" mocp -a
|
2020-03-16 01:10:02 +00:00
|
|
|
exit
|
|
|
|
fi
|
|
|
|
fi
|
2019-08-24 17:05:04 +00:00
|
|
|
|
|
|
|
# clear MOC playlist
|
|
|
|
mocp -c
|
2020-04-27 03:05:43 +00:00
|
|
|
mocp -o shuffle
|
2019-08-24 17:05:04 +00:00
|
|
|
|
|
|
|
# add up to 100 random audio files
|
2020-04-27 03:05:43 +00:00
|
|
|
find . -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.m4a" -o -iname "*.webm" -o -iname "*.wma" \) | head -n "$NUMTRACKS" | xargs -d "\n" mocp -a
|
2019-08-24 17:05:04 +00:00
|
|
|
|
|
|
|
# start playing
|
|
|
|
mocp -p
|
2020-01-05 17:13:23 +00:00
|
|
|
else
|
|
|
|
printf "moc missing"
|
|
|
|
read -r _
|
2019-08-24 17:05:04 +00:00
|
|
|
fi
|