Module:Sandbox/Gabrielchihonglee

Revision as of 23:50, 11 January 2018 by imported>Gabrielchl
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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