<?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%2FLicsth</id>
	<title>Module:Sandbox/Licsth - 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%2FLicsth"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Licsth&amp;action=history"/>
	<updated>2026-04-21T04:57:06Z</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/Licsth&amp;diff=145736&amp;oldid=prev</id>
		<title>imported&gt;Licsth at 21:02, 5 January 2018</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Licsth&amp;diff=145736&amp;oldid=prev"/>
		<updated>2018-01-05T21:02:04Z</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;-- Google Code-in 2017, Introduction to Lua in Wikipedia&lt;br /&gt;
&lt;br /&gt;
-- Google Code-in 2017, Lua task 3: Create your own Lua module on English Wikipedia&lt;br /&gt;
&lt;br /&gt;
local p = {} -- p stands for package&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;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;
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;
	msg = cel .. &amp;quot; degrees Celsius is &amp;quot; .. fah ..&amp;quot; degrees Fahrenheit.&amp;quot;&lt;br /&gt;
	if cel &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;
	return msg&lt;br /&gt;
end&lt;br /&gt;
&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, 12 do&lt;br /&gt;
		out = out .. num.. &amp;quot; times &amp;quot; .. i .. &amp;quot; equals &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;
p.mum = function(frame)&lt;br /&gt;
	local family = {&amp;quot;Dad&amp;quot;, &amp;quot;Mum&amp;quot;, &amp;quot;Uncle Stan&amp;quot;, &amp;quot;Aunty Elsie&amp;quot;, &amp;quot;Brian&amp;quot;, &amp;quot;Cousin Sharon&amp;quot;, &amp;quot;Bob the cat&amp;quot;, &amp;quot;Grandpa Bob&amp;quot;}&lt;br /&gt;
	local msg = &amp;quot;&amp;quot;&lt;br /&gt;
	for i = 1, #family do&lt;br /&gt;
		msg = msg .. &amp;quot;Hello &amp;quot; .. family[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;
p.langnames = function( frame )&lt;br /&gt;
	local langs = mw.language.fetchLanguageNames()&lt;br /&gt;
	local langlist = &amp;quot;&amp;quot;&lt;br /&gt;
	local count = 0&lt;br /&gt;
	for key, value in pairs( langs ) do&lt;br /&gt;
		langlist = langlist .. key .. &amp;quot; - &amp;quot; .. value .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
	return langlist .. &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;
p.pageinfo = function( frame )&lt;br /&gt;
	local ttl = frame.args.title&lt;br /&gt;
	local ttlobj = mw.title.new( ttl )&lt;br /&gt;
	local existing = ttlobj.exists&lt;br /&gt;
	local redirected = ttlobj.isRedirect&lt;br /&gt;
	local text = ttl&lt;br /&gt;
	if existing then&lt;br /&gt;
		text = text .. &amp;quot; exists and is&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text = text .. &amp;quot; does not exist and is&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if redirected then&lt;br /&gt;
		text = text .. &amp;quot; a redirect.&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text = text ..&amp;quot; not a redirect.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Google Code-in 2017/18, Task 10&lt;br /&gt;
&lt;br /&gt;
p.reign = function(frame)&lt;br /&gt;
	local text = &amp;quot;&amp;quot;&lt;br /&gt;
	local between = &amp;quot;– &amp;quot;&lt;br /&gt;
	local between2 = &amp;quot;– &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local startdate = frame.args[1] or &amp;quot;?&amp;quot;&lt;br /&gt;
	startdate = trim(startdate)&lt;br /&gt;
	if startdate == &amp;quot;&amp;quot; then&lt;br /&gt;
		startdate = &amp;quot;?&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local enddate = frame.args[2] or &amp;quot;&amp;quot;&lt;br /&gt;
	enddate = trim(enddate)&lt;br /&gt;
	&lt;br /&gt;
	if string.find(startdate, &amp;quot; &amp;quot;) or string.find(enddate, &amp;quot; &amp;quot;) then&lt;br /&gt;
		between = &amp;quot; –  &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local startdate2 = frame.args[3] or &amp;quot;?&amp;quot;&lt;br /&gt;
	startdate2 = trim(startdate2)&lt;br /&gt;
	if startdate2 == &amp;quot;&amp;quot; then&lt;br /&gt;
		startdate2 = &amp;quot;?&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local enddate2 = frame.args[4] or &amp;quot;&amp;quot;&lt;br /&gt;
	enddate2 = trim(enddate2)&lt;br /&gt;
	&lt;br /&gt;
	if string.find(startdate2, &amp;quot; &amp;quot;) or string.find(enddate2, &amp;quot; &amp;quot;) then&lt;br /&gt;
		between2 = &amp;quot; –  &amp;quot;&lt;br /&gt;
	end	&lt;br /&gt;
	&lt;br /&gt;
	local show = frame.args[&amp;#039;show&amp;#039;]&lt;br /&gt;
	show = trim(show)&lt;br /&gt;
	local era = frame.args.era or &amp;quot;&amp;quot;&lt;br /&gt;
	era = trim(era)&lt;br /&gt;
	local label = frame.args.label&lt;br /&gt;
	label = trim(label)&lt;br /&gt;
	local post_date = frame.args[&amp;#039;post_date&amp;#039;] or frame.args[&amp;#039;post-date&amp;#039;] or frame.args[&amp;#039;postdate&amp;#039;]&lt;br /&gt;
	post_date = trim(post_date)&lt;br /&gt;
	&lt;br /&gt;
	local pre_date = frame.args[&amp;#039;pre_date&amp;#039;] or frame.args[&amp;#039;pre-date&amp;#039;] or frame.args[&amp;#039;predate&amp;#039;]&lt;br /&gt;
	pre_date = trim(pre_date)&lt;br /&gt;
	&lt;br /&gt;
	local single = frame.args.single&lt;br /&gt;
	single = trim(single)&lt;br /&gt;
	&lt;br /&gt;
	local wraps = frame.args[&amp;#039;wrap&amp;#039;]&lt;br /&gt;
	wraps = trim(wraps)&lt;br /&gt;
	local mid_date = frame.args[&amp;#039;mid_date&amp;#039;] or frame.args[&amp;#039;mid-date&amp;#039;] or frame.args[&amp;#039;middate&amp;#039;]&lt;br /&gt;
	mid_date = trim(mid_date)&lt;br /&gt;
	&lt;br /&gt;
	local cap = frame.args.cap&lt;br /&gt;
	cap = trim(cap)&lt;br /&gt;
	local word = &amp;quot;&amp;lt;abbr title=&amp;#039;reign&amp;#039;&amp;gt;r&amp;lt;/abbr&amp;gt;. &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if not label then&lt;br /&gt;
		if show == &amp;quot;word&amp;quot; then&lt;br /&gt;
			if cap == &amp;quot;y&amp;quot; then&lt;br /&gt;
				word = &amp;quot;Reigned &amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				word = &amp;quot;reigned &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		elseif show == &amp;quot;colon&amp;quot; then&lt;br /&gt;
			if cap == &amp;quot;y&amp;quot; then&lt;br /&gt;
				word = &amp;quot;Reign: &amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				word = &amp;quot;reign: &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		elseif show == &amp;quot;lword&amp;quot; then&lt;br /&gt;
			if cap == &amp;quot;y&amp;quot; then&lt;br /&gt;
				word = &amp;quot;[[Reign|Reigned]] &amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				word = &amp;quot;[[Reign|reigned]] &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		elseif show == &amp;quot;lcolon&amp;quot; then&lt;br /&gt;
			if cap == &amp;quot;y&amp;quot; then&lt;br /&gt;
				word = &amp;quot;[[Reign|Reign:]] &amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				word = &amp;quot;[[Reign|reign:]] &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		elseif show == &amp;quot;blank&amp;quot; then&lt;br /&gt;
			word = &amp;quot;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		word = label .. &amp;quot; &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not single then&lt;br /&gt;
		if not pre_date then&lt;br /&gt;
			text = word .. startdate .. between .. enddate&lt;br /&gt;
		else&lt;br /&gt;
			text = word .. pre_date .. &amp;quot;, &amp;quot; .. startdate .. between .. enddate&lt;br /&gt;
		end&lt;br /&gt;
		if startdate2 ~= &amp;quot;?&amp;quot; or enddate2 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			if mid_date then&lt;br /&gt;
				text = text .. &amp;quot;, &amp;quot; .. mid_date &lt;br /&gt;
			end&lt;br /&gt;
			text = text .. &amp;quot;, &amp;quot; .. startdate2 .. between2 .. enddate2&lt;br /&gt;
		end&lt;br /&gt;
		if post_date then&lt;br /&gt;
			text = text .. &amp;quot;, &amp;quot; .. post_date&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		text = word .. single&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if era ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		text = text .. &amp;quot; &amp;quot; .. era&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if wraps == &amp;quot;y&amp;quot; then&lt;br /&gt;
		text = &amp;quot;&amp;lt;span style=&amp;#039;white-space:normal&amp;#039;&amp;gt;&amp;quot; .. text .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text = &amp;quot;&amp;lt;span style=&amp;#039;white-space:nowrap&amp;#039;&amp;gt;&amp;quot; .. text .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function trim(text)&lt;br /&gt;
	if text == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	else&lt;br /&gt;
		return mw.text.trim(text)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Licsth</name></author>
	</entry>
</feed>