<?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%3ATropical_cyclone_season_effects</id>
	<title>Module:Tropical cyclone season effects - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ATropical_cyclone_season_effects"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Tropical_cyclone_season_effects&amp;action=history"/>
	<updated>2026-06-19T23:11:47Z</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:Tropical_cyclone_season_effects&amp;diff=479818&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:Tropical_cyclone_season_effects&amp;diff=479818&amp;oldid=prev"/>
		<updated>2021-07-16T07:42:53Z</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;-- Used for tropical cyclone season articles.&lt;br /&gt;
&lt;br /&gt;
local invocation = require('Module:Template invocation').invocation&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
local yesno = require('Module:Yesno')&lt;br /&gt;
local dateperiod = require('Module:Date period')._main&lt;br /&gt;
local Date = require('Module:Date')._Date&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		trim = true,&lt;br /&gt;
		removeBlanks = false&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
    return p._main(frame, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(frame, args)&lt;br /&gt;
	if not yesno(args[&amp;quot;no-header&amp;quot;]) and (args[&amp;quot;Basin&amp;quot;] or args[&amp;quot;basin&amp;quot;]) == nil then&lt;br /&gt;
		error(&amp;quot;Basin not specified&amp;quot;)&lt;br /&gt;
	elseif not yesno(args[&amp;quot;no-header&amp;quot;]) and (args[&amp;quot;start-year&amp;quot;] or args[&amp;quot;year&amp;quot;]) == nil then&lt;br /&gt;
		error(&amp;quot;Year (or start year) not specified&amp;quot;)&lt;br /&gt;
	elseif not yesno(args[&amp;quot;no-header&amp;quot;]) and args[&amp;quot;start-year&amp;quot;] == nil and args[&amp;quot;end-year&amp;quot;] ~= nil then&lt;br /&gt;
		error(&amp;quot;End year specified but start year not specified&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    local tableEntries = args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    local totalStorms = 0&lt;br /&gt;
    local strongestWinds = 0&lt;br /&gt;
    local tableWindsUnit = nil&lt;br /&gt;
    local lowestPressure = 2000&lt;br /&gt;
    local tablePressureUnit = nil&lt;br /&gt;
    local totalDamages = 0&lt;br /&gt;
    local totalDeaths = 0&lt;br /&gt;
    &lt;br /&gt;
    local earliestFormed = nil;&lt;br /&gt;
    local earliestFormedDate = nil;&lt;br /&gt;
    local latestDissipated = nil;&lt;br /&gt;
    local latestDissipatedDate = nil;&lt;br /&gt;
&lt;br /&gt;
    for name, formed, dissipated, winds, windsUnit, pressure, pressureUnit, damages, deaths in string.gmatch(&lt;br /&gt;
    	tableEntries,&lt;br /&gt;
    	'data%-tcse%-entry=&amp;quot;([^|]+)|([%w%-]+)|([%w%-]+)|([%d%.]+)|(%w+)|([%d%.]+)|(%w+)|([%d%.]+)|(%d+)&amp;quot;'&lt;br /&gt;
	) do&lt;br /&gt;
	    totalStorms = totalStorms + 1&lt;br /&gt;
	    &lt;br /&gt;
    	if latestDissipated ~= &amp;quot;present&amp;quot; then&lt;br /&gt;
    		if dissipated == &amp;quot;present&amp;quot; then&lt;br /&gt;
	    		latestDissipated = &amp;quot;present&amp;quot;&lt;br /&gt;
	    	elseif latestDissipated == nil or latestDissipatedDate == nil then&lt;br /&gt;
    			latestDissipated = dissipated&lt;br /&gt;
    			latestDissipatedDate= Date(dissipated)&lt;br /&gt;
	    	elseif latestDissipatedDate.gsd &amp;lt; Date(dissipated).gsd then&lt;br /&gt;
			    latestDissipated = dissipated&lt;br /&gt;
			    latestDissipatedDate = Date(dissipated)&lt;br /&gt;
    		end&lt;br /&gt;
    	end&lt;br /&gt;
	    &lt;br /&gt;
		if earliestFormed == nil then&lt;br /&gt;
			earliestFormed = formed&lt;br /&gt;
			earliestFormedDate = Date(formed)&lt;br /&gt;
    	elseif earliestFormedDate.gsd &amp;gt; Date(formed).gsd then&lt;br /&gt;
		    earliestFormed = formed&lt;br /&gt;
		    earliestFormedDate = Date(formed)&lt;br /&gt;
		end&lt;br /&gt;
    	&lt;br /&gt;
	    if tableWindsUnit == nil then&lt;br /&gt;
	    	tableWindsUnit = windsUnit&lt;br /&gt;
    	elseif windsUnit ~= tableWindsUnit then&lt;br /&gt;
    		error(&amp;quot;Winds unit of one storm does not match winds unit of all storms&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	    if tablePressureUnit == nil then&lt;br /&gt;
	    	tablePressureUnit = pressureUnit&lt;br /&gt;
    	elseif pressureUnit ~= tablePressureUnit then&lt;br /&gt;
    		error(&amp;quot;Pressure unit of one storm does not match pressure unit of all storms&amp;quot;)&lt;br /&gt;
    	end&lt;br /&gt;
	    if strongestWinds == nil or strongestWinds &amp;lt; tonumber(winds) then&lt;br /&gt;
	    	strongestWinds = tonumber(winds)&lt;br /&gt;
    	end&lt;br /&gt;
	    if lowestPressure == nil or lowestPressure &amp;gt; tonumber(pressure) then&lt;br /&gt;
	    	lowestPressure = tonumber(pressure)&lt;br /&gt;
    	end&lt;br /&gt;
	    &lt;br /&gt;
        totalDamages = totalDamages + tonumber(damages)&lt;br /&gt;
        totalDeaths = totalDeaths + tonumber(deaths)&lt;br /&gt;
        &lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local tcHeader = frame:expandTemplate{&lt;br /&gt;
		title = &amp;quot;Tropical cyclone season effects (top)&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			[&amp;quot;no-sort&amp;quot;] = totalStorms == 0 and &amp;quot;yes&amp;quot; or nil,&lt;br /&gt;
			[&amp;quot;no-header&amp;quot;] = args[&amp;quot;no-header&amp;quot;],&lt;br /&gt;
			[&amp;quot;basin&amp;quot;] = args[&amp;quot;basin&amp;quot;],&lt;br /&gt;
			[&amp;quot;start-year&amp;quot;] = args[&amp;quot;start-year&amp;quot;] or args[&amp;quot;year&amp;quot;],&lt;br /&gt;
			[&amp;quot;end-year&amp;quot;] = args[&amp;quot;end-year&amp;quot;],&lt;br /&gt;
			[&amp;quot;currency-link&amp;quot;] = args[&amp;quot;currency-link&amp;quot;]&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- Template parameters not yet standardized. Hence the usage of capitalized&lt;br /&gt;
	-- parameter names.&lt;br /&gt;
    local tcFooter = frame:expandTemplate{&lt;br /&gt;
    	title = &amp;quot;Tropical cyclone season effects (bottom)&amp;quot;,&lt;br /&gt;
    	args = {&lt;br /&gt;
			[&amp;quot;TC's&amp;quot;] = totalStorms .. &amp;quot; system&amp;quot; .. (totalStorms == 1 and &amp;quot;&amp;quot; or &amp;quot;s&amp;quot;),&lt;br /&gt;
			[&amp;quot;dates&amp;quot;] = totalStorms == 0 and &amp;quot;Season not started&amp;quot; or&lt;br /&gt;
				dateperiod(&lt;br /&gt;
					earliestFormed, &lt;br /&gt;
					(latestDissipated == &amp;quot;present&amp;quot; or yesno(args[&amp;quot;active&amp;quot;])) &lt;br /&gt;
					    and &amp;quot;Season ongoing&amp;quot; or latestDissipated,&lt;br /&gt;
					(latestDissipated == &amp;quot;present&amp;quot; or yesno(args[&amp;quot;active&amp;quot;]))&lt;br /&gt;
						and nil or true&lt;br /&gt;
				),&lt;br /&gt;
			[&amp;quot;winds&amp;quot;] = (totalStorms == 0 or strongestWinds == 0) and &amp;quot;&amp;quot; or&lt;br /&gt;
				(&lt;br /&gt;
					tableWindsUnit == &amp;quot;kn&amp;quot; and (&lt;br /&gt;
						frame:expandTemplate{&lt;br /&gt;
							title = &amp;quot;convert&amp;quot;,&lt;br /&gt;
							args = {&lt;br /&gt;
								strongestWinds, &lt;br /&gt;
								tableWindsUnit,&lt;br /&gt;
								args[&amp;quot;winds-target&amp;quot;] or &amp;quot;kph&amp;quot;,&lt;br /&gt;
								round = &amp;quot;5&amp;quot;,&lt;br /&gt;
								abbr = &amp;quot;on&amp;quot;,&lt;br /&gt;
								disp = &amp;quot;out&amp;quot;&lt;br /&gt;
							}&lt;br /&gt;
						} .. (args[&amp;quot;winds-target2&amp;quot;] ~= &amp;quot;none&amp;quot; and &amp;quot; (&amp;quot; .. frame:expandTemplate{&lt;br /&gt;
							title = &amp;quot;convert&amp;quot;,&lt;br /&gt;
							args = {&lt;br /&gt;
								strongestWinds, &lt;br /&gt;
								tableWindsUnit,&lt;br /&gt;
								args[&amp;quot;winds-target2&amp;quot;] or &amp;quot;mph&amp;quot;,&lt;br /&gt;
								round = &amp;quot;5&amp;quot;,&lt;br /&gt;
								abbr = &amp;quot;on&amp;quot;,&lt;br /&gt;
								disp = &amp;quot;out&amp;quot;&lt;br /&gt;
							}&lt;br /&gt;
						} .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
					) or frame:expandTemplate{&lt;br /&gt;
						title = &amp;quot;convert&amp;quot;,&lt;br /&gt;
						args = {&lt;br /&gt;
							strongestWinds, &lt;br /&gt;
							tableWindsUnit,&lt;br /&gt;
							args[&amp;quot;winds-target&amp;quot;] or &amp;quot;&amp;quot;,&lt;br /&gt;
							round = &amp;quot;5&amp;quot;,&lt;br /&gt;
							abbr = &amp;quot;on&amp;quot;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				),&lt;br /&gt;
			[&amp;quot;pres&amp;quot;] = (totalStorms == 0 or lowestPressure == 0) and &amp;quot;&amp;quot; or&lt;br /&gt;
				frame:expandTemplate{&lt;br /&gt;
					title = &amp;quot;convert&amp;quot;,&lt;br /&gt;
					args = {&lt;br /&gt;
						lowestPressure, &lt;br /&gt;
						tablePressureUnit,&lt;br /&gt;
						args[&amp;quot;pressure-target&amp;quot;] or &amp;quot;inHg&amp;quot;,&lt;br /&gt;
						comma = &amp;quot;off&amp;quot;,&lt;br /&gt;
						sigfig = 4,&lt;br /&gt;
						abbr = &amp;quot;on&amp;quot;&lt;br /&gt;
					}&lt;br /&gt;
				},&lt;br /&gt;
			[&amp;quot;damage&amp;quot;] = (totalStorms == 0 or totalDamages == 0) and &amp;quot;&amp;quot; or&lt;br /&gt;
				frame:expandTemplate{&lt;br /&gt;
					title = totalDamages == 0 and &amp;quot;nts&amp;quot; or &amp;quot;ntsp&amp;quot;,&lt;br /&gt;
					args = { totalDamages, &amp;quot;&amp;quot;, totalDamages ~= 0 and (args[&amp;quot;currency-symbol&amp;quot;] or &amp;quot;$&amp;quot;) }&lt;br /&gt;
				},&lt;br /&gt;
			[&amp;quot;deaths&amp;quot;] = (totalStorms == 0 or totalDeaths == 0) and &amp;quot;&amp;quot; or &lt;br /&gt;
				frame:expandTemplate{&lt;br /&gt;
					title = &amp;quot;nts&amp;quot;,&lt;br /&gt;
					args = { totalDeaths }&lt;br /&gt;
				},&lt;br /&gt;
			[&amp;quot;Refs&amp;quot;] = args[&amp;quot;footer-refs&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return tcHeader .. &amp;quot;\n&amp;quot; .. tableEntries .. &amp;quot;\n&amp;quot; .. tcFooter&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>