X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=applications%2Fluci-minidlna%2Fluasrc%2Fcontroller%2Fminidlna.lua;h=c775bdd241298619699a5785e2d365dce15bfa35;hp=3444a3d6686533c6197a411953cfee5c73287305;hb=3353616e61d46ca34bbfcb7825a1ffba492ee525;hpb=393d85fcab7551f85dc94871faa63e71928b082e;ds=inline diff --git a/applications/luci-minidlna/luasrc/controller/minidlna.lua b/applications/luci-minidlna/luasrc/controller/minidlna.lua index 3444a3d66..c775bdd24 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