<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.seminaverbi.bibleget.io/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ATelevision_ratings_graph</id>
	<title>Module:Television ratings graph - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.seminaverbi.bibleget.io/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ATelevision_ratings_graph"/>
	<link rel="alternate" type="text/html" href="https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Television_ratings_graph&amp;action=history"/>
	<updated>2026-04-23T07:38:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Television_ratings_graph&amp;diff=27190&amp;oldid=prev</id>
		<title>Johnrdorazio: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Television_ratings_graph&amp;diff=27190&amp;oldid=prev"/>
		<updated>2023-05-04T16:23:37Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:23, May 4, 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key seminaverbi_en:diff:1.41:old-27189:rev-27190 --&gt;
&lt;/table&gt;</summary>
		<author><name>Johnrdorazio</name></author>
	</entry>
	<entry>
		<id>https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Television_ratings_graph&amp;diff=27189&amp;oldid=prev</id>
		<title>en&gt;Alex 21 at 06:16, March 7, 2023</title>
		<link rel="alternate" type="text/html" href="https://en.seminaverbi.bibleget.io/w/index.php?title=Module:Television_ratings_graph&amp;diff=27189&amp;oldid=prev"/>
		<updated>2023-03-07T06:16:51Z</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;-- This module implements {{Television ratings graph}}.&lt;br /&gt;
