summaryrefslogtreecommitdiff
path: root/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'main.lua')
-rw-r--r--main.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/main.lua b/main.lua
index 8e8f3e1..7a6f51d 100644
--- a/main.lua
+++ b/main.lua
@@ -30,11 +30,21 @@ local key_bindings = {}
local function load_json_file(path)
local f = io.open(script_dir .. '/' .. path, 'r')
+ if not f then
+ return {}
+ end
local data = f:read('*all')
f:close()
return utils.parse_json(data)
end
+local function save_json_file(path, d)
+ local data = utils.format_json(d)
+ local f = io.open(script_dir .. '/' .. path, 'w')
+ f:write(data, '\n')
+ f:close()
+end
+
local function load_data()
categories = load_json_file('categories.json')
for _, v in ipairs(categories) do
@@ -46,6 +56,13 @@ local function load_data()
for _, v in ipairs(streams) do
v.type = 'stream'
end
+
+ favourites = load_json_file('favourites.json')
+ -- json loading/dumping breaks when the table is empty, so we need a
+ -- dummy value to prevent that
+ if next(favourites) == nil then
+ favourites = {oi=true}
+ end
end
local function osd_menu_lines()
@@ -261,6 +278,7 @@ local function favourite_option()
favourites[key] = true
end
+ save_json_file('favourites.json', favourites)
update_osd()
end