<?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%2FAB-me%2FEurovision_scoreboard</id>
	<title>Module:Sandbox/AB-me/Eurovision scoreboard - 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%2FAB-me%2FEurovision_scoreboard"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/AB-me/Eurovision_scoreboard&amp;action=history"/>
	<updated>2026-05-28T14:37:36Z</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/AB-me/Eurovision_scoreboard&amp;diff=145014&amp;oldid=prev</id>
		<title>imported&gt;AB-me at 12:21, 28 May 2022</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/AB-me/Eurovision_scoreboard&amp;diff=145014&amp;oldid=prev"/>
		<updated>2022-05-28T12:21:22Z</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;local p = {};&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs;&lt;br /&gt;
local frame = mw.getCurrentFrame();&lt;br /&gt;
&lt;br /&gt;
local data = {&lt;br /&gt;
	year = nil,&lt;br /&gt;
	variant = nil,&lt;br /&gt;
	pointSystem = { 12, 10, 8, 7, 6, 5, 4, 3, 2, 1 },&lt;br /&gt;
	contestants = {},&lt;br /&gt;
	voters = {}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
local function handleCsvArg(key, value)&lt;br /&gt;
	if (value ~= nil) then&lt;br /&gt;
		local split = mw.text.split(value, &amp;#039;,&amp;#039;);&lt;br /&gt;
		&lt;br /&gt;
		if (data[key] == nil or #data[key] == 0) then&lt;br /&gt;
		&lt;br /&gt;
			for i,v in ipairs(split) do&lt;br /&gt;
				data[key][i] = frame:expandTemplate{ title = &amp;#039;getalias&amp;#039;, args = { v, &amp;#039;shortname alias&amp;#039; }}&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function writeTableHeader(stack)&lt;br /&gt;
	table.insert(stack, &amp;#039;|-&amp;#039; .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
	table.insert(stack, &amp;#039;| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background: #F2F2F2;&amp;quot; | &amp;#039; .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
	--table.insert(stack, &amp;#039;| {{vert header|nb=y|Total score}}&amp;#039; .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
	table.insert(stack, &amp;#039;|&amp;#039; .. frame:expandTemplate{ title = &amp;#039;vert header&amp;#039;, args = { nb = &amp;#039;y&amp;#039;, &amp;#039;Total score&amp;#039; } } .. &amp;#039;\n&amp;#039;)&lt;br /&gt;
	if (#data[&amp;#039;voters&amp;#039;] &amp;gt; 0) then&lt;br /&gt;
		for i,v in ipairs(data.voters) do&lt;br /&gt;
			table.insert(stack, &amp;#039;|scope=&amp;quot;col&amp;quot; &amp;#039; .. frame:expandTemplate{ title = &amp;#039;vert header&amp;#039;, args = { nb = &amp;#039;y&amp;#039;, v }} .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function writeTableRow(stack, contestant, first)&lt;br /&gt;
	if (not first) then&lt;br /&gt;
		table.insert(stack, &amp;#039;|-&amp;#039; .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(stack, &amp;#039;|style=&amp;quot;text-align:left;&amp;quot;|&amp;#039; .. contestant .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
	&lt;br /&gt;
	local colCount = 0;&lt;br /&gt;
&lt;br /&gt;
	table.insert(stack, &amp;#039;|&amp;#039; .. &amp;#039;\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	for i,v in ipairs(data.voters) do&lt;br /&gt;
		&lt;br /&gt;
		table.insert(stack, &amp;#039;|&amp;#039; .. &amp;#039;\n&amp;#039;);&lt;br /&gt;
		&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function _main(args)&lt;br /&gt;
	handleCsvArg(&amp;#039;contestants&amp;#039;, args.contestants);&lt;br /&gt;
	if (args.voters ~= nil) then&lt;br /&gt;
		handleCsvArg(&amp;#039;voters&amp;#039;, args.voters);&lt;br /&gt;
	else&lt;br /&gt;
		data.voters = data.contestants&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local stack = {};&lt;br /&gt;
	&lt;br /&gt;
	table.insert(stack, &amp;#039;{| class=&amp;quot;wikitable plainrowheaders&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&amp;#039; .. &amp;#039;\n&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	writeTableHeader(stack);&lt;br /&gt;
	&lt;br /&gt;
	if (#data[&amp;#039;contestants&amp;#039;] &amp;gt; 0) then&lt;br /&gt;
		&lt;br /&gt;
		table.insert(stack, &amp;#039;|-&amp;#039; .. &amp;#039;\n&amp;#039;)&lt;br /&gt;
		table.insert(stack, &amp;#039;! rowspan=&amp;quot;&amp;#039; .. #data.contestants .. &amp;#039;&amp;quot;&amp;#039; .. frame:expandTemplate{ title = &amp;#039;vert header&amp;#039;, args = { va = &amp;#039;middle&amp;#039;, &amp;#039;Contestants&amp;#039; }} .. &amp;#039;\n&amp;#039;)&lt;br /&gt;
		&lt;br /&gt;
		local first = true;&lt;br /&gt;
		&lt;br /&gt;
		for i,v in ipairs(data.voters) do&lt;br /&gt;
			&lt;br /&gt;
			writeTableRow(stack, v, first);&lt;br /&gt;
			&lt;br /&gt;
			first = false;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(stack, &amp;#039;|}&amp;#039; .. &amp;#039;\n&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(stack);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame);&lt;br /&gt;
	return _main(args);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>imported&gt;AB-me</name></author>
	</entry>
</feed>