local lfs = require("lfs_ffi") local cjson = require("cjson") local utils = {} -- we want to list the contents of a dir function utils:dirlist( path ) local files, dirs, images, audio = {}, {}, {}, {} for file in lfs.dir( path ) do local filepath = path .. "/" .. file local attribute = lfs.attributes( filepath, "mode" ) or "nil" if file ~= "." and file ~= ".." and not string.match(file, ".filepart") then if lfs.attributes( filepath, "mode" ) == "file" then if utils:match_image( file ) then table.insert( images, file ) elseif utils:match_audio( file) then table.insert( audio, file ) else table.insert( files, file ) end elseif lfs.attributes( filepath, "mode" ) == "directory" then table.insert( dirs, file ) end end end table.sort( images ) table.sort( files ) table.sort( dirs ) table.sort( audio ) local stuff = { files = files, dirs = dirs, images = images, audio = audio } return stuff end -- open a json file and return the table function utils:opendata( path ) local data = io.open(path) if data then local data_file = data:read("a") data:close() local data_decode = cjson.decode(data_file) return data_decode else return nil end end return utils