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.i18n = "minidlna"
|
||||
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
|
||||
|
|
|
@ -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