Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
radio_mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
azbyka
radio_mpd
Commits
1f5d9aab
Commit
1f5d9aab
authored
Mar 13, 2024
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
checkmpd: add socket support
parent
933f1cee
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
8 deletions
+19
-8
checkmpd
checkmpd
+19
-8
No files found.
checkmpd
View file @
1f5d9aab
#!/bin/bash
ROOT_DIRECTORY
=
/home/icecastradio/radio_mpd/
URL
=
http://radio.azbyka.ru/json.xsl
cd
$ROOT_DIRECTORY
||
exit
STREAMS
=
`
ls
-l
$ROOT_DIRECTORY
|
grep
"^d"
|
awk
'{print $9}'
`
CONTENT
=
$(
curl
$URL
2>/dev/null
)
ACTIVE_STREAMS
=
`
grep
-oP
'(?<=/).*?(?=")'
<<<
$CONTENT
`
...
...
@@ -25,25 +26,35 @@ OFFLINE_STREAMS=()
# 2) Compare "$ACTIVE_STREAMS" and variable "STREAMS".
# If "$ELEM" not in "$ACTIVE_STREAMS" , add "$ELEM" in $OFFLINE_STREAMS.
elem_control
()
{
local bind
bind
=
`
cat
$ROOT_DIRECTORY
/
$1
.mpd.conf |
grep
"^bind_to_address"
|
awk
'{ print $2 ; exit; }'
|
tr
-d
\"
`
[
-e
"
$bind
"
]
&&
echo
"--host
$bind
"
&&
return
bind
=
`
cat
$ROOT_DIRECTORY
/
$1
.mpd.conf |
grep
"^port"
|
awk
'{ print $2 ; exit; }'
|
tr
-d
\"
`
echo
"-p
$bind
"
}
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
`
ELEM_
CONTROL
=
"
$(
elem_control
$ELEM
)
"
ELEM_STATUS
=
$(
mpc
$ELEM_CONTROL
|
awk
'{print $1}'
|
sed
-n
2p
)
if
[[
"
$ELEM_STATUS
"
=
~
"[paused]"
]]
;
then
echo
"
$ELEM
was paused. Started playing again"
mpc
-p
$ELEM_PORT
play
mpc
$ELEM_CONTROL
play
elif
[[
"
$ELEM_STATUS
"
=
""
]]
;
then
echo
"
$ELEM
is empty. Started playing again"
mpc
-p
$ELEM_PORT
play
mpc
$ELEM_CONTROL
play
else
echo
-e
"
$ELEM
\t
Status: '
$ELEM_STATUS
'"
fi
if
[[
$ELEM_STATUS
=
~
"
error
"
]]
;
then
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
mpc
$ELEM_CONTROL
play
fi
if
[[
!
$ACTIVE_STREAMS
=
~
$ELEM
]]
;
then
...
...
@@ -55,9 +66,9 @@ done
# Ниже ситуация с отмонтированным потоком:
echo
-e
"
\n
Restarting 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
\"
`
ELEM_
CONTROL
=
"
$(
elem_control
$ELEM
)
"
# Стартуем поток
mpc
-p
$ELEM_PORT
play
mpc
$ELEM_CONTROL
play
echo
$ELEM
done
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment