diff options
Diffstat (limited to 'main.lua')
-rw-r--r-- | main.lua | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -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 |