Jump to content

Module:Sandbox/Subscriptshoe9

From Wikipedia, the free encyclopedia
--Subscriptshoe9 Google Code-in 2019, Introduction to Lua in Wikipedia

local p = {}

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


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



--Task 3
function p.converttemp( frame )
	       cels = tonumber( frame.args.celsius ) or 0
           fahr = cels * 9 /5 +32
           msg  = cels.." degrees Celsius is "
	       msg  = msg.. fahr.. " degrees Fahrenheit.<br>"
    if     cels > 9 
    then   msg  = msg.." it is warm."
    else   msg  = msg.." it is cold."
    end
    return msg
    
end



--Task 4
function p.timestable(frame)
	local  numb = tonumber( frame.args.numb ) or 2
	local  out  = numb.. " Times table<br>"
	for    i    = 1, 12 do
		   out  = out..numb .. " times " ..i.. " is equal to " ..i * numb.. ".<br>"
 	end
 	return out
 	
end


function p.people(frame)
	local  friends = {"Agnetha", "Betty", "Carlos", "Davinder", "Eloise", "James", "Emily", "Cindy", "Eleni"}
	local  msg     = ""
	for    i       = 1,#friends do  
	       msg     = msg .. "Hello " .. friends[i] .. "<br>"
	end
	return msg
	
end



--Task 5
function p.sent(frame)
    local  txt = frame.args.text or ""
    local  out = string.upper(string.sub(txt, 1, 1))..string.sub(txt, 2)
    return out
  
end


function p.unpack(frame)
	local dmy = frame.args.dmydate or ""
	local d, m, y = string.match(dmy, "(%d+) (%w+) (%d+)")
	return "Year = " .. y .. "<br>Day = " .. d .. "<br>Month = " .. m
	
end



--Task 6
function p.langs(frame)
	local langslist = mw.language.fetchLanguageNames()
	local out = ""
	local count = 0
	for k, v in pairs(langslist) do
		out = out .. k .. " - " .. v .. "<br>"
		count = count + 1
	end
	return out .. "<br>= " .. count .. " languages"
	
end


function p.fallbacklangs(frame)
	local code = frame.args.langcode or "zh"
	local answer = mw.language.getFallbacksFor(code)
	local out = ""
	for a, b in pairs(answer) do
		out = out .. a .. " --> " .. b .. "</br>"
	end
	return "Code = " .. code .. "</br>" ..out
	
end


p.pgtitle = function( frame )
	local title = frame.args.title
	local ttlobj = mw.title.new( title )
	local txt = ttlobj.text
	return txt
	
end


function p.pginfo(frame)
	local out = ""
    local title  =  frame.args.title
    local pginfo =  mw.title.new( title )
    if    pginfo == nil
    then return "The Page Name is invalid.(頁面標題係為無效值。)"

    end
    
    if    pginfo.text ~= title
    then  out     = out.." does not exist and is not a redirect.(頁面並不存在亦非重定向頁面。)"
    return "The page you want to enter"..out

    end
    
    if      pginfo.exists     == false
    then    out                = out.. " does not exist and is not a redirect.(頁面並不存在亦非重定向頁面。)"
    else if pginfo.isRedirect == true
    then    out                = out.." exists and is a redirect.(頁面存在且為重定向頁面。)"
	else    out                = out.." exists and is not a redirect.(頁面存在但非重定向頁面。)"

    end
    end
    return title..out
    
end

    	
return p