diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2012-04-07 23:38:53 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2012-04-07 23:38:53 +0000 |
commit | 3353616e61d46ca34bbfcb7825a1ffba492ee525 (patch) | |
tree | 04979776bd89d989d0f752cd317396940daf6d81 /applications/luci-minidlna/luasrc/controller | |
parent | 393d85fcab7551f85dc94871faa63e71928b082e (diff) |
applications/luci-minidlna: add status output
Diffstat (limited to 'applications/luci-minidlna/luasrc/controller')
-rw-r--r-- | applications/luci-minidlna/luasrc/controller/minidlna.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/applications/luci-minidlna/luasrc/controller/minidlna.lua b/applications/luci-minidlna/luasrc/controller/minidlna.lua index 3444a3d668..c775bdd241 100644 --- a/applications/luci-minidlna/luasrc/controller/minidlna.lua +++ b/applications/luci-minidlna/luasrc/controller/minidlna.lua @@ -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 |