<?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%2FAjuanca</id>
	<title>Module:Sandbox/Ajuanca - 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%2FAjuanca"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Ajuanca&amp;action=history"/>
	<updated>2026-05-01T01:58:37Z</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/Ajuanca&amp;diff=145088&amp;oldid=prev</id>
		<title>imported&gt;Ajuanca: Testing</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Ajuanca&amp;diff=145088&amp;oldid=prev"/>
		<updated>2020-01-23T18:12:00Z</updated>

		<summary type="html">&lt;p&gt;Testing&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Ajuanca Google Code-in 2019, Introduction to Lua in Wikipedia.&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;
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;
	kelvin = cels + 273.15&lt;br /&gt;
	str = cels .. &amp;quot; degrees Celsius is &amp;quot; .. fahr .. &amp;quot; degrees Fahrenheit.&amp;quot;&lt;br /&gt;
	str = str .. &amp;quot; That&amp;#039;s the same as say &amp;quot; .. kelvin .. &amp;quot; Kelvin.&amp;quot;&lt;br /&gt;
	if cels &amp;gt; 9 then str = str .. &amp;quot; It is warm.&amp;quot; elseif cels &amp;lt; 9 then str = str .. &amp;quot; It is cold.&amp;quot; else str = str .. &amp;quot; It isn&amp;#039;t neither warm nor cold.&amp;quot; end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 4&lt;br /&gt;
-- Timestable function&lt;br /&gt;
function p.timestable(frame)&lt;br /&gt;
	local random = math.random(-12, 12)&lt;br /&gt;
	local numb = tonumber( frame.args.numb ) or random&lt;br /&gt;
	local out = &amp;quot;&amp;lt;h4&amp;gt; The &amp;quot; .. numb .. &amp;quot; times table. &amp;lt;/h4&amp;gt;&amp;quot;&lt;br /&gt;
	out = out .. &amp;quot;When no number is given or no parameter is sended, the default value is used. Instead of 2, the default number is generated randomly between -12 and 12, and in this case is &amp;quot; .. random .. &amp;quot;.&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	for i = 1, 12 do&lt;br /&gt;
		out = out .. i .. &amp;quot; times &amp;quot; .. numb .. &amp;quot; equals &amp;quot; .. i * numb .. &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;
-- People function&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;Martin&amp;quot;, &amp;quot;Doug&amp;quot;, &amp;quot;Diego&amp;quot;}&lt;br /&gt;
	local msg = &amp;quot;&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;
	return msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 5&lt;br /&gt;
-- Sent function&lt;br /&gt;
function p.sent(frame)&lt;br /&gt;
	local txt = frame.args.text or &amp;quot;&amp;quot;&lt;br /&gt;
	local firstLetterCapitalized = string.upper(string.sub(txt, 1, 1))&lt;br /&gt;
	local out = firstLetterCapitalized .. string.sub(txt, 2)&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Unpack function&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;
	local annualPosition = ordinalMonth(m)&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 .. &amp;quot;, that is the &amp;quot; .. annualPosition .. &amp;quot; month.&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Unpack function for US date format&lt;br /&gt;
