75 lines
2.0 KiB
Lua
75 lines
2.0 KiB
Lua
module("luci.controller.api", package.seeall)
|
|
|
|
http = require "luci.http"
|
|
fs = require "nixio.fs"
|
|
uci = require "luci.model.uci".cursor()
|
|
json = require "luci.jsonc"
|
|
|
|
function index()
|
|
entry({"api", "get"}, call("get_theme"), nil, 10)
|
|
entry({"api", "set"}, call("set_theme"), nil, 20)
|
|
end
|
|
|
|
function get_theme()
|
|
local kucat = nil
|
|
local config_exists = false
|
|
local bgqs = "1"
|
|
local primaryrgbm = "45,102,147"
|
|
local primaryrgbmts = "0"
|
|
local mode = "auto"
|
|
|
|
if fs.access("/etc/config/advancedplus") then
|
|
kucat = "advancedplus"
|
|
config_exists = true
|
|
elseif fs.access("/etc/config/kucat") then
|
|
kucat = "kucat"
|
|
config_exists = true
|
|
end
|
|
|
|
if config_exists then
|
|
local ku = uci:get_all(kucat, "@basic[0]") or {}
|
|
bgqs = ku.bgqs or bgqs
|
|
primaryrgbm = ku.primary_rgbm or primaryrgbm
|
|
primaryrgbmts = ku.primary_rgbm_ts or primaryrgbmts
|
|
mode = ku.mode or mode
|
|
end
|
|
|
|
http.prepare_content("application/json")
|
|
http.write_json({
|
|
success = config_exists,
|
|
bgqs = bgqs,
|
|
primaryrgbm = primaryrgbm,
|
|
primaryrgbmts = primaryrgbmts,
|
|
mode = mode
|
|
})
|
|
end
|
|
|
|
function set_theme()
|
|
local kucat = nil
|
|
local config_exists = false
|
|
local theme = http.formvalue("theme")
|
|
if fs.access("/etc/config/advancedplus") then
|
|
kucat = 'advancedplus'
|
|
config_exists = true
|
|
elseif fs.access("/etc/config/kucat") then
|
|
kucat = 'kucat'
|
|
config_exists = true
|
|
end
|
|
if (config_exists) then
|
|
local esc_kucat = "'" .. kucat:gsub("'", "'\\''") .. "'"
|
|
local esc_theme = "'" .. theme:gsub("'", "'\\''") .. "'"
|
|
|
|
os.execute(string.format(
|
|
"uci set %s.@basic[0].mode=%s && uci commit %s",
|
|
kucat, esc_theme, kucat
|
|
))
|
|
uci:set(kucat, "@basic[0]", "mode", theme)
|
|
uci:commit(kucat)
|
|
http.prepare_content("application/json")
|
|
http.write_json({ success = true })
|
|
else
|
|
http.prepare_content("application/json")
|
|
http.write_json({ success = false })
|
|
end
|
|
end
|