Module:Sandbox/Yajnvb

Revision as of 01:36, 9 January 2018 by imported>Yajnvb
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Sandbox/Yajnvb/doc

--Yajnvb Google Code-in 2017, Introduction to Lua in Wikipedia.
--[Lua task #03] Create your own Lua module on English Wikipedia ( Wikimedia )

local p = {} -- p stands for package

-- Task 3
function p.hello( frame )
    return "Hello, world!"
end

-- Task 4
p.Hi = function(frame)
	strName = frame.args.name or "Jimbo"
	return "Hello from Lua to my friend " .. strName .. ".<br>"
end

-- Task 5 and 6
p.temperature = function(frame)
	cel = tonumber(frame.args.celsius) or 0
	fah = ((cel*9) / 5) + 32
	msg = cel.." degrees celsius is " .. fah .. " degrees farenheit."
	if cel > 9 then 
		msg = msg.." It is warm."
	else 
		msg = msg.." It is cold."
	end
	return msg
end

--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

--Task 8
p.mum = function(frame)
	local family = {"Dad", "Mum", "Uncle Stan", "Aunty Elsie", "Brian", "John", "Smith", "Emma"}
	local msg = ""
	for i = 1, #family do
		msg = msg .. "Hello " .. family[i] .. "<br>"
	end
	return msg
end

--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 .. "<br>= " .. count .. " languages"
end

p.pageinfo = function( frame )
	local ttl = frame.args.title
	if ttl == nil then
		msg = "<br>".."Empty string (nil) is invalid title for a page"
	else
		local ttlobj = mw.title.new( ttl )
		local page_exists = ttlobj.exists
		if page_exists == false then 
			msg = "<br>"..ttl.." does not exist and is not a redirect."
		else
			local isRedirect = ttlobj.isRedirect
			if isRedirect == true then
				msg = "<br>"..ttl.." exists and is a redirect."
			else
				msg = "<br>"..ttl.." exists and is not a redirect."
			end
		end
	end
	
	return msg
end

return p