<?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%2FUserring</id>
	<title>Module:Sandbox/Userring - 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%2FUserring"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Userring&amp;action=history"/>
	<updated>2026-05-26T13:34:22Z</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/Userring&amp;diff=146363&amp;oldid=prev</id>
		<title>imported&gt;Userring at 14:14, 27 December 2019</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Userring&amp;diff=146363&amp;oldid=prev"/>
		<updated>2019-12-27T14:14:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--Userring Google Code-in 2019, Introduction to Lua in Wikipedia&lt;br /&gt;
--Lua 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;
function p.converttemp(frame)&lt;br /&gt;
	cels = tonumber(frame.args.celsius) or 0&lt;br /&gt;
	fahr = ((cels * 9)/5) + 32&lt;br /&gt;
	msg = &amp;quot;&amp;quot;.. cels ..&amp;quot; degrees Celsius is &amp;quot;.. fahr ..&amp;quot; in degrees Fahrenheit.&amp;quot;&lt;br /&gt;
	if cels &amp;gt; 9 then&lt;br /&gt;
		msg2 = &amp;quot;It is warm.&amp;quot;&lt;br /&gt;
	else &lt;br /&gt;
		msg2 = &amp;quot;It is cold.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	msg = msg .. msg2&lt;br /&gt;
	return msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 4&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;
	for i = 1, 12 do&lt;br /&gt;
		currentout = i * numb&lt;br /&gt;
		currentmsg = numb .. &amp;quot; times by &amp;quot; .. i .. &amp;quot; equals &amp;quot; .. currentout&lt;br /&gt;
		out = out .. currentmsg .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	end&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;Name&amp;quot;, &amp;quot;Namer&amp;quot;, &amp;quot;Naming&amp;quot;}&lt;br /&gt;
	local msg = &amp;quot;The index iterating way:&amp;quot; .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&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;
	msg = msg .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot; .. &amp;quot;The ipairs() way: &amp;quot; .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	for i, friend in ipairs(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;
	return msg&lt;br /&gt;
end&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;
	local cap = string.upper(string.sub(txt, 1, 1))&lt;br /&gt;
	local uncap = string.sub(txt, 2)&lt;br /&gt;
	local out = cap .. uncap&lt;br /&gt;
	return out&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;
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;
	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;
	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 fallbacklangcode = frame.args.langcode&lt;br /&gt;
	local fallbacklanglist = mw.language.getFallbacksFor(fallbacklangcode)&lt;br /&gt;
	local fallbackout = &amp;quot;&amp;quot;&lt;br /&gt;
	for a, b in pairs(fallbacklanglist) do&lt;br /&gt;
		fallbackout = fallbackout .. a ..&amp;quot; - &amp;quot; .. b .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return fallbackout&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;
	return txt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.pginfo(frame)&lt;br /&gt;
	local title = frame.args.title or &amp;quot;User:Userring&amp;quot; &lt;br /&gt;
	if title == nil or title == &amp;quot;&amp;quot; then&lt;br /&gt;
		title = &amp;quot;User:Userring&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local ttlobj = mw.title.new(title)&lt;br /&gt;
	if ttlobj == nil or ttlobj == &amp;quot;&amp;quot; then&lt;br /&gt;
		ttlobj = mw.title.new(&amp;quot;User:Userring&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local txt = ttlobj.text&lt;br /&gt;
	local ex = ttlobj.exists&lt;br /&gt;
	local isr = ttlobj.isRedirect&lt;br /&gt;
	exout = &amp;quot; does not exist&amp;quot;&lt;br /&gt;
	isrout = &amp;quot; and is not a redirect&amp;quot;&lt;br /&gt;
	if ex == true then&lt;br /&gt;
		exout = &amp;quot; does exist&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if isr == true then&lt;br /&gt;
		isrout = &amp;quot; and is a redirect&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return txt .. exout .. isrout&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get date&lt;br /&gt;
&lt;br /&gt;
function p.getdate(frame)&lt;br /&gt;
	local qid = frame.args.qid&lt;br /&gt;
	local prop = frame.args.prop&lt;br /&gt;
	local valtbl = mw.wikibase.getBestStatements(qid, prop)&lt;br /&gt;
	local timestamp = valtbl[1].mainsnak.datavalue.value.time&lt;br /&gt;
	timestamp = string.sub(timestamp, 2, 11)&lt;br /&gt;
	return timestamp&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getfulldate(frame)&lt;br /&gt;
	local qid = frame.args.qid&lt;br /&gt;
	local prop = frame.args.prop&lt;br /&gt;
	local monthname = { &amp;quot;January&amp;quot;, &amp;quot;February&amp;quot;, &amp;quot;March&amp;quot;, &amp;quot;April&amp;quot;, &amp;quot;May&amp;quot;, &amp;quot;June&amp;quot;, &amp;quot;July&amp;quot;, &amp;quot;August&amp;quot;, &amp;quot;September&amp;quot;, &amp;quot;October&amp;quot;, &amp;quot;November&amp;quot;, &amp;quot;December&amp;quot; }&lt;br /&gt;
	local valtbl = mw.wikibase.getBestStatements(qid, prop)&lt;br /&gt;
	local timestamp = valtbl[1].mainsnak.datavalue.value.time&lt;br /&gt;
	timestamp = string.sub(timestamp, 2, 11)&lt;br /&gt;
	local year = string.sub(timestamp, 1, 4)&lt;br /&gt;
	local month = monthname[tonumber(string.sub(timestamp, 6, 7))]&lt;br /&gt;
	local day = string.sub(timestamp, 9, 10)&lt;br /&gt;
	return day ..&amp;quot; &amp;quot;.. month .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getitem(frame)&lt;br /&gt;
	local qid = frame.args.qid&lt;br /&gt;
	local prop = frame.args.prop&lt;br /&gt;
	local valtbl = mw.wikibase.getBestStatements(qid, prop)&lt;br /&gt;
	local id = valtbl[1].mainsnak.datavalue.value.id&lt;br /&gt;
	local id_in_words = mw.wikibase.getLabel(id)&lt;br /&gt;
	return id_in_words&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Userring</name></author>
	</entry>
</feed>