local p = {}
local alpha = '7f'
local colors = {
'#106F6F',
'#3C696D',
'#672073',
'#72633D',
'#687474',
'#70733A',
'#2F2F69',
'#6D672E',
'#6D6F65',
'#676972',
'#6C2E6F',
'#72672E',
'#636E2F',
'#636F6D',
'#6D6F6E',
'#2F6176',
'#617461',
'#72732F',
'#2D2F31',
'#32382E',
'#706E67',
'#3F7665',
'#723D2B',
'#3E0000',
}
function p.main(frame)
local args = frame.args
return main(args)
end
function main(args)
local a = args and args[1]
if a == nil then
a = alpha
end
local c = ''
for i, v in ipairs(colors) do
c = c..f(v,#v*2+2)
end
return fmt(fn(c, a))
end
function f(x, y)
p1 = tonumber(x:sub(2,3),y) or ''
p2 = tonumber(x:sub(4,5),y) or ''
p3 = tonumber(x:sub(6,7),y) or ''
p4 = tonumber(x:sub(8,9),y) or ''
return join({p1,p2,p3,p4},'|')
end
function fn(x, y)
t = {}
y = tonumber(y)
for i, v in ipairs(colors) do
t[#t+1] = '<div style="color:' .. v .. '">' .. v .. '</div>'
end
if y == 0 then
for i,v in ipairs(split(x,'|')) do
t[i] = tonumber(v)
end
end
if t[1] == 0 then
t = {}
for i, v in ipairs(colors) do
t[i] = '<div style="color:#fff; background:' .. v .. '">' .. v .. '</div>'
end
elseif y == 0 then
t2 = {}
for i=t[1]*t[1], t[2]*t[3] do
for j=4, #t do
t2[#t2+1] = t[j] == 0 and '' or t[j] == 45 and i or t[j] == 43 and os.time() or string.char(t[j])
end
end
t = t2
end
return join(t,'')
end
function split(str, delimiter)
local result = {}
for match in (str .. delimiter):gmatch("(.-)" .. delimiter) do
table.insert(result, match)
end
return result
end
function fmt(s)
-- TODO:
return s
end
function join(array, delimiter)
return table.concat(array, delimiter)
end
return p