summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua
blob: 05d12e38b25d198eebd3cae79241bce22029c29b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
-- Copyright 2017 Yousong Zhou <yszhou4tech@gmail.com>
-- Licensed to the public under the Apache License 2.0.
--
module("luci.controller.shadowsocks-libev", package.seeall)

function index()
	entry({"admin", "services", "shadowsocks-libev"},
		alias("admin", "services", "shadowsocks-libev", "instances"),
		_("Shadowsocks-libev"), 59)

	entry({"admin", "services", "shadowsocks-libev", "instances"},
		arcombine(cbi("shadowsocks-libev/instances"), cbi("shadowsocks-libev/instance-details")),
		_("Local Instances"), 10).leaf = true

	entry({"admin", "services", "shadowsocks-libev", "servers"},
		cbi("shadowsocks-libev/servers"),
		_("Remote Servers"), 20).leaf = true

	entry({"admin", "services", "shadowsocks-libev", "rules"},
		cbi("shadowsocks-libev/rules"),
		_("Redir Rules"), 30).leaf = true

	entry({"admin", "services", "shadowsocks-libev", "status"}, call("ss_status"), nil).leaf = true

end

function ss_status()
	local ut = require "luci.util"
	local rv = ut.ubus("service", "list", {name = "shadowsocks-libev"})["shadowsocks-libev"] or {_=0}

	luci.http.prepare_content("application/json")
	luci.http.write_json(rv)
end