Documentation for this module may be created at Module:Sandbox/doc
local M = {}
function M.hello(F)
local whom = F.args[1]
if whom == nil then return 'Hi!' end
return [[Hello, ]] .. whom .. '!'
end
function M:fizzbuzz()
local r = ''
for i = 1, 100 do
local s = ''
if i % 3 == 0 then
s = s .. 'Fizz'
end
if i % 5 == 0 then
s = s .. 'Buzz'
end
if s == '' then
s = s .. i
end
r = r .. s .. "\n"
end
return r
end
local members = mw.loadData [[Module:Sandbox/data]]
members = mw.text.jsonDecode(
(mw.ext.externaldata.getWebData({
url = "https://tildeverse.org/members.json",
data = "data=data",
regex = "/(?'data'[\\s\\S]*)/",
format = 'text'
}))[1]['data']).members
local function as_date(d)
local year, month, day = string.match(d,
[[(%d+)-(%d+)-(%d+)T]])
local t = os.time{ year = year, month = month, day = day}
return os.date("%B %e, %Y", t)
end
local function admins(a)
local t = {}
for _, v in ipairs(a) do
table.insert(t, '[' .. v[2] .. ' ' .. v[1] .. ']')
end
return table.concat(t, ', ')
end
M.list = function()
local tbl = [=[
{|class="wikitable"|
! Name
! Description
! Created
! Sysadmins
! OS
! [[tilde.chat]] channel
! Link]=]
for _, v in ipairs(members) do
local s = "|-\n| " .. table.concat({
v.name,
v.description,
as_date(v.created),
admins(v.sysadmins),
v.os,
v.channel,
v.link
}, "\n| ")
tbl = tbl .. "\n" .. s
end
tbl = tbl .. "\n|}"
return tbl
end
return M