<?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%3AFootball_box</id>
	<title>Module:Football box - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AFootball_box"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Football_box&amp;action=history"/>
	<updated>2026-06-13T20:47:34Z</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:Football_box&amp;diff=471749&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:Football_box&amp;diff=471749&amp;oldid=prev"/>
		<updated>2021-07-15T21:42:28Z</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;-- Implements [[Template:Football box]]&lt;br /&gt;
local p = {}&lt;br /&gt;
local lang = nil&lt;br /&gt;
local delink = require('Module:Delink')._delink&lt;br /&gt;
local eventschema = &amp;quot;http://schema.org/SportsEvent&amp;quot;&lt;br /&gt;
local teamschema = &amp;quot;http://schema.org/SportsTeam&amp;quot;&lt;br /&gt;
local placeschema = &amp;quot;http://schema.org/Place&amp;quot;&lt;br /&gt;
local penalties = '[[Penalty shoot-out (association football)|Penalties]]'&lt;br /&gt;
local aet = '[[Overtime (sports)#Association football|a.e.t.]]'&lt;br /&gt;
local asdet = '[[Sudden death (sport)#Association football|a.s.d.e.t.]]'&lt;br /&gt;
local agget = '[[Overtime (sports)#Association football|a.e.t.]]/[[Golden goal#Association football|g.g.]]'&lt;br /&gt;
local asget = '[[Overtime (sports)#Association football|a.e.t.]]/[[Golden goal#Silver goal|s.g.]]'&lt;br /&gt;
local attendance = 'Attendance:'&lt;br /&gt;
local referee = 'Referee:'&lt;br /&gt;
local templatestyles = 'Module:Football box/styles.css'&lt;br /&gt;
&lt;br /&gt;
local tracking, preview&lt;br /&gt;
&lt;br /&gt;
local function checkarg(k,v)&lt;br /&gt;
	if not k or type(k) ~= 'string' then return end&lt;br /&gt;
	&lt;br /&gt;
	if  k == 'assistantreferees2' then&lt;br /&gt;
		table.insert(tracking, '[[Category:Pages using football box with assistantreferees|2]]')&lt;br /&gt;
	elseif k == 'aggregatescore' or k == 'assistantreferees' or &lt;br /&gt;
			k == 'fourthofficial' or k == 'game' or k == 'motm' or &lt;br /&gt;
			k == 'nobars' or k == 'note' or k == 'result' then&lt;br /&gt;
		-- valid and tracked&lt;br /&gt;
		table.insert(tracking, '[[Category:Pages using football box with ' .. k .. ']]')&lt;br /&gt;
	elseif k == 'size' or k == 'bg' or k == 'id' or k == 'event' or &lt;br /&gt;
		k == 'date' or k == 'time' or k == 'round' or k == 'team1' or &lt;br /&gt;
		k == 'team2' or k == 'score1' or k == 'score2' or k == 'score' or k == 'scorenote' or&lt;br /&gt;
		k == 'aet' or k == 'asdet' or k == 'agget' or k == 'asget' or k == 'goals1' or k == 'report' or k == 'goals2' or &lt;br /&gt;
		k == 'penaltyscore' or k == 'penalties1' or k == 'penalties2' or &lt;br /&gt;
		k == 'stadium' or k == 'location' or k == 'attendance' or &lt;br /&gt;
		k == 'referee' or k == 'stack'  then&lt;br /&gt;
		-- valid and not tracked&lt;br /&gt;
	else&lt;br /&gt;
		-- invalid&lt;br /&gt;
		local vlen = mw.ustring.len(k)&lt;br /&gt;
		k = mw.ustring.sub(k, 1, (vlen &amp;lt; 25) and vlen or 25) &lt;br /&gt;
		k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')&lt;br /&gt;
		table.insert(tracking, '[[Category:Pages using football box with unknown parameters|' .. k .. ']]')&lt;br /&gt;
		table.insert(preview, '&amp;quot;' .. k .. '&amp;quot;')&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function timestamp(d, t)&lt;br /&gt;
	if not d then return nil end&lt;br /&gt;
	&lt;br /&gt;
	lang = lang or mw.language.getContentLanguage() -- lazy initialize&lt;br /&gt;
	local success, timestamp = pcall(lang.formatDate, lang, 'c', delink({d .. ' ' .. (t or '')}))&lt;br /&gt;
	if success then&lt;br /&gt;
		return timestamp&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function fmtlist(s)&lt;br /&gt;
	s = mw.ustring.gsub(s or '', '%[%[ *([%?-]) *%]%]', '%1')&lt;br /&gt;
	s = mw.ustring.gsub(s, '%[%[ *[%?-] *| *(.-) *%]%]', '%1')&lt;br /&gt;
	if mw.ustring.sub(s, 1, 1) == '*' then&lt;br /&gt;
		return tostring(mw.html.create('div'):addClass('plainlist'):newline():wikitext(s))&lt;br /&gt;
	end&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makelink(s,t)&lt;br /&gt;
	if s:match('^http') then&lt;br /&gt;
		return '[' .. s .. ' ' .. t .. ']'&lt;br /&gt;
	end&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match('^[\'&amp;quot;%s]*(.-)[\'&amp;quot;%s]*$')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getid(s)&lt;br /&gt;
	s = trim(s or '')&lt;br /&gt;
	if s and s ~= '' then&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame)&lt;br /&gt;
	local id = getid(args['id'])&lt;br /&gt;
	local d = timestamp(args['date'], args['time'])&lt;br /&gt;
	local block&lt;br /&gt;
	&lt;br /&gt;
	tracking, preview = {}, {}&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
    	if v ~= '' then&lt;br /&gt;
    		checkarg(k,v)&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local score = 'v'&lt;br /&gt;
	if args['score1'] or args['score2'] then&lt;br /&gt;
		score = (args['score1'] or '0') .. '&amp;amp;ndash;' .. (args['score2'] or '0')&lt;br /&gt;
	elseif args['score'] and args['score'] ~= '' then&lt;br /&gt;
		score = args['score']&lt;br /&gt;
	end&lt;br /&gt;
	if args['aet'] then&lt;br /&gt;
		score = score .. ' (' .. aet .. ')'&lt;br /&gt;
	elseif args['asdet'] then&lt;br /&gt;
		score = score .. ' (' .. asdet .. ')'&lt;br /&gt;
	elseif args['agget'] then&lt;br /&gt;
		score = score .. ' (' .. agget .. ')'&lt;br /&gt;
	elseif args['asget'] then&lt;br /&gt;
		score = score .. ' (' .. asget .. ')'&lt;br /&gt;
	end&lt;br /&gt;
	if args['scorenote'] then&lt;br /&gt;
		score = score .. '&amp;lt;br&amp;gt;' .. args['scorenote']&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Start box&lt;br /&gt;
	local root = &lt;br /&gt;
		mw.html.create('div')&lt;br /&gt;
			:attr('itemscope', '')&lt;br /&gt;
			:attr('itemtype', eventschema)&lt;br /&gt;
			:addClass('footballbox')&lt;br /&gt;
			:css('width', args['size'])&lt;br /&gt;
			:css('background-color', args['bg'])&lt;br /&gt;
			:attr('id', id)&lt;br /&gt;
	root:newline()&lt;br /&gt;
	&lt;br /&gt;
	if args['event'] then&lt;br /&gt;
		root:tag('div')&lt;br /&gt;
			:addClass('ftitle')&lt;br /&gt;
			:wikitext(args['event'])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Start left block&lt;br /&gt;
	block = root:tag('div')&lt;br /&gt;
		:addClass('fleft')&lt;br /&gt;
	&lt;br /&gt;
	local timetag = block:tag('time')&lt;br /&gt;
		:attr('itemprop', d and 'startDate' or nil)&lt;br /&gt;
		:attr('datetime', d)&lt;br /&gt;
		&lt;br /&gt;
	timetag:tag('div')&lt;br /&gt;
		:addClass('fdate')&lt;br /&gt;
		:wikitext(args['date'])&lt;br /&gt;
	&lt;br /&gt;
	if args['time'] then&lt;br /&gt;
		timetag:tag('div')&lt;br /&gt;
			:addClass('ftime')&lt;br /&gt;
			:wikitext(args['time'])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args['round'] then&lt;br /&gt;
		block:tag('div')&lt;br /&gt;
			:addClass('frnd')&lt;br /&gt;
			:wikitext(args['round'])&lt;br /&gt;
	end&lt;br /&gt;
	-- End block&lt;br /&gt;
	&lt;br /&gt;
	-- Start table&lt;br /&gt;
	local rtable = root:tag('table')&lt;br /&gt;
		:addClass('fevent')&lt;br /&gt;
	local row = rtable:tag('tr')&lt;br /&gt;
		:attr('itemprop', 'name')&lt;br /&gt;
	row:newline()&lt;br /&gt;
	row:tag('th')&lt;br /&gt;
		:addClass('fhome')&lt;br /&gt;
		:attr('itemprop', 'homeTeam')&lt;br /&gt;
		:attr('itemscope', '')&lt;br /&gt;
		:attr('itemtype', teamschema)&lt;br /&gt;
		:tag('span')&lt;br /&gt;
			:attr('itemprop', 'name')&lt;br /&gt;
			:wikitext(args['team1'])&lt;br /&gt;
	row:tag('th')&lt;br /&gt;
		:addClass('fscore')&lt;br /&gt;
		:wikitext(score)&lt;br /&gt;
	row:tag('th')&lt;br /&gt;
		:addClass('faway')&lt;br /&gt;
		:attr('itemprop', 'awayTeam')&lt;br /&gt;
		:attr('itemscope', '')&lt;br /&gt;
		:attr('itemtype', teamschema)&lt;br /&gt;
		:tag('span')&lt;br /&gt;
			:attr('itemprop', 'name')&lt;br /&gt;
			:wikitext(args['team2'])&lt;br /&gt;
