<?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%3ACTA_header</id>
	<title>Module:CTA header - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ACTA_header"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:CTA_header&amp;action=history"/>
	<updated>2026-06-25T23:56:36Z</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:CTA_header&amp;diff=471149&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:CTA_header&amp;diff=471149&amp;oldid=prev"/>
		<updated>2021-07-15T20:52:33Z</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;local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {parentOnly = true})&lt;br /&gt;
	&lt;br /&gt;
	local function getArgNums(prefix)&lt;br /&gt;
	-- Returns a table containing the numbers of the arguments that exist&lt;br /&gt;
	-- for the specified prefix. For example, if the prefix was 'data', and&lt;br /&gt;
	-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.&lt;br /&gt;
		local nums = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
	 		local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')&lt;br /&gt;
			if num then table.insert(nums, tonumber(num)) end&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(nums)&lt;br /&gt;
		return nums&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local dataTable = require('Module:Adjacent stations/CTA')['lines']&lt;br /&gt;
	local function getColor(line)&lt;br /&gt;
		if dataTable[line] then&lt;br /&gt;
			return dataTable[line]['color'] or ''&lt;br /&gt;
		else&lt;br /&gt;
			return ''&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local tmp, tmp2&lt;br /&gt;
	local color = args.color or ''&lt;br /&gt;
	local name = args.name or mw.ustring.gsub(mw.ustring.gsub(mw.title.getCurrentTitle().text, '%s+%b()$', '', 1), ' station', '', 1)&lt;br /&gt;
	local grid = (args.grid and '&amp;amp;nbsp;&amp;lt;div style=&amp;quot;display:inline-block;vertical-align:middle;line-height:0.9;text-align:'..(((color ~= '') and 'center') or 'right')..'&amp;quot;&amp;gt;'..mw.ustring.gsub(args.grid, '%s+', '&amp;lt;br/&amp;gt;')..'&amp;lt;/div&amp;gt;') or ''&lt;br /&gt;
	tmp2 = mw.ustring.gsub(name, '&amp;lt; ?/? ?[Ss][Mm][Aa][Ll][Ll] ?&amp;gt;', '')&lt;br /&gt;
	local size, length, br, size1, align = 15.4*(tonumber(args.size or 1))..'px', mw.ustring.len(tmp2), mw.ustring.match(tmp2, '&amp;lt; */? *[Bb][Rr] */? *&amp;gt;'), '200%', {'', ''}&lt;br /&gt;
	if br then&lt;br /&gt;
		size1 = '100%'&lt;br /&gt;
		tmp2 = mw.text.split(tmp2, '%s*&amp;lt; */? *[Bb][Rr] */? *&amp;gt;%s*')&lt;br /&gt;
		for k, v in ipairs(tmp2) do&lt;br /&gt;
			tmp2[k] = mw.ustring.len(v)&lt;br /&gt;
		end&lt;br /&gt;
		if tmp2[2] &amp;gt; tmp2[1] then length = tmp2[2] else length = tmp2[1] end&lt;br /&gt;
		if length &amp;gt; 15 then size = 15.4*(tonumber(args.size) or ((1/(0.1*(length-15)+1.7))+0.4))..'px' end&lt;br /&gt;
	elseif length &amp;gt; 6 then&lt;br /&gt;
		size = 15.4*(tonumber(args.size) or ((1/(0.35*(length-6)+1.7))+0.4))..'px'&lt;br /&gt;
	end&lt;br /&gt;
	if color ~= '' then&lt;br /&gt;
		color = getColor(color)&lt;br /&gt;
		return '&amp;lt;div style=&amp;quot;color:white;background:#'..color..';height:38px;display:block;vertical-align:middle;line-height:38px;border:0px solid transparent;font-size:'..size..'&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;fn org&amp;quot; style=&amp;quot;display:inline-block;vertical-align:middle;line-height:1;font-size:'..size1..';text-align:left&amp;quot;&amp;gt;'..name..'&amp;lt;/div&amp;gt;'..grid..'&amp;lt;/div&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	local colors, total = getArgNums('line'), 0&lt;br /&gt;
	for k, v in ipairs(colors) do&lt;br /&gt;
		colors[k] = getColor(args['line'..v])&lt;br /&gt;
		total = total + 1&lt;br /&gt;
	end&lt;br /&gt;
	local ratio = {1, 9, 17/3, 8.75, 6.8}&lt;br /&gt;
	ratio = mw.clone(ratio[total] or 10)&lt;br /&gt;
	total = total+(total-1)/ratio&lt;br /&gt;
	local gradient = 'linear-gradient(to bottom'&lt;br /&gt;
	for k, v in ipairs(colors) do&lt;br /&gt;
		tmp = ', #'..colors[k]..' '..100*((1+1/ratio)*(k-1))/total..'%, #'..colors[k]..' '..100*(k+(k-1)/ratio)/total..'%'..(colors[k+1] and ', #FFF '..100*(k+(k-1)/ratio)/total..'%'..', #FFF '..100*((1+1/ratio)*k)/total..'%' or '')&lt;br /&gt;
		gradient = gradient..tmp&lt;br /&gt;
	end&lt;br /&gt;
	gradient = gradient..') 1'&lt;br /&gt;
	return '&amp;lt;div style=&amp;quot;color:white;background:#5F6062;height:38px;display:block;vertical-align:middle;line-height:38px;border-top:0px solid transparent;border-bottom:0px solid transparent;border-left:50px solid #'..(colors[1] or '000000')..';border-right:50px solid #'..(colors[1] or '000000')..';font-size:'..size..';border-image:'..gradient..'&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;fn org&amp;quot; style=&amp;quot;display:inline-block;vertical-align:middle;line-height:1;font-size:'..size1..';text-align:left&amp;quot;&amp;gt;'..name..'&amp;lt;/div&amp;gt;'..grid..'&amp;lt;/div&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>