Module:Sandbox/Gabrielchihonglee

-- 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 .. ". " end

-- Lua task 5 function p.temperaturetask5(frame) cel = frame.args.celsius fah = cel / 5 + 32 return cel .. " degrees Celsius is " .. fah .. " degrees Fahrenheit. " 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. " else msg = msg .. " It is cold. " end return msg end

-- Lua task 7 p.times = function(frame) local num = tonumber( frame.args.num ) or 2 local out = num .. " times table " for i = 1, 12 do out = out .. num .. " times " .. i .. " equals " .. i * num .. " "	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] .. " "	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 .. " "		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