&lt;br /&gt;
	row = rtable:tag('tr')&lt;br /&gt;
		:addClass('fgoals')&lt;br /&gt;
		:newline()&lt;br /&gt;
	row:tag('td')&lt;br /&gt;
		:addClass('fhgoal')&lt;br /&gt;
		:wikitext(fmtlist(args['goals1']))&lt;br /&gt;
	row:newline()&lt;br /&gt;
	row:tag('td')&lt;br /&gt;
		:wikitext(makelink(args['report'] or '', 'Report'))&lt;br /&gt;
	row:newline()&lt;br /&gt;
	row:tag('td')&lt;br /&gt;
		:addClass('fagoal')&lt;br /&gt;
		:wikitext(fmtlist(args['goals2']))&lt;br /&gt;
	row:newline()	&lt;br /&gt;
	&lt;br /&gt;
	if args['penaltyscore'] then&lt;br /&gt;
		rtable&lt;br /&gt;
			:tag('tr')&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:attr('colspan', 3)&lt;br /&gt;
					:wikitext(penalties)&lt;br /&gt;
		row = rtable:tag('tr')&lt;br /&gt;
			:addClass('fgoals')&lt;br /&gt;
		row:newline()&lt;br /&gt;
		row:tag('td')&lt;br /&gt;
			:addClass('fhgoal')&lt;br /&gt;
			:wikitext(fmtlist(args['penalties1']))&lt;br /&gt;
		row:newline()&lt;br /&gt;
		row:tag('th')&lt;br /&gt;
			:wikitext(args['penaltyscore'])&lt;br /&gt;
		row:newline()&lt;br /&gt;
		row:tag('td')&lt;br /&gt;
			:addClass('fagoal')&lt;br /&gt;
			:wikitext(fmtlist(args['penalties2']))&lt;br /&gt;
		row:newline()&lt;br /&gt;
	end&lt;br /&gt;
	-- End table&lt;br /&gt;
	&lt;br /&gt;
	-- Start right block&lt;br /&gt;
	block = root:tag('div')&lt;br /&gt;
		:addClass('fright')&lt;br /&gt;
	&lt;br /&gt;
	if args['stadium'] then&lt;br /&gt;
		local sdiv = block:tag('div')&lt;br /&gt;
			:attr('itemprop', 'location')&lt;br /&gt;
			:attr('itemscope', '')&lt;br /&gt;
			:attr('itemtype', placeschema)&lt;br /&gt;
		if args['location'] then&lt;br /&gt;
			sdiv:tag('span')&lt;br /&gt;
				:attr('itemprop', 'name')&lt;br /&gt;
				:wikitext(args['stadium'])&lt;br /&gt;
			sdiv:wikitext(', ')&lt;br /&gt;
			sdiv:tag('span')&lt;br /&gt;
				:attr('itemprop', 'address')&lt;br /&gt;
				:wikitext(args['location'])&lt;br /&gt;
		else&lt;br /&gt;
			sdiv:tag('span')&lt;br /&gt;
				:attr('itemprop', 'name address')&lt;br /&gt;
				:wikitext(args['stadium'])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args['attendance'] then&lt;br /&gt;
		block:tag('div'):wikitext(attendance ..' ' .. args['attendance'])&lt;br /&gt;
	end&lt;br /&gt;
	if args['referee'] then&lt;br /&gt;
		block:tag('div'):wikitext(referee .. ' ' .. args['referee'])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local trackstr = (#tracking &amp;gt; 0) and table.concat(tracking, '') or ''&lt;br /&gt;
	if #preview &amp;gt; 0 and frame:preprocess( &amp;quot;{{REVISIONID}}&amp;quot; ) == &amp;quot;&amp;quot; then&lt;br /&gt;
		trackstr = tostring(mw.html.create('div')&lt;br /&gt;
			:addClass('hatnote')&lt;br /&gt;
			:css('color','red')&lt;br /&gt;
			:tag('strong'):wikitext('Warning:'):done()&lt;br /&gt;
			:wikitext('Unknown parameters: ' .. table.concat(preview, '; ')))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. tostring(root) .. trackstr&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>