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 @@ ...@@ -2,17 +2,19 @@
ROOT_DIRECTORY=/home/icecastradio/radio_mpd/ ROOT_DIRECTORY=/home/icecastradio/radio_mpd/
URL=http://radio.azbyka.ru/json.xsl URL=http://radio.azbyka.ru/json.xsl
STREAMS=`ls -l $ROOT_DIRECTORY | grep "^d" | awk '{print $9}'` STREAMS=`ls -l $ROOT_DIRECTORY | grep "^d" | awk '{print $9}'`
CONTENT=$(curl $URL) CONTENT=$(curl $URL 2>/dev/null)
ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT` ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT`
echo -e "\n`date`"
# List information # List information
echo -e "\nAll MPD-STREAMS:" echo -e "\nMPD-STREAMS in the current directory:"
for ELEM in $STREAMS; do for ELEM in $STREAMS; do
echo $ELEM echo $ELEM
done done
echo echo
echo "Active MPD-STREAMS:" echo "Mounted MPD-STREAMS:"
for ELEM in $ACTIVE_STREAMS; do for ELEM in $ACTIVE_STREAMS; do
echo $ELEM echo $ELEM
done done
...@@ -22,17 +24,40 @@ OFFLINE_STREAMS=() ...@@ -22,17 +24,40 @@ OFFLINE_STREAMS=()
# 2) Compare "$ACTIVE_STREAMS" and variable "STREAMS". # 2) Compare "$ACTIVE_STREAMS" and variable "STREAMS".
# If "$ELEM" not in "$ACTIVE_STREAMS" , add "$ELEM" in $OFFLINE_STREAMS. # If "$ELEM" not in "$ACTIVE_STREAMS" , add "$ELEM" in $OFFLINE_STREAMS.
echo "MPD Status:"
for ELEM in $STREAMS; do 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 if [[ ! $ACTIVE_STREAMS =~ $ELEM ]]; then
OFFLINE_STREAMS+=( $ELEM ) OFFLINE_STREAMS+=( $ELEM )
fi fi
done done
echo "Restarting following MPD-STREAMS:" # Ниже ситуация с отмонтированным потоком:
echo -e "\nRestarting unmounted MPD-STREAMS:"
for ELEM in ${OFFLINE_STREAMS[@]}; do for ELEM in ${OFFLINE_STREAMS[@]}; do
ELEM_PORT=`cat $ROOT_DIRECTORY/$ELEM.mpd.conf | grep port | awk '{ print $2 ; exit; }' | tr -d \"` 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 echo $ELEM
done done
...@@ -5,12 +5,12 @@ ROOT_DIRECTORY=./$2 ...@@ -5,12 +5,12 @@ ROOT_DIRECTORY=./$2
function usage() { function usage() {
echo "Использование : ./radio.sh <параметр> <имя> echo "Использование : ./radio.sh <параметр> <имя>
c - создание нового потока -c - создание нового потока
m - управление потоком -m - управление потоком
d - удаление потока -d - удаление потока
l - список запущенных потоков -l - список запущенных потоков
p - порт потока" -p - порт потока"
} }
function get_port() { function get_port() {
...@@ -87,8 +87,9 @@ function get_streams() { ...@@ -87,8 +87,9 @@ function get_streams() {
ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT` ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT`
echo "Список запущенных потоков:" echo "Список запущенных потоков:"
for ELEM in $ACTIVE_STREAMS; for ELEM in $ACTIVE_STREAMS;
do do
echo $ELEM local ELEM_STATUS=`mpc -p \`./radio.sh -p $ELEM\` | awk '{print $1}' | sed -n 2p`
echo -e "$ELEM\t$ELEM_STATUS"
done done
echo echo
...@@ -109,5 +110,3 @@ do ...@@ -109,5 +110,3 @@ do
esac esac
done 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