<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FDavNvro</id>
	<title>Module:Sandbox/DavNvro - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FDavNvro"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/DavNvro&amp;action=history"/>
	<updated>2026-06-19T06:15:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/DavNvro&amp;diff=145314&amp;oldid=prev</id>
		<title>imported&gt;DavNvro: Separate error message is returned when title is invalid for task #6</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/DavNvro&amp;diff=145314&amp;oldid=prev"/>
		<updated>2019-12-30T21:41:48Z</updated>

		<summary type="html">&lt;p&gt;Separate error message is returned when title is invalid for task #6&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- DavNvro, Google Code-in 2019, Introduction to Lua in Wikipedia&lt;br /&gt;
&lt;br /&gt;
-- Task #2: Working with modules&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.hello(frame)&lt;br /&gt;
	return &amp;quot;Hello, world!&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.Hi = function(frame)&lt;br /&gt;
	strName = frame.args.name or &amp;quot;Jimmy&amp;quot;&lt;br /&gt;
	return &amp;quot;Hello from Lua to my friend &amp;quot; .. strName .. &amp;quot;.&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task #3: Calculations and tests&lt;br /&gt;
&lt;br /&gt;
p.converttemp = function(frame)&lt;br /&gt;
	local cels = tonumber(frame.args.celsius) or 0&lt;br /&gt;
	local fahr = ((cels * 9) / 5) + 32&lt;br /&gt;
	local msg = cels..&amp;quot; degrees Celsius is &amp;quot;..fahr..&amp;quot; degrees Fahrenheit.&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if (cels &amp;gt; 9) then&lt;br /&gt;
		msg = msg..&amp;quot; It is warm.&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		msg = msg..&amp;quot; It is cold.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task #4: Loops and tables&lt;br /&gt;
&lt;br /&gt;
function p.timestable(frame)&lt;br /&gt;
	local numb = tonumber( frame.args.numb ) or 2&lt;br /&gt;
	local out = numb..&amp;quot; times table&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	for i = 1, 12 do&lt;br /&gt;
		out = out..numb..&amp;quot; times &amp;quot;..i..&amp;quot; is equal to &amp;quot;..i * numb..&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.people(frame)&lt;br /&gt;
	local friends = {&amp;quot;Agnetha&amp;quot;, &amp;quot;Betty&amp;quot;, &amp;quot;Carlos&amp;quot;, &amp;quot;Davinder&amp;quot;, &amp;quot;Eloise&amp;quot;, &amp;quot;Bob&amp;quot;, &amp;quot;Robbie&amp;quot;, &amp;quot;Tim&amp;quot;}&lt;br /&gt;
	local msg = &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	for i = 1, #friends do&lt;br /&gt;
		msg = msg .. &amp;quot;Hello &amp;quot; .. friends[i] .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task #5: Lua libraries&lt;br /&gt;
&lt;br /&gt;
function p.sent(frame)&lt;br /&gt;
	local txt = frame.args.text or &amp;quot;&amp;quot;&lt;br /&gt;
	return string.upper(string.sub(txt, 1, 1))..string.sub(txt, 2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.unpack(frame)&lt;br /&gt;
	local dmy = frame.args.dmydate or &amp;quot;&amp;quot;&lt;br /&gt;
	local d, m, y = string.match(dmy, &amp;quot;(%d+) (%w+) (%d+)&amp;quot;)&lt;br /&gt;
	return &amp;quot;Year = &amp;quot; .. y .. &amp;quot;&amp;lt;br&amp;gt;Day = &amp;quot; .. d .. &amp;quot;&amp;lt;br&amp;gt;Month = &amp;quot; .. m&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task #6: MediaWiki libraries&lt;br /&gt;
&lt;br /&gt;
function p.langs(frame)&lt;br /&gt;
	local langslist = mw.language.fetchLanguageNames()&lt;br /&gt;
	local out = &amp;quot;&amp;quot;&lt;br /&gt;
	local count = 0&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(langslist) do&lt;br /&gt;
		out = out .. k .. &amp;quot; - &amp;quot; .. v .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return out .. &amp;quot;&amp;lt;br&amp;gt;= &amp;quot; .. count .. &amp;quot; languages&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fallbacklangs(frame)&lt;br /&gt;
	local lang = frame.args.langcode or &amp;quot;en&amp;quot;;&lt;br /&gt;
	local fallbacks = mw.language.getFallbacksFor(lang);&lt;br /&gt;
	local out = &amp;quot;&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	for i = 1, #fallbacks do&lt;br /&gt;
		local fallbackLang = fallbacks[i]&lt;br /&gt;
		out = out..fallbackLang..&amp;quot; - &amp;quot;..mw.language.fetchLanguageName(fallbackLang, fallbackLang)..&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	out = &amp;quot;Language fallbacks for &amp;quot;..mw.language.fetchLanguageName(lang, &amp;quot;en&amp;quot;)..&amp;quot; (&amp;quot;..mw.language.fetchLanguageName(lang, lang)..&amp;quot;) are: &amp;lt;br/&amp;gt;&amp;quot;..out&lt;br /&gt;
	&lt;br /&gt;
	return out..&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.pgtitle = function( frame )&lt;br /&gt;
	local title = frame.args.title&lt;br /&gt;
	local ttlobj = mw.title.new( title )&lt;br /&gt;
	local txt = ttlobj.text&lt;br /&gt;
&lt;br /&gt;
	return txt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.pginfo(frame)&lt;br /&gt;
	local pageTitle = frame.args.title or &amp;quot;&amp;quot;&lt;br /&gt;
	local page = mw.title.new(pageTitle)&lt;br /&gt;
	&lt;br /&gt;
	if page == nil then&lt;br /&gt;
		return &amp;quot;invalid title&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local out = page.text..&amp;quot; &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if page.exists then&lt;br /&gt;
		out = out..&amp;quot;exists &amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		out = out..&amp;quot;does not exist &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	out = out..&amp;quot;and is &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if not page.isRedirect then&lt;br /&gt;
		out = out..&amp;quot;not &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	out = out..&amp;quot;a redirect&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;DavNvro</name></author>
	</entry>
</feed>