Commit 933f1cee authored by Vitaly Lipatov's avatar Vitaly Lipatov

update scripts

parent c4d2e807
PORT=6715
PORT=6755
Замечание по поводу работы с mpd:
- Создаем и управляем потоком с помощью ./radio <название> (запускаем из-под рута)
- Плейлисты переносим в директорию playlists в формате .m3u , достаточно просто изменить расширение , ничего конвертировать не нужно.
При добавлении плейлиста может потребоваться время на обновление базы данных (Внизу будет уведомление по типу :"Connection to localhost:6670 Timeout") , все зависит от его размера.
При работе со скриптом можно нажать "H" , появиться подробное руководство при работе с клиентом.
Замечания по поводу работы с mpd:
- Создаем и управляем потоком с помощью ./radio <название> (запускаем из-под рута)
- Плейлисты переносим в директорию playlists в формате .m3u , достаточно просто изменить расширение , ничего конвертировать не нужно.
- При добавлении плейлиста может потребоваться время на обновление базы данных (Внизу будет уведомление по типу :"Connection to localhost:6670 Timeout") , все зависит от его размера.
- При работе со скриптом можно нажать "Shift+h" , появиться подробное руководство при работе с клиентом.
\ No newline at end of file
......@@ -2,17 +2,19 @@
ROOT_DIRECTORY=/home/icecastradio/radio_mpd/
URL=http://radio.azbyka.ru/json.xsl
STREAMS=`ls -l $ROOT_DIRECTORY | grep "^d" | awk '{print $9}'`
CONTENT=$(curl $URL)
CONTENT=$(curl $URL 2>/dev/null)
ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT`
echo -e "\n`date`"
# List information
echo -e "\nAll MPD-STREAMS:"
echo -e "\nMPD-STREAMS in the current directory:"
for ELEM in $STREAMS; do
echo $ELEM
done
echo
echo "Active MPD-STREAMS:"
echo "Mounted MPD-STREAMS:"
for ELEM in $ACTIVE_STREAMS; do
echo $ELEM
done
......@@ -22,17 +24,40 @@ OFFLINE_STREAMS=()
# 2) Compare "$ACTIVE_STREAMS" and variable "STREAMS".
# If "$ELEM" not in "$ACTIVE_STREAMS" , add "$ELEM" in $OFFLINE_STREAMS.
echo "MPD Status:"
for ELEM in $STREAMS; do
# Решаем ситуацию , когда поток просто на паузе.
ELEM_PORT=`cat $ROOT_DIRECTORY/$ELEM.mpd.conf | grep port | awk '{ print $2 ; exit; }' | tr -d \"`
ELEM_STATUS=`mpc -p $ELEM_PORT | awk '{print $1}' | sed -n 2p`
if [[ "$ELEM_STATUS" =~ "[paused]" ]]; then
echo "$ELEM was paused. Started playing again"
mpc -p $ELEM_PORT play
elif [[ "$ELEM_STATUS" = "" ]]; then
echo "$ELEM is empty. Started playing again"
mpc -p $ELEM_PORT play
else
echo -e "$ELEM\tStatus: '$ELEM_STATUS'"
fi
if [[ $ELEM_STATUS =~ "error" ]]; then
echo "$ELEM was paused with error. See logs in /home/icecastradio/radio_mpd/$ELEM/mpd.log"
mpc -p $ELEM_PORT play
fi
if [[ ! $ACTIVE_STREAMS =~ $ELEM ]]; then
OFFLINE_STREAMS+=( $ELEM )
fi
done
echo "Restarting following MPD-STREAMS:"
# Ниже ситуация с отмонтированным потоком:
echo -e "\nRestarting unmounted MPD-STREAMS:"
for ELEM in ${OFFLINE_STREAMS[@]}; do
ELEM_PORT=`cat $ROOT_DIRECTORY/$ELEM.mpd.conf | grep port | awk '{ print $2 ; exit; }' | tr -d \"`
# Start stream
mpc -q -p $ELEM_PORT play
# Стартуем поток
mpc -p $ELEM_PORT play
echo $ELEM
done
......@@ -5,12 +5,12 @@ ROOT_DIRECTORY=./$2
function usage() {
echo "Использование : ./radio.sh <параметр> <имя>
c - создание нового потока
m - управление потоком
d - удаление потока
l - список запущенных потоков
p - порт потока"
-c - создание нового потока
-m - управление потоком
-d - удаление потока
-l - список запущенных потоков
-p - порт потока"
}
function get_port() {
......@@ -87,8 +87,9 @@ function get_streams() {
ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT`
echo "Список запущенных потоков:"
for ELEM in $ACTIVE_STREAMS;
do
echo $ELEM
do
local ELEM_STATUS=`mpc -p \`./radio.sh -p $ELEM\` | awk '{print $1}' | sed -n 2p`
echo -e "$ELEM\t$ELEM_STATUS"
done
echo
......@@ -109,5 +110,3 @@ do
esac
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment