imported>Yajnvb No edit summary |
(No difference)
|
Latest revision as of 01:36, 9 January 2018
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