mirror of
				https://github.com/kenzok8/openwrt-packages.git
				synced 2025-10-30 07:50:37 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| 
 | |
| local NXFS = require "nixio.fs"
 | |
| local SYS  = require "luci.sys"
 | |
| local HTTP = require "luci.http"
 | |
| local DISP = require "luci.dispatcher"
 | |
| local UTIL = require "luci.util"
 | |
| local uci = luci.model.uci.cursor()
 | |
| local fs = require "luci.clash"
 | |
| local http = luci.http
 | |
| local clash = "clash"
 | |
| 
 | |
| kk = Map(clash)
 | |
| s = kk:section(TypedSection, "clash", translate("Auto Update Config"))
 | |
| s.anonymous = true
 | |
| kk.pageaction = false
 | |
| 
 | |
| o = s:option(Flag, "auto_update", translate("Auto Update"))
 | |
| o.description = translate("Auto Update Server subscription")
 | |
| 
 | |
| o = s:option(ListValue, "auto_update_time", translate("Update time (every day)"))
 | |
| o:value("1", translate("Every Hour"))
 | |
| o:value("6", translate("Every 6 Hours"))
 | |
| o:value("12", translate("Every 12 Hours"))
 | |
| o:value("24", translate("Every 24 Hours"))
 | |
| o.description = translate("Daily Server subscription update time. Only update config in use")
 | |
| 
 | |
| o = s:option(Button, "Apply")
 | |
| o.title = luci.util.pcdata(translate("Save & Apply"))
 | |
| o.inputtitle = translate("Save & Apply")
 | |
| o.inputstyle = "apply"
 | |
| o.write = function()
 | |
|   kk.uci:commit("clash")
 | |
| end
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| m = Map("clash")
 | |
| s = m:section(TypedSection, "clash" , translate("Clear Clash Log"))
 | |
| s.anonymous = true
 | |
| 
 | |
| o = s:option(Flag, "auto_clear_log", translate("Auto Clear Log"))
 | |
| o.description = translate("Auto Clear Log")
 | |
| 
 | |
| 
 | |
| o = s:option(ListValue, "clear_time", translate("Clear Time (Time of Day)"))
 | |
| o:value("1", translate("Every Hour"))
 | |
| o:value("6", translate("Every 6 Hours"))
 | |
| o:value("12", translate("Every 12 Hours"))
 | |
| o:value("24", translate("Every 24 Hours"))
 | |
| o.description = translate("Clear Log Time")
 | |
| 
 | |
| o=s:option(Button,"clear_clear")
 | |
| o.inputtitle = translate("Save & Apply")
 | |
| o.title = luci.util.pcdata(translate("Save & Apply"))
 | |
| o.inputstyle = "reload"
 | |
| o.write = function()
 | |
|   m.uci:commit("clash")
 | |
| end
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| w = Map("clash")
 | |
| s = w:section(TypedSection, "clash" , translate("Load Groups"))
 | |
| s.anonymous = true
 | |
| 
 | |
| 
 | |
| o = s:option(Button, "Load") 
 | |
| o.inputtitle = translate("Load Groups")
 | |
| o.title = translate("Load Groups")
 | |
| o.inputstyle = "apply"
 | |
| o.write = function()
 | |
|   w.uci:commit("clash")
 | |
|   luci.sys.call("bash /usr/share/clash/load_groups.sh >/dev/null 2>&1 &")
 | |
|   luci.sys.call("sleep 4")
 | |
|   HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "settings", "other"))   
 | |
| end
 | |
| 
 | |
| 
 | |
| r = w:section(TypedSection, "conf_groups", translate("Policy Groups"))
 | |
| r.anonymous = true
 | |
| r.addremove = false
 | |
| r.sortable = false
 | |
| r.template = "cbi/tblsection"
 | |
| function r.create(...)
 | |
| 	local sid = TypedSection.create(...)
 | |
| 	if sid then
 | |
| 		luci.http.redirect(r.extedit % sid)
 | |
| 		return
 | |
| 	end
 | |
| end
 | |
| 
 | |
| o = r:option(DummyValue, "type", translate("Group Type"))
 | |
| function o.cfgvalue(...)
 | |
| 	return Value.cfgvalue(...) or translate("None")
 | |
| end
 | |
| 
 | |
| 
 | |
| o = r:option(DummyValue, "name", translate("Group Name"))
 | |
| function o.cfgvalue(...)
 | |
| 	return Value.cfgvalue(...) or translate("None")
 | |
| end
 | |
| 
 | |
| 
 | |
| 
 | |
| y = Map("clash")
 | |
| x = y:section(TypedSection, "addtype", translate("Custom Rules"))
 | |
| x.anonymous = true
 | |
| x.addremove = true
 | |
| x.sortable = false
 | |
| x.template = "cbi/tblsection"
 | |
| x.extedit = luci.dispatcher.build_url("admin/services/clash/ip-rules/%s")
 | |
| function x.create(...)
 | |
| 	local sid = TypedSection.create(...)
 | |
| 	if sid then
 | |
| 		luci.http.redirect(x.extedit % sid)
 | |
| 		return
 | |
| 	end
 | |
| end
 | |
| 
 | |
| o = x:option(DummyValue, "type", translate("Rule Type"))
 | |
| function o.cfgvalue(...)
 | |
| 	return Value.cfgvalue(...) or translate("None")
 | |
| end
 | |
| 
 | |
| o = x:option(DummyValue, "ipaaddr", translate("IP/Domain/Address/Keyword/Port"))
 | |
| function o.cfgvalue(...)
 | |
| 	return Value.cfgvalue(...) or translate("None")
 | |
| end
 | |
| 
 | |
| 
 | |
| o = x:option(DummyValue, "pgroup", translate("Policy Groups"))
 | |
| function o.cfgvalue(...)
 | |
| 	return Value.cfgvalue(...) or translate("None")
 | |
| end
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| return kk, m,w,y
 | 
![github-actions[bot]](/assets/img/avatar_default.png)