Documentation for this module may be created at Module:Sandbox/Gabrielchihonglee/doc
-- Lua task 1
-- Google Code-in 2017, Introduction to Lua in Wikipedia
local p = {} -- p stands for package
-- Lua task 3
function p.hello( frame )
return "Hello, world!"
end
-- Lua task 4
p.Hi = function(frame)
strName = frame.args.name or "Jimbo"
return "Hello from Lua to my friend " .. strName .. ".<br>"
end
-- Lua task 5
function p.temperaturetask5(frame)
cel = frame.args.celsius
fah = cel / 5 + 32
return cel .. " degrees Celsius is " .. fah .. " degrees Fahrenheit.<br>"
end
-- Lua task 6
function p.temperaturetask6(frame)
cel = tonumber(frame.args.celsius) or 0
fah = cel / 5 + 32
msg = cel .. " degrees Celsius is " .. fah .. " adegrees Fahrenheit."
if cel > 9 then
msg = msg .. " It is warm.<br>"
else
msg = msg .. " It is cold.<br>"
end
return msg
end
-- Lua task 7
p.times = function(frame)
local num = tonumber( frame.args.num ) or 2
local out = num .. " times table<br>"
for i = 1, 12 do
out = out .. num .. " times " .. i .. " equals " .. i * num .. "<br>"
end
return out
end
-- Lua task 8
p.mum = function(frame)
local family = {"Dad", "Mum", "Uncle Stan", "Aunty Elsie", "Brian", "Gabriel", "Someone", "Onemore"}
local msg = ""
for i = 1, #family do
msg = msg .. "Hello " .. family[i] .. "<br>"
end
return msg
end
-- OTHER TESTS NOT GCI
p.username = function(frame)
local info = mw.uri.new( userInfo )
return info
end
-- Lua task 9
p.langnames = function( frame )
local langs = mw.language.fetchLanguageNames()
local langlist = ""
local count = 0
for key, value in pairs( langs ) do
langlist = langlist .. key .. " - " .. value .. "<br>"
count = count + 1
end
return langlist .. "= " .. count .. " languages"
end
p.task9 = function(frame)
local exists = " exists "
local redirect = " and is not a redirect"
local page = frame.args.page or "NOINPUT"
local title = mw.title.new( page )
if title.id == 0 then
exists = " does not exist "
end
if title.isRedirect == true then
redirect = " and is a redirect"
end
if page == "NOINPUT" then
return "No page name specified, please specify page name by adding parameter 'page'."
else
return page .. exists .. redirect
end
end
return p