<?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%2FRonnieV</id>
	<title>Module:Sandbox/RonnieV - 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%2FRonnieV"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/RonnieV&amp;action=history"/>
	<updated>2026-05-26T00:25:05Z</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/RonnieV&amp;diff=146132&amp;oldid=prev</id>
		<title>imported&gt;RonnieV: returning labels is nicer</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/RonnieV&amp;diff=146132&amp;oldid=prev"/>
		<updated>2020-05-18T23:00:31Z</updated>

		<summary type="html">&lt;p&gt;returning labels is nicer&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--this is a comment&lt;br /&gt;
-- Task 2&lt;br /&gt;
&lt;br /&gt;
p = {}  -- an empty table&lt;br /&gt;
&lt;br /&gt;
function p.CleverName(frame)&lt;br /&gt;
	return &amp;quot;Hello world.&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 6, mwLibraries&lt;br /&gt;
local function fallbacklangcount (langcode)&lt;br /&gt;
	local langslist = mw.language.getFallbacksFor(langcode)&lt;br /&gt;
	local count = 0&lt;br /&gt;
	for k, v in pairs(langslist) do&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
	return count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fallbackfindmost (frame)&lt;br /&gt;
	local langslist = mw.language.fetchLanguageNames()&lt;br /&gt;
	local langs = {}&lt;br /&gt;
	local max = 0&lt;br /&gt;
	for k, v in pairs(langslist) do&lt;br /&gt;
		local count = fallbacklangcount (k)&lt;br /&gt;
		if count &amp;gt; max then&lt;br /&gt;
			max = count&lt;br /&gt;
			langs = {}&lt;br /&gt;
			table.insert(langs, k)&lt;br /&gt;
		elseif count == max then&lt;br /&gt;
			table.insert(langs, k)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	out = table.getn(langs) .. &amp;quot; languages use &amp;quot; .. max .. &amp;quot; fallback languages:&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	for langCount = 1, table.getn(langs) do&lt;br /&gt;
		out = out .. langs[langCount] .. &amp;quot;:&amp;quot;&lt;br /&gt;
		local langslist2 = mw.language.getFallbacksFor(langs[langCount])&lt;br /&gt;
		for k, v in pairs(langslist2) do&lt;br /&gt;
			out = out .. &amp;quot; &amp;quot; .. v&lt;br /&gt;
		end	&lt;br /&gt;
		out = out .. &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.fallbacklangs (frame)&lt;br /&gt;
	local langcode = frame.args.langcode or &amp;quot;&amp;quot;&lt;br /&gt;
	local langslist = mw.language.getFallbacksFor(langcode)&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 langcode .. &amp;quot; has &amp;quot; .. count .. &amp;quot; fallback languages:&amp;lt;br&amp;gt;&amp;quot; .. out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.Hi = function(frame)&lt;br /&gt;
	strName = frame.args.name or &amp;quot;Jimbo&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 6, mwLibraries&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;
-- Task 6 - pginfo&lt;br /&gt;
p.pginfo = function( frame )&lt;br /&gt;
	local title = frame.args.title or &amp;quot;&amp;quot;&lt;br /&gt;
	if title == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;Please provide the title of the page to check as a named paramater &amp;#039;|title=&amp;lt;name&amp;gt;&amp;#039;.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local ttlobj = mw.title.new( title )&lt;br /&gt;
	local txt = ttlobj.text&lt;br /&gt;
	if ttlobj.exists then&lt;br /&gt;
		txt = txt .. &amp;quot; exists&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		txt = txt .. &amp;quot; does not exist&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if ttlobj.isRedirect then&lt;br /&gt;
		txt = txt .. &amp;quot; and is a redirect.&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		txt = txt .. &amp;quot; and is not a redirect.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return txt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 6 - pgtitle&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;
-- Task 5 - Lua libraries&lt;br /&gt;
function p.sent(frame)&lt;br /&gt;
	local txt = frame.args.text or &amp;quot;&amp;quot;&lt;br /&gt;
--	local out = txt&lt;br /&gt;
--	local out = string.sub(txt, 1, 1)&lt;br /&gt;
--	local out = string.sub(txt, 2)&lt;br /&gt;
	local out = string.upper(string.sub(txt, 1, 1)) .. string.sub(txt, 2)&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.Temperature(frame)&lt;br /&gt;
	cel = tonumber(frame.args.celsius) or 0&lt;br /&gt;
	fah = cel * 9 / 5 + 32&lt;br /&gt;
	if cel &amp;gt; 10 then&lt;br /&gt;
		msg = &amp;quot;. It is warm.&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		msg = &amp;quot;. It is quit cold.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;The temperature of &amp;quot; .. cel .. &amp;quot; degrees Celsius equals to &amp;quot; .. fah .. &amp;quot; degrees Fahrenheit.&amp;quot; .. msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 4 - Loops&lt;br /&gt;
p.Times = function(frame)&lt;br /&gt;
	local num = tonumber( frame.args.num ) or 2&lt;br /&gt;
	local out = num .. &amp;quot; times table&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	for i = 1, 10 do&lt;br /&gt;
		out = out .. i .. &amp;quot; times &amp;quot; .. num .. &amp;quot; gives &amp;quot; .. i * num .. &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;
-- Task 5 - Lua libraries&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.unpackAmerican(frame)&lt;br /&gt;
	local dmy = frame.args.dmydate or &amp;quot;&amp;quot;&lt;br /&gt;
	local m, d, y = string.match(dmy, &amp;quot;(%w+) (%d+), (%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;
-- Get date&lt;br /&gt;
function p.getdate(frame)&lt;br /&gt;
	local qid = frame.args.qid or &amp;quot;&amp;quot;&lt;br /&gt;
	local prop = frame.args.prop or &amp;quot;&amp;quot;&lt;br /&gt;
	if qid == &amp;quot;&amp;quot; or prop == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;Call this function with a qid and a prop, both being named parameters&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local valtbl = mw.wikibase.getBestStatements(qid, prop)&lt;br /&gt;
	local timestamp = valtbl[1].mainsnak.datavalue.value.time&lt;br /&gt;
	local y, m, d = string.match(timestamp, &amp;quot;(%d+)-(%d+)-(%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;
-- Get fulldate&lt;br /&gt;
function p.getfulldate(frame)&lt;br /&gt;
	local qid = frame.args.qid or &amp;quot;&amp;quot;&lt;br /&gt;
	local prop = frame.args.prop or &amp;quot;&amp;quot;&lt;br /&gt;
	if qid == &amp;quot;&amp;quot; or prop == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;Call this function with a qid and a prop, both being named parameters&amp;quot;&lt;br /&gt;
	end&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;
	local y, m, d = string.match(timestamp, &amp;quot;(%d+)-(%d+)-(%d+)&amp;quot;) &lt;br /&gt;
	out = d .. &amp;quot; &amp;quot; .. monthname[tonumber(m)] .. &amp;quot; &amp;quot; .. y&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getitem(frame)&lt;br /&gt;
	local qid = frame.args.qid or &amp;quot;&amp;quot;&lt;br /&gt;
	local prop = frame.args.prop or &amp;quot;&amp;quot;&lt;br /&gt;
	if qid == &amp;quot;&amp;quot; or prop == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;Call this function with a qid and a prop, both being named parameters&amp;quot;&lt;br /&gt;
	end&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 label = mw.wikibase.getLabel(id)&lt;br /&gt;
	return label&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;RonnieV</name></author>
	</entry>
</feed>