You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

210 lines
5.1 KiB

caption="EPGscan (Script-Plugin)"
C={}
C["my_bouquets"]=""
C["wait_period"]=15
C["del_epgstore"]=1
C["need_standby"]=0
C["rezap_hack"]=0
C["pr_auto_timer"]=0
C["force_standby"]=0
C["force_shutdown"]=0
config="/var/tuxbox/config/EPGscan.conf"
changed = 0
n = neutrino()
-- ---------------------------------------------------------------------------
function trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
function load()
local f = io.open(config, "r")
if f then
for line in f:lines() do
local key, val = line:match("^([^=#]+)=([^\n]*)")
if (key) then
if (val == nil) then
val=""
end
C[trim(key)]=trim(val)
end
end
f:close()
end
end
function save()
if (changed == 1) then
changed = 0
local h = hintbox.new{caption="Einstellungen werden gespeichert", text="Bitte warten ..."}
h:paint()
local f = io.open(config, "w")
if f then
f:write("my_bouquets=" .. C["my_bouquets"] .. "\n")
f:write("wait_period=" .. C["wait_period"] .. "\n")
f:write("del_epgstore=" .. C["del_epgstore"] .. "\n")
f:write("need_standby=" .. C["need_standby"] .. "\n")
f:write("rezap_hack=" .. C["rezap_hack"] .. "\n")
f:write("pr_auto_timer=" .. C["pr_auto_timer"] .. "\n")
f:write("force_standby=" .. C["force_standby"] .. "\n")
f:write("force_shutdown=" .. C["force_shutdown"] .. "\n")
f:close()
local i = 0
repeat
i = i + 1
msg, data = n:GetInput(500)
until msg == RC.ok or msg == RC.home or i == 2
end
h:hide()
end
end
function handle_key(a)
if (changed == 0) then
return MENU_RETURN["EXIT"]
end
local res = messagebox.exec{title="Änderungen verwerfen?", text="Sollen die Änderungen verworfen werden?", buttons={ "yes", "no" } }
if (res == "yes") then
return MENU_RETURN["EXIT"]
else
return MENU_RETURN["REPAINT"]
end
end
on="ein"
off="aus"
function num2onoff(a)
if (tonumber(a) == 0) then
return off
else
return on
end
end
function onoff2num(a)
if (a == on) then
return 1
else
return 0
end
end
function set_onoff(k, v)
C[k]=onoff2num(v)
changed=1
end
yes="ja"
no="nein"
function num2yesno(a)
if (tonumber(a) == 0) then
return no
else
return yes
end
end
function yesno2num(a)
if (a == yes) then
return 1
else
return 0
end
end
function set_yesno(k, v)
C[k]=yesno2num(v)
changed=1
end
function set_string(k, v)
C[k]=v
changed=1
end
function set_quoted_string(k, v)
C[k]="\""..v.."\""
changed=1
end
function get_quoted_string(s)
return string.gsub(s, "\"", "")
end
-- ---------------------------------------------------------------------------
load()
-- force_shutdown start
table_force_shutdown = {
{ value = "0", desc = "nein" },
{ value = "1", desc = "Shutdown" },
{ value = "2", desc = "Reboot"}
}
-- values_force_shutdown = {}
descs_force_shutdown = {}
for v, w in ipairs(table_force_shutdown) do
-- values_force_shutdown[v] = w.value
descs_force_shutdown[v] = w.desc
end
function set_force_shutdown(k, v)
local __v
for _v, _w in ipairs(table_force_shutdown) do
if (_w.desc == v) then
__v = _w.value
break
end
end
C[k]=__v
changed=1
end
function get_desc_from_table(t, v)
local __d = ""
for _v, _w in ipairs(t) do
if (_w.value == v) then
__d = _w.desc
break
end
end
return __d
end
-- force_shutdown end
local m = menu.new{name=caption, icon="settings"}
m:addKey{directkey=RC["home"], id="home", action="handle_key"}
m:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
m:addItem{type="separator"}
m:addItem{type="back"}
m:addItem{type="separatorline"}
m:addItem{type="forwarder", name="Speichern", action="save", icon="rot", directkey=RC["red"]}
m:addItem{type="separatorline"}
m:addItem{type="keyboardinput", action="set_quoted_string", id="my_bouquets", value=get_quoted_string(C["my_bouquets"]), name="Bouquets", help="Die Bouquets, die bei der Suche berücksichtigt werden sollen", help2="Kommagetrennt: Bouquet1, Bouquet2, ..."}
m:addItem{type="stringinput", action="set_string", id="wait_period", value=C["wait_period"], valid_chars="0123456789", name="Wartezeit pro Sender (in sek.)"}
m:addItem{type="separatorline", name="Vor dem EPGscan"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="del_epgstore", value=num2yesno(C["del_epgstore"]), name="Lösche gespeicherte EPG-Daten"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="need_standby", value=num2yesno(C["need_standby"]), name="Nur im Standby starten"}
m:addItem{type="separatorline", name="Nach dem EPGscan"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="rezap_hack", value=num2yesno(C["rezap_hack"]), name="Mit 'rcsim' zurück zappen"}
m:addItem{type="chooser", action="set_onoff", options={ on, off }, id="pr_auto_timer", value=num2onoff(C["pr_auto_timer"]), name="Auto Timer starten"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="force_standby", value=num2yesno(C["force_standby"]), name="Standby"}
m:addItem{
type = "chooser",
action = "set_force_shutdown",
options = descs_force_shutdown,
id = "force_shutdown",
value = get_desc_from_table(table_force_shutdown, C["force_shutdown"]),
name = "Shutdown oder Reboot"
}
m:exec()