&lt;br /&gt;
local contrast_ratio = require(&amp;#039;Module:Color contrast&amp;#039;)._ratio&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- TVRG class&lt;br /&gt;
-- The main class.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local TVRG = {}&lt;br /&gt;
&lt;br /&gt;
-- Allow usages of {{N/A}} cells&lt;br /&gt;
function TVRG.NACell(frame,text)&lt;br /&gt;
	local cell = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
	local attrMatch = &amp;#039;([%a-]*)=&amp;quot;([^&amp;quot;]*)&amp;quot;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	infoParam = frame:expandTemplate{title=&amp;#039;N/A&amp;#039;,args={text}}&lt;br /&gt;
	&lt;br /&gt;
	-- Gather styles of {{N/A}} and assign to node variable&lt;br /&gt;
	while true do&lt;br /&gt;
		local a,b = string.match(infoParam,attrMatch)&lt;br /&gt;
		if a == nil or b == nil then break end&lt;br /&gt;
		cell:attr(a,b)&lt;br /&gt;
		infoParam = string.gsub(infoParam,attrMatch,&amp;#039;&amp;#039;,1)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	infoParam = string.gsub(infoParam,&amp;#039;%s*|%s*&amp;#039;,&amp;#039;&amp;#039;,1)&lt;br /&gt;
	cell:wikitext(infoParam)&lt;br /&gt;
	&lt;br /&gt;
	return cell&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create the graph and table&lt;br /&gt;
function TVRG.new(frame,args)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	&lt;br /&gt;
	-- Variables&lt;br /&gt;
	local timeline = {}&lt;br /&gt;
	local longestseason = -1&lt;br /&gt;
	local average = args.average and 1 or 0&lt;br /&gt;
	local season_title = args.season_title or &amp;#039;Season&amp;#039;&lt;br /&gt;
	local root = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:attr(&amp;#039;align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- Create the timeline&lt;br /&gt;
	&lt;br /&gt;
	-- Number of actual viewer numbers&lt;br /&gt;
	local numberargs = 0&lt;br /&gt;
	for k,v in pairs(args) do &lt;br /&gt;
		if (string.lower(v) == &amp;#039;n/a&amp;#039;) or (not string.match(k,&amp;#039;[^%d]+&amp;#039;) and not string.match(v,&amp;#039;[^%d%.]+&amp;#039;)) then numberargs = numberargs + 1 end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Determine number of seasons&lt;br /&gt;
	local num_seasons = -1&lt;br /&gt;
	for k,v in pairs(args) do&lt;br /&gt;
		local thisseason = tonumber(string.sub(k,6))&lt;br /&gt;
		if string.sub(k,1,5) == &amp;#039;color&amp;#039; and thisseason &amp;gt; num_seasons then&lt;br /&gt;
			num_seasons = thisseason&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if num_seasons &amp;lt; 1 then&lt;br /&gt;
		num_seasons = 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Determine number of episodes and subtract averages if included (they should be equal to the number of seasons)&lt;br /&gt;
	local num_episodes&lt;br /&gt;
	if average == 1 then&lt;br /&gt;
		num_episodes = numberargs-num_seasons&lt;br /&gt;
	else&lt;br /&gt;
		num_episodes = numberargs&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Bar and graph width&lt;br /&gt;
	local barwidth&lt;br /&gt;
	if num_episodes &amp;gt;= 80 then barwidth = 9&lt;br /&gt;
	elseif num_episodes &amp;gt;= 50 then barwidth = 10&lt;br /&gt;
	elseif num_episodes &amp;gt;= 20 then barwidth = 11&lt;br /&gt;
	else barwidth = 12&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local graphwidth = num_episodes*barwidth&lt;br /&gt;
	&lt;br /&gt;
	-- Determine maximum viewer figure&lt;br /&gt;
	local maxviewers = -1&lt;br /&gt;
	local multiple = &amp;#039;millions&amp;#039;&lt;br /&gt;
	for k,v in pairs(args) do&lt;br /&gt;
		local num = tonumber(v)&lt;br /&gt;
		if tonumber(k) ~= nil and num ~= nil and num &amp;gt; maxviewers then&lt;br /&gt;
			maxviewers = num&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if maxviewers &amp;lt;= 1.5 then&lt;br /&gt;
		multiple = &amp;#039;thousands&amp;#039;&lt;br /&gt;
		maxviewers = maxviewers*1000&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			local num = tonumber(v)&lt;br /&gt;
			if tonumber(k) ~= nil and num ~= nil then args[k] = tostring(num*1000) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Basis parameters&lt;br /&gt;
	timeline[&amp;#039;type&amp;#039;] = &amp;#039;stackedrect&amp;#039;&lt;br /&gt;
	timeline[&amp;#039;width&amp;#039;] = (args.width or graphwidth)&lt;br /&gt;
	timeline[&amp;#039;height&amp;#039;] = (args.height or 300)&lt;br /&gt;
	timeline[&amp;#039;legend&amp;#039;] = season_title&lt;br /&gt;
	timeline[&amp;#039;colors&amp;#039;] = &amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	timeline[&amp;#039;x&amp;#039;] = &amp;#039;&amp;#039;&lt;br /&gt;
	timeline[&amp;#039;xType&amp;#039;] = &amp;#039;string&amp;#039;&lt;br /&gt;
	timeline[&amp;#039;xAxisAngle&amp;#039;] = &amp;#039;-90&amp;#039;&lt;br /&gt;
	timeline[&amp;#039;xAxisTitle&amp;#039;] = &amp;#039;Episode&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	timeline[&amp;#039;yGrid&amp;#039;] = &amp;#039;y&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	-- Color and legend variables&lt;br /&gt;
	for season = 1,num_seasons do &lt;br /&gt;
		args[&amp;quot;color&amp;quot; .. season] = args[&amp;quot;color&amp;quot; .. season] or &amp;#039;#CCCCFF&amp;#039;;&lt;br /&gt;
		if num_seasons &amp;gt; 1 then&lt;br /&gt;
			timeline[&amp;#039;y&amp;#039;..season..&amp;#039;Title&amp;#039;] = (args[&amp;quot;legend&amp;quot; .. season] or season) .. &amp;quot; &amp;quot; -- The space after this is not a regular space, it is a copy-pasted non-breaking space so the graph registers season names that are numbers (such as 1984 for American Horror Story) as a string, not a number; if it registers as a number, it will register as the first season. Do not remove/change it.&lt;br /&gt;
		elseif timeline[&amp;#039;legend&amp;#039;] then&lt;br /&gt;
			timeline[&amp;#039;legend&amp;#039;] = nil&lt;br /&gt;
		end&lt;br /&gt;
		timeline[&amp;#039;colors&amp;#039;] = timeline[&amp;#039;colors&amp;#039;] .. args[&amp;quot;color&amp;quot; .. season] .. &amp;#039;,&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Axis labels&lt;br /&gt;
	local countryDisplayUS, countryDisplayUK, countryDisplayOther&lt;br /&gt;
	if args.country ~= nil and args.country ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if args.country == &amp;quot;U.S.&amp;quot; or args.country == &amp;quot;US&amp;quot; or args.country == &amp;quot;United States&amp;quot; then countryDisplayUS = &amp;#039;U.S.&amp;#039;&lt;br /&gt;
		elseif args.country == &amp;quot;U.K.&amp;quot; or args.country == &amp;quot;UK&amp;quot; or args.country == &amp;quot;United Kingdom&amp;quot; then countryDisplayUK = &amp;#039;UK&amp;#039;&lt;br /&gt;
		else countryDisplayOther = args.country&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	timeline[&amp;#039;yAxisTitle&amp;#039;] = ((countryDisplayUS or countryDisplayUK or countryDisplayOther) or &amp;quot;&amp;quot;) .. ((countryDisplayUS or countryDisplayUK or countryDisplayOther) and &amp;quot; v&amp;quot; or &amp;quot;V&amp;quot;) .. &amp;quot;iewers (&amp;quot; .. multiple .. &amp;quot;)\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- Add bars to timeline, one per viewer figure&lt;br /&gt;
	local bar = 1&lt;br /&gt;
	local season = 0&lt;br /&gt;
	local thisseason = 0&lt;br /&gt;
	local counted_episodes = 0&lt;br /&gt;
	&lt;br /&gt;
	for k,v in ipairs(args) do&lt;br /&gt;
		if string.lower(v) == &amp;#039;n/a&amp;#039; then v = &amp;#039;&amp;#039; end&lt;br /&gt;
		&lt;br /&gt;
		if v == &amp;#039;-&amp;#039; then&lt;br /&gt;
			-- Hyphen means new season&lt;br /&gt;
			season = season + 1&lt;br /&gt;
			timeline[&amp;#039;y&amp;#039;..season] = &amp;#039;&amp;#039;&lt;br /&gt;
			for ep = 1,counted_episodes do &lt;br /&gt;
				timeline[&amp;#039;y&amp;#039;..season] = timeline[&amp;#039;y&amp;#039;..season] .. &amp;#039;,&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- Determine highest number of counted_episodes in a season&lt;br /&gt;
			if thisseason &amp;gt; longestseason then&lt;br /&gt;
				longestseason = thisseason&lt;br /&gt;
			end&lt;br /&gt;
			thisseason = 0&lt;br /&gt;
		elseif average == 0 or (average == 1 and args[k+1] ~= &amp;#039;-&amp;#039; and args[k+1] ~= nil) then&lt;br /&gt;
			-- Include bar for viewer figure, do not include if averages are included and the next parameter is a new season marker&lt;br /&gt;
			timeline[&amp;#039;y&amp;#039;..season] = timeline[&amp;#039;y&amp;#039;..season] .. (timeline[&amp;#039;y&amp;#039;..season] and &amp;#039;,&amp;#039; or &amp;#039;&amp;#039;) .. (v ~= &amp;#039;&amp;#039; and v or 0)&lt;br /&gt;
			&lt;br /&gt;
			-- Increment tracking variables&lt;br /&gt;
			counted_episodes = counted_episodes + 1&lt;br /&gt;
			thisseason = thisseason + 1&lt;br /&gt;
			bar = bar + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Determine highest number of episodes in a season after final season&amp;#039;s bars&lt;br /&gt;
	if thisseason &amp;gt; longestseason then&lt;br /&gt;
		longestseason = thisseason&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- X axis variables&lt;br /&gt;
	for ep = 1,num_episodes do &lt;br /&gt;
		timeline[&amp;#039;x&amp;#039;] = timeline[&amp;#039;x&amp;#039;] .. (timeline[&amp;#039;x&amp;#039;] and &amp;#039;,&amp;#039; or &amp;#039;&amp;#039;) .. ep&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- If there&amp;#039;s a title, add it with the viewers caption, else just display the viewers caption by itself&lt;br /&gt;
	if args.title ~= nil and args.title ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		root:wikitext(&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; .. args.title .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. &amp;quot;&amp;amp;#8202;&amp;quot; .. &amp;quot;: &amp;quot; .. ((countryDisplayUS or countryDisplayUK or countryDisplayOther) or &amp;quot;&amp;quot;) .. ((countryDisplayUS or countryDisplayUK or countryDisplayOther) and &amp;quot; v&amp;quot; or &amp;quot;V&amp;quot;) .. &amp;quot;iewers per episode (&amp;quot; .. multiple .. &amp;quot;)&amp;#039;&amp;#039;&amp;#039;&amp;quot;):css(&amp;#039;margin-top&amp;#039;, &amp;#039;1em&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		root:wikitext(&amp;quot;&amp;#039;&amp;#039;&amp;#039;Viewers per episode (&amp;quot; .. multiple .. &amp;quot;)&amp;#039;&amp;#039;&amp;#039;&amp;quot;):css(&amp;#039;margin-top&amp;#039;, &amp;#039;1em&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	root:tag(&amp;#039;div&amp;#039;):css(&amp;#039;clear&amp;#039;,&amp;#039;both&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Add timeline to div&lt;br /&gt;
	if args.no_graph == nil then&lt;br /&gt;
		timeline[1] = &amp;#039;&amp;#039;&lt;br /&gt;
		-- This reduces the [[WP:PEIS]]. [[Module:Graph:Chart]] pretends to be&lt;br /&gt;
		-- [[Template:Graph:Chart]], and we pass it a modified frame with the&lt;br /&gt;
		-- arguments we would have sent to [[Template:Graph:Chart]].&lt;br /&gt;
		local oldArgs = frame.args&lt;br /&gt;
		frame.args = timeline&lt;br /&gt;
		root:wikitext(require(&amp;#039;Module:Graph:Chart&amp;#039;)[&amp;#039;&amp;#039;](frame))&lt;br /&gt;
		frame.args = oldArgs&lt;br /&gt;
		root:tag(&amp;#039;div&amp;#039;):css(&amp;#039;clear&amp;#039;,&amp;#039;both&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Create ratings table&lt;br /&gt;
	if args.no_table == nil then&lt;br /&gt;
		local rtable = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
		   	:addClass(&amp;#039;wikitable&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
		&lt;br /&gt;
			-- Create headers rows&lt;br /&gt;
			local row = rtable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			row:tag(&amp;#039;th&amp;#039;):wikitext(season_title)&lt;br /&gt;
				:attr(&amp;#039;colspan&amp;#039;,&amp;#039;2&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;rowspan&amp;#039;,&amp;#039;2&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;padding-left&amp;#039;, &amp;#039;.8em&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;padding-right&amp;#039;, &amp;#039;.8em&amp;#039;)&lt;br /&gt;
				&lt;br /&gt;
			row:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;colspan&amp;#039;,longestseason)&lt;br /&gt;
				:wikitext(&amp;quot;Episode number&amp;quot;)&lt;br /&gt;
				:css(&amp;#039;padding-left&amp;#039;, &amp;#039;.8em&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;padding-right&amp;#039;, &amp;#039;.8em&amp;#039;)&lt;br /&gt;
				&lt;br /&gt;
			-- Average column&lt;br /&gt;
			if average == 1 then&lt;br /&gt;
				row:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				   :attr(&amp;#039;scope&amp;#039;,&amp;#039;col&amp;#039;)&lt;br /&gt;
				   :attr(&amp;#039;rowspan&amp;#039;,&amp;#039;2&amp;#039;)&lt;br /&gt;
				   :wikitext(&amp;quot;Average&amp;quot;)&lt;br /&gt;
				   :css(&amp;#039;padding-left&amp;#039;, &amp;#039;.8em&amp;#039;)&lt;br /&gt;
				   :css(&amp;#039;padding-right&amp;#039;, &amp;#039;.8em&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			local row = rtable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			&lt;br /&gt;
			for i = 1,longestseason do&lt;br /&gt;
				row:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				   :attr(&amp;#039;scope&amp;#039;,&amp;#039;col&amp;#039;)&lt;br /&gt;
				   :wikitext(i)&lt;br /&gt;
			end&lt;br /&gt;
		&lt;br /&gt;
		local season = 1&lt;br /&gt;
		local thisseason = 0&lt;br /&gt;
		&lt;br /&gt;
		-- Create table rows and cells&lt;br /&gt;
		for k,v in pairs(args) do&lt;br /&gt;
			if tonumber(k) ~= nil then&lt;br /&gt;
				-- New season marker, or final episode rating&lt;br /&gt;
				if v == &amp;#039;-&amp;#039;  or (average == 1 and args[k+1] == nil) then&lt;br /&gt;
					if season &amp;gt; 1 then&lt;br /&gt;
						-- Spanning empty cells with {{N/A}}&lt;br /&gt;
						if thisseason &amp;lt; longestseason then&lt;br /&gt;
							row:node(TVRG.NACell(frame,&amp;quot;–&amp;quot;):attr(&amp;#039;colspan&amp;#039;,longestseason-thisseason))&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						if average == 1 then&lt;br /&gt;
							-- If averages included, then set the averages cell with value or TBD&lt;br /&gt;
							if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
								row:tag(&amp;#039;td&amp;#039;):wikitext(args[k+1] ~= nil and args[k-1] or v)&lt;br /&gt;
							else&lt;br /&gt;
								row:node(TVRG.NACell(frame,&amp;quot;TBD&amp;quot;))&lt;br /&gt;
							end&lt;br /&gt;
							thisseason = thisseason + 1&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					-- New season marker&lt;br /&gt;
					if v == &amp;#039;-&amp;#039; then&lt;br /&gt;
						-- New row with default or preset caption&lt;br /&gt;
						row = rtable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
						row:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
							:css(&amp;#039;background-color&amp;#039;, args[&amp;#039;color&amp;#039; .. season])&lt;br /&gt;
							:css(&amp;#039;width&amp;#039;,&amp;#039;10px&amp;#039;)&lt;br /&gt;
						&lt;br /&gt;
						row:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
						   :attr(&amp;#039;scope&amp;#039;,&amp;#039;row&amp;#039;)&lt;br /&gt;
						   :wikitext(args[&amp;quot;legend&amp;quot; .. season] and args[&amp;quot;legend&amp;quot; .. season] or season)&lt;br /&gt;
						&lt;br /&gt;
						thisseason = 0&lt;br /&gt;
						season = season + 1&lt;br /&gt;
					end&lt;br /&gt;
				elseif average == 0 or (average == 1 and args[k+1] ~= &amp;#039;-&amp;#039; and args[k+1] ~= nil) then&lt;br /&gt;
					-- Viewer figures, either as a number or TBD&lt;br /&gt;
					if string.lower(v) == &amp;#039;n/a&amp;#039; then&lt;br /&gt;
						row:node(TVRG.NACell(frame,&amp;quot;N/A&amp;quot;))&lt;br /&gt;
					elseif v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
						row:tag(&amp;#039;td&amp;#039;):wikitext(v)&lt;br /&gt;
						   :css(&amp;#039;width&amp;#039;, &amp;#039;35px&amp;#039;)&lt;br /&gt;
					else&lt;br /&gt;
						row:node(TVRG.NACell(frame,&amp;quot;TBD&amp;quot;))&lt;br /&gt;
					end&lt;br /&gt;
					thisseason = thisseason + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- Finish by checking if final row needs {{N/A}} cells&lt;br /&gt;
		if average == 0 and thisseason &amp;lt; longestseason then&lt;br /&gt;
			row:node(TVRG.NACell(frame,&amp;quot;–&amp;quot;):attr(&amp;#039;colspan&amp;#039;,longestseason-thisseason))&lt;br /&gt;
		end&lt;br /&gt;
			&lt;br /&gt;
		-- Add table to div root and return&lt;br /&gt;
		root:node(rtable)&lt;br /&gt;
		root:tag(&amp;#039;div&amp;#039;):css(&amp;#039;clear&amp;#039;,&amp;#039;both&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local current_monthyear = os.date(&amp;quot;%B %Y&amp;quot;)&lt;br /&gt;
	local span = mw.html.create(&amp;#039;span&amp;#039;):wikitext(frame:expandTemplate{title=&amp;#039;Citation needed&amp;#039;, args={date=current_monthyear}})&lt;br /&gt;
	     &lt;br /&gt;
	if countryDisplayUS then&lt;br /&gt;
		root:wikitext(&amp;quot;&amp;lt;small&amp;gt;Audience measurement performed by [[Nielsen Media Research]]&amp;lt;/small&amp;gt;&amp;quot; .. (args.refs ~= &amp;#039;&amp;#039; and args.refs or tostring(span)))&lt;br /&gt;
	elseif countryDisplayUK then&lt;br /&gt;
		root:wikitext(&amp;quot;&amp;lt;small&amp;gt;Audience measurement performed by [[Broadcasters&amp;#039; Audience Research Board]]&amp;lt;/small&amp;gt;&amp;quot; .. (args.refs ~= &amp;#039;&amp;#039; and args.refs or tostring(span)))&lt;br /&gt;
	else&lt;br /&gt;
		root:wikitext(&amp;quot;&amp;lt;small&amp;gt;Source: &amp;lt;/small&amp;gt;&amp;quot; .. (args.refs ~= &amp;#039;&amp;#039; and args.refs or tostring(span)))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		removeBlanks = false,&lt;br /&gt;
		wrappers = &amp;#039;Template:Television ratings graph&amp;#039;&lt;br /&gt;
	})&lt;br /&gt;
	return TVRG.new(frame,args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;Alex 21</name></author>
	</entry>
</feed>