function p.unpackUS(frame)&lt;br /&gt;
	local mdy = frame.args.mdydate or &amp;quot;&amp;quot;&lt;br /&gt;
	local m, d, y = string.match(mdy, &amp;quot;(%w+) (%S+) (%d+)&amp;quot;)&lt;br /&gt;
	d = string.sub(d, 1, #d - 1)&lt;br /&gt;
	local annualPosition = ordinalMonth(m)&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 .. &amp;quot;, that is the &amp;quot; .. annualPosition .. &amp;quot; month.&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get month position&lt;br /&gt;
function ordinalMonth(month)&lt;br /&gt;
	local normalizedMonth = string.lower(month)&lt;br /&gt;
	local annualPosition&lt;br /&gt;
	if normalizedMonth == &amp;quot;january&amp;quot; then annualPosition = &amp;quot;first&amp;quot; elseif normalizedMonth == &amp;quot;february&amp;quot; then annualPosition = &amp;quot;second&amp;quot; elseif normalizedMonth == &amp;quot;march&amp;quot; then annualPosition = &amp;quot;third&amp;quot; elseif normalizedMonth == &amp;quot;april&amp;quot; then annualPosition = &amp;quot;fourth&amp;quot; elseif normalizedMonth == &amp;quot;may&amp;quot; then annualPosition = &amp;quot;fifth&amp;quot; elseif normalizedMonth == &amp;quot;june&amp;quot; then annualPosition = &amp;quot;sixth&amp;quot; elseif normalizedMonth == &amp;quot;july&amp;quot; then annualPosition = &amp;quot;seventh&amp;quot; elseif normalizedMonth == &amp;quot;august&amp;quot; then annualPosition = &amp;quot;eighth&amp;quot; elseif normalizedMonth == &amp;quot;september&amp;quot; then annualPosition = &amp;quot;nineth&amp;quot; elseif normalizedMonth == &amp;quot;october&amp;quot; then annualPosition = &amp;quot;tenth&amp;quot; elseif normalizedMonth == &amp;quot;november&amp;quot; then annualPosition = &amp;quot;eleventh&amp;quot; elseif normalizedMonth == &amp;quot;december&amp;quot; then annualPosition = &amp;quot;twelfth&amp;quot; end &lt;br /&gt;
	return annualPosition&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 6&lt;br /&gt;
-- Langs function.&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;
-- Fallbacklangs function.&lt;br /&gt;
function p.fallbacklangs(frame)&lt;br /&gt;
	local fallbackLanguages = mw.language.getFallbacksFor(frame.args.langcode)&lt;br /&gt;
	local out = &amp;quot;&amp;quot;&lt;br /&gt;
	local correctThere = &amp;quot;&amp;quot;&lt;br /&gt;
	local count = 0&lt;br /&gt;
	for k, v in pairs(fallbackLanguages) 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;
	if count == 1 then correctThere = &amp;quot;There&amp;#039;s &amp;quot; else correctThere = &amp;quot;There&amp;#039;re &amp;quot; end&lt;br /&gt;
	return &amp;quot;&amp;lt;h5&amp;gt;&amp;quot; .. frame.args.langcode .. &amp;quot; fallback languages&amp;lt;/h5&amp;gt;&amp;quot; .. out .. correctThere .. count .. &amp;quot; possible plan-Bs languages.&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Page title function.&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;
-- Page information function.&lt;br /&gt;
function p.pginfo(frame)&lt;br /&gt;
	local titleOfPage = frame.args.titleOfPage&lt;br /&gt;
	local titleObject = mw.title.new(titleOfPage)&lt;br /&gt;
	local output = &amp;quot;&amp;quot;&lt;br /&gt;
	if titleObject == nil then output = &amp;quot;You need to give a value to the titleOfPage attribute.&amp;quot; else &lt;br /&gt;
		if titleObject.exists then &lt;br /&gt;
			output = titleOfPage .. &amp;quot; exists&amp;quot;&lt;br /&gt;
			if titleObject.isRedirect then output = output .. &amp;quot; and is a redirect.&amp;quot; elseif titleObject.isTalkPage then &lt;br /&gt;
			output = output .. &amp;quot; and is a talk page.&amp;quot; elseif titleObject.isSubpage then output = output .. &amp;quot; and is a subpage.&amp;quot;&lt;br /&gt;
			else output = output .. &amp;quot; and isn&amp;#039;t a redirect.&amp;quot; end &lt;br /&gt;
		else output = titleOfPage .. &amp;quot; doesn&amp;#039;t exist and isn&amp;#039;t a redirect.&amp;quot; end end&lt;br /&gt;
	return  output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Reutrn list with languages organized depending on number of fallback-languages.&lt;br /&gt;
function p.orgnanizeLanguages()&lt;br /&gt;
	local allLanguages = mw.language.fetchLanguageNames()&lt;br /&gt;
	local numberedLanguages = {}&lt;br /&gt;
	local out = &amp;quot;&amp;quot;&lt;br /&gt;
	for k, v in pairs(allLanguages) do&lt;br /&gt;
		element = {language = v, languageTag = k, numberOfFallbacks=tonumber(#mw.language.getFallbacksFor(k))}&lt;br /&gt;
		table.insert(numberedLanguages, element)&lt;br /&gt;
	end&lt;br /&gt;
	--table.sort(numberedLanguages, sortByFallbacks)&lt;br /&gt;
	function sortByFallbacks(a,b)&lt;br /&gt;
		if a.numberOfFallbacks&amp;gt;b.numberOfFallbacks then&lt;br /&gt;
			return true&lt;br /&gt;
		else&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for x, p in ipairs(numberedLanguages)do&lt;br /&gt;
		for c, s in ipairs(p)do&lt;br /&gt;
			out = out .. x&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Task 7&lt;br /&gt;
-- Get date.&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;
	local y, m, d = string.match(timestamp, &amp;quot;(%d+)-(%d+)-(%d+)&amp;quot;)&lt;br /&gt;
	local str = &amp;quot;The year is &amp;quot; .. y .. &amp;quot;, the month is &amp;quot; .. m .. &amp;quot; and the day is &amp;quot; .. d .. &amp;quot;.&amp;lt;br&amp;gt;This date in an ISO-style is &amp;quot;&lt;br /&gt;
	.. y .. &amp;quot;-&amp;quot; .. m .. &amp;quot;-&amp;quot; .. d .. &amp;quot;.&amp;quot;&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Readable date&lt;br /&gt;
function p.getfulldate(frame)&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 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;
	local y, m, d = string.match(timestamp, &amp;quot;(%d+)-(%d+)-(%d+)&amp;quot;)&lt;br /&gt;
	local str = d .. &amp;quot; &amp;quot; .. monthname[tonumber(m)] .. &amp;quot; &amp;quot; .. y&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get structure of item&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 idstamp = valtbl[1].mainsnak.datavalue.value.id&lt;br /&gt;
	local title = mw.wikibase.getLabel(idstamp)&lt;br /&gt;
	-- local tbl = mw.wikibase.entity:formatPropertyValues(&amp;#039;P42&amp;#039;)&lt;br /&gt;
	return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Ajuanca</name></author>
	</entry>
</feed>