Module:Sandbox

local p = {}

function p.outputItemList(frame) local data = mw.text.jsonDecode(mw.text.decode(frame.args['1'])) local itemList = "" for k, item in pairs(data) do       itemList = itemList .. item['link'] itemList = itemList .. '\n' end return itemList end

function isEmpty(s) return s == nil or s == '' end

local function getArgs(frame) local args = {} for key, value in pairs(frame:getParent.args) do       args[key] = value end for key, value in pairs(frame.args) do       args[key] = value end return args end

function p.main(frame) local args     = getArgs(frame) local seconds  = args[1] or args.seconds or '' return p.timeFormat(seconds) end

-- Function from StackOverflow https://stackoverflow.com/questions/18313171/lua-rounding-numbers-and-then-truncate function round(number) return number - (number % 1) end

function p.timeFormat(seconds) local hours = round(seconds / 3600) local minutes = round((seconds % 3600) / 60) local secs = round((seconds % 3600) % 60) local print = "" if hours > 0 then print = print .. hours .. " hour" if hours > 1 then print = print .. "s" end if minutes > 0 then if secs > 0 then print = print .. ", " .. minutes .. " minute" if minutes > 1 then print = print .. "s" end print = print .. ", and " .. secs .. " second" if secs > 1 then print = print .. "s" end else print = print .. " and " .. minutes .. " minute" if minutes > 1 then print = print .. "s" end end elseif secs > 0 then print = print .. " and " .. secs .. " second" if secs > 1 then print = print .. "s" end end elseif minutes > 0 then print = print .. minutes .. " minute" if minutes > 1 then print = print .. "s" end if secs > 0 then print = print .. " and " .. secs .. " second" if secs > 1 then print = print .. "s" end end elseif secs > 0 then print = print .. secs .. " second" if secs > 1 then print = print .. "s" end end return print end return p