<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AFb_overview</id>
	<title>Module:Fb overview - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AFb_overview"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Fb_overview&amp;action=history"/>
	<updated>2026-07-01T02:36:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Fb_overview&amp;diff=471638&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Fb_overview&amp;diff=471638&amp;oldid=prev"/>
		<updated>2021-07-15T21:35:34Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This implements {{fb overview}}&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Internationalisation&lt;br /&gt;
local trackingcat = 'Category:Pages using sports overview with unknown parameters'&lt;br /&gt;
local labels = {&lt;br /&gt;
	competition = 'Competition',&lt;br /&gt;
	firstmatch = 'First match',&lt;br /&gt;
	lastmatch = 'Last match',&lt;br /&gt;
	startinground = 'Starting round',&lt;br /&gt;
	finalposition = 'Final position',&lt;br /&gt;
	record = 'Record',&lt;br /&gt;
	total = 'Total',&lt;br /&gt;
	source = 'Source: ',&lt;br /&gt;
	lastupdated = 'Last updated: ',&lt;br /&gt;
	sourcedefault = '[[#Competitions|Competitions]]',&lt;br /&gt;
	unknownparameter = 'Unknown parameter: ',&lt;br /&gt;
	pld = '&amp;lt;abbr title=&amp;quot;Games played&amp;quot;&amp;gt;Pld&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	w = '&amp;lt;abbr title=&amp;quot;Games won&amp;quot;&amp;gt;W&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	d = '&amp;lt;abbr title=&amp;quot;Games drawn&amp;quot;&amp;gt;D&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	l = '&amp;lt;abbr title=&amp;quot;Games lost&amp;quot;&amp;gt;L&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	pf = '&amp;lt;abbr title=&amp;quot;Points for&amp;quot;&amp;gt;PF&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	pa = '&amp;lt;abbr title=&amp;quot;Points against&amp;quot;&amp;gt;PA&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	pd = '&amp;lt;abbr title=&amp;quot;Point difference&amp;quot;&amp;gt;PD&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	gf = '&amp;lt;abbr title=&amp;quot;Goals for&amp;quot;&amp;gt;GF&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	ga = '&amp;lt;abbr title=&amp;quot;Goals against&amp;quot;&amp;gt;GA&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	gd = '&amp;lt;abbr title=&amp;quot;Goal difference&amp;quot;&amp;gt;GD&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	wp = '&amp;lt;abbr title=&amp;quot;Winning percentage&amp;quot;&amp;gt;Win %&amp;lt;/abbr&amp;gt;',&lt;br /&gt;
	winner = 'Winner',&lt;br /&gt;
	runnerup = 'Runner-up',&lt;br /&gt;
	runnersup = 'Runners-up'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Main function&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
	-- Get the row numbers and check for invalid input&lt;br /&gt;
	local rownumbers = {}&lt;br /&gt;
	local unknown = {}&lt;br /&gt;
	local showdates, showrounds, showpos = false, false, false&lt;br /&gt;
	local maxrow = -1&lt;br /&gt;
	local rowlimit = 99&lt;br /&gt;
&lt;br /&gt;
	local function addrownumber(num, flag)&lt;br /&gt;
		if num &amp;lt;= rowlimit then&lt;br /&gt;
			table.insert(rownumbers, num)&lt;br /&gt;
			maxrow = (num &amp;gt; maxrow) and num or maxrow&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
		return flag&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		k = tostring(k)&lt;br /&gt;
		local n = tonumber(k:match('^[a-z]+(%d+)$') or '-1')&lt;br /&gt;
		if k == 'u' or k == 'c' or k == 's' or k == 'pts' then&lt;br /&gt;
			-- These are valid&lt;br /&gt;
		elseif k:match('^[cwdlfa]%d+$') then&lt;br /&gt;
			local added = addrownumber(n, false)&lt;br /&gt;
		elseif k:match('[dfl]m%d%d*$') then&lt;br /&gt;
			showdates = addrownumber(n, showdates)&lt;br /&gt;
		elseif k:match('sr%d%d*$') then&lt;br /&gt;
			showrounds = addrownumber(n, showrounds)&lt;br /&gt;
		elseif k:match('fp%d%d*$') then&lt;br /&gt;
			showpos = addrownumber(n, showpos)&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(unknown, k)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Sort the row numbers&lt;br /&gt;
	table.sort(rownumbers)&lt;br /&gt;
&lt;br /&gt;
	-- Remove duplicates&lt;br /&gt;
	for i=#rownumbers,2,-1 do&lt;br /&gt;
		if rownumbers[i-1] == rownumbers[i] then&lt;br /&gt;
			table.remove(rownumbers,i)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local root = {}&lt;br /&gt;
	if maxrow &amp;gt; -1 then&lt;br /&gt;
		local WDL = require('Module:WDL').main&lt;br /&gt;
		-- Make the table&lt;br /&gt;
		table.insert(root,'{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;')&lt;br /&gt;
		-- Add the headers&lt;br /&gt;
		table.insert(root,'|-')&lt;br /&gt;
		table.insert(root,'! rowspan=2 | ' .. labels['competition'])&lt;br /&gt;
		local totspan = 1&lt;br /&gt;
		if showdates then&lt;br /&gt;
			table.insert(root,'! rowspan=2 | ' .. labels['firstmatch'])&lt;br /&gt;
			table.insert(root,'! rowspan=2 | ' .. labels['lastmatch'])&lt;br /&gt;
			totspan = totspan + 2&lt;br /&gt;
		end&lt;br /&gt;
		if showrounds then&lt;br /&gt;
			table.insert(root,'! rowspan=2 | ' .. labels['startinground'])&lt;br /&gt;
			totspan = totspan + 1&lt;br /&gt;
		end&lt;br /&gt;
		if showpos then&lt;br /&gt;
			table.insert(root,'! rowspan=2 | ' .. labels['finalposition'])&lt;br /&gt;
			totspan = totspan + 1&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(root,'! colspan=8 | ' .. labels['record'])&lt;br /&gt;
		table.insert(root,'|-')&lt;br /&gt;
		table.insert(root,'! ' .. labels['pld'])&lt;br /&gt;
		table.insert(root,'! ' .. labels['w'])&lt;br /&gt;
		table.insert(root,'! ' .. labels['d'])&lt;br /&gt;
		table.insert(root,'! ' .. labels['l'])&lt;br /&gt;
		local pg = args.pts and args.pts == 'y' and 'p' or 'g'&lt;br /&gt;
		table.insert(root,'! ' .. labels[pg .. 'f'])&lt;br /&gt;
		table.insert(root,'! ' .. labels[pg .. 'a'])&lt;br /&gt;
		table.insert(root,'! ' .. labels[pg .. 'd'])&lt;br /&gt;
		table.insert(root,'! ' .. labels['wp'])&lt;br /&gt;
		local evenodd = 'odd'&lt;br /&gt;
&lt;br /&gt;
		-- Now add the rows&lt;br /&gt;
		local wtot, dtot, ltot, ftot, atot = 0, 0, 0, 0, 0&lt;br /&gt;
		for i=1,#rownumbers do&lt;br /&gt;
			local r = rownumbers[i]&lt;br /&gt;
			if evenodd == 'even' then&lt;br /&gt;
				table.insert(root,'|- style=&amp;quot;background-color:#EEE&amp;quot;')&lt;br /&gt;
				evenodd = 'odd'&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(root,'|-')&lt;br /&gt;
				evenodd = 'even'&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(root,'| ' .. (args['c' .. r] or ''))&lt;br /&gt;
			if showdates then&lt;br /&gt;
				if args['dm' .. r] then&lt;br /&gt;
					table.insert(root,'| colspan=2 | ' .. args['dm' .. r])&lt;br /&gt;
				else&lt;br /&gt;
					table.insert(root,'| ' .. (args['fm' .. r] or ''))&lt;br /&gt;
					table.insert(root,'| ' .. (args['lm' .. r] or ''))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if showrounds then&lt;br /&gt;
			table.insert(root,'| ' .. (args['sr' .. r] or ''))&lt;br /&gt;
			end&lt;br /&gt;
			if showpos then&lt;br /&gt;
				local fp = args['fp' .. r] or ''&lt;br /&gt;
				local bg =&lt;br /&gt;
					(fp:match('^' .. labels['winner']) and 'gold') or&lt;br /&gt;
					(fp:match('^' .. labels['runnersup']) and 'silver') or&lt;br /&gt;
					(fp:match('^' .. labels['runnerup']) and 'silver') or nil&lt;br /&gt;
				if bg then&lt;br /&gt;
					table.insert(root,'| style=&amp;quot;background-color:' .. bg .. '&amp;quot; | ' .. fp)&lt;br /&gt;
				else&lt;br /&gt;
					table.insert(root,'| ' .. fp)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			wtot = wtot + (tonumber(args['w' .. r]) or 0)&lt;br /&gt;
			dtot = dtot + (tonumber(args['d' .. r]) or 0)&lt;br /&gt;
			ltot = ltot + (tonumber(args['l' .. r]) or 0)&lt;br /&gt;
			ftot = ftot + (tonumber(args['f' .. r]) or 0)&lt;br /&gt;
			atot = atot + (tonumber(args['a' .. r]) or 0)&lt;br /&gt;
			table.insert(root, WDL(frame,&lt;br /&gt;
				{nil, args['w' .. r],  args['d' .. r],  args['l' .. r],&lt;br /&gt;
				['for'] = args['f' .. r], ['against'] = args['a' .. r], ['diff'] = 'yes'})&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(root,'|-')&lt;br /&gt;
		if totspan &amp;gt; 1 then&lt;br /&gt;
			table.insert(root,'! colspan=' .. totspan .. ' | ' .. labels['total'])&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(root,'! ' .. labels['total'])&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(root, WDL(frame,&lt;br /&gt;
				{wtot+dtot+ltot, wtot, dtot, ltot, ['total'] = 'y',&lt;br /&gt;
				['for'] = ftot, ['against'] = atot, ['diff'] = 'yes'})&lt;br /&gt;
			)&lt;br /&gt;
		table.insert(root, '|} \n&amp;lt;div style=&amp;quot;font-size: 90%; margin-bottom: 0.5em;&amp;quot;&amp;gt;\n')&lt;br /&gt;
		if args.u then&lt;br /&gt;
			table.insert(root, labels['lastupdated'] .. args.u .. '&amp;lt;br&amp;gt;')&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(root, labels['source'] .. (args.s or labels['sourcedefault']) .. '\n&amp;lt;/div&amp;gt;')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if #unknown &amp;gt; 0 then&lt;br /&gt;
		&lt;br /&gt;
		local unknown_params = require('Module:If preview')._warning({&lt;br /&gt;
			labels['unknownparameter'] ..&lt;br /&gt;
			'&amp;lt;code&amp;gt;' ..&lt;br /&gt;
			table.concat(unknown, '&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;') ..&lt;br /&gt;
			'&amp;lt;/code&amp;gt;.'&lt;br /&gt;
		}) .. '[[' .. trackingcat .. '|' .. unknown[1] .. ' ]]'&lt;br /&gt;
		&lt;br /&gt;
		table.insert(root, unknown_params)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(root, '\n')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>