applications/luci-minidlna: add status output
This commit is contained in:
parent
393d85fcab
commit
3353616e61
3 changed files with 63 additions and 0 deletions
|
@ -24,4 +24,37 @@ function index()
|
||||||
page = entry({"admin", "services", "minidlna"}, cbi("minidlna"), _("miniDLNA"))
|
page = entry({"admin", "services", "minidlna"}, cbi("minidlna"), _("miniDLNA"))
|
||||||
page.i18n = "minidlna"
|
page.i18n = "minidlna"
|
||||||
page.dependent = true
|
page.dependent = true
|
||||||
|
|
||||||
|
entry({"admin", "services", "minidlna_status"}, call("minidlna_status"))
|
||||||
|
end
|
||||||
|
|
||||||
|
function minidlna_status()
|
||||||
|
local sys = require "luci.sys"
|
||||||
|
local uci = require "luci.model.uci".cursor()
|
||||||
|
local port = tonumber(uci:get_first("minidlna", "minidlna", "port"))
|
||||||
|
|
||||||
|
local status = {
|
||||||
|
running = (sys.call("pidof minidlna >/dev/null") == 0),
|
||||||
|
audio = 0,
|
||||||
|
video = 0,
|
||||||
|
image = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if status.running then
|
||||||
|
local fd = sys.httpget("http://127.0.0.1:%d/" % (port or 8200), true)
|
||||||
|
if fd then
|
||||||
|
local ln
|
||||||
|
repeat
|
||||||
|
ln = fd:read("*l")
|
||||||
|
if ln and ln:match("files:") then
|
||||||
|
local ftype, fcount = ln:match("(.+) files: (%d+)")
|
||||||
|
status[ftype:lower()] = tonumber(fcount) or 0
|
||||||
|
end
|
||||||
|
until not ln
|
||||||
|
fd:close()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
luci.http.prepare_content("application/json")
|
||||||
|
luci.http.write_json(status)
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
<%+minidlna_status%>
|
29
applications/luci-minidlna/luasrc/view/minidlna_status.htm
Normal file
29
applications/luci-minidlna/luasrc/view/minidlna_status.htm
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
XHR.poll(5, '<%=luci.dispatcher.build_url("admin/services/minidlna_status")%>', null,
|
||||||
|
function(x, st)
|
||||||
|
{
|
||||||
|
var tb = document.getElementById('minidlna_status');
|
||||||
|
if (st && tb)
|
||||||
|
{
|
||||||
|
if (st.running)
|
||||||
|
{
|
||||||
|
tb.innerHTML = String.format(
|
||||||
|
'<%:%The miniDLNA service is active, serving %d audio, %d video and %d image files.%>',
|
||||||
|
st.audio, st.video, st.image
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tb.innerHTML = '<%:The miniDLNA service is not running.%>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//]]></script>
|
||||||
|
|
||||||
|
<fieldset class="cbi-section">
|
||||||
|
<legend><%:miniDLNA Status%></legend>
|
||||||
|
<p id="minidlna_status">
|
||||||
|
<em><%:Collecting data...%></em>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
Loading…
Reference in a new issue