Files
openwrt_packages/luci-theme-kucat/luasrc/controller/api.lua
2025-11-02 14:26:26 +08:00

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