From 8311b63c802aaca17f834a57aea8961781186d3e Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Thu, 8 May 2025 22:59:29 -0700 Subject: persist favourites to file --- main.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 -- cgit v1.2.3-70-g09d2