<?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%3ASolar_eclipse</id>
	<title>Module:Solar eclipse - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ASolar_eclipse"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Solar_eclipse&amp;action=history"/>
	<updated>2026-06-13T19:31:58Z</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:Solar_eclipse&amp;diff=479477&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:Solar_eclipse&amp;diff=479477&amp;oldid=prev"/>
		<updated>2021-07-16T06:03:44Z</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 p = {}&lt;br /&gt;
local args = {}&lt;br /&gt;
&lt;br /&gt;
local data_module_prefix = &amp;quot;Module:Solar eclipse/db/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local function ifnotempty(s,a,b)&lt;br /&gt;
	if (s and s ~= '') then&lt;br /&gt;
		return a&lt;br /&gt;
	else&lt;br /&gt;
		return b&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ifexist(page)&lt;br /&gt;
	if not page then return false end&lt;br /&gt;
	if mw.title.new(page).exists then return true end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parsedate(y,m,d)&lt;br /&gt;
	local lang = mw.language.getContentLanguage()&lt;br /&gt;
	d = (tonumber(d) &amp;lt; 10) and ('0' .. tonumber(d)) or (d)&lt;br /&gt;
	m = (tonumber(m) &amp;lt; 10) and ('0' .. tonumber(m)) or (m)&lt;br /&gt;
	local success, result = pcall(lang.formatDate, lang, 'F j, Y', y .. '-' .. m .. '-' .. d)&lt;br /&gt;
	return success and result or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parsecoord(frame, s)&lt;br /&gt;
	local lat = s:match('^%s*([%d][%d.]*)%s*[NS]%s*[%d][%d.]*[EW]%s*$')&lt;br /&gt;
	local  NS = s:match('^%s*[%d][%d.]*%s*([NS])%s*[%d][%d.]*[EW]%s*$')&lt;br /&gt;
	local lon = s:match('^%s*[%d][%d.]*%s*[NS]%s*([%d][%d.]*)[EW]%s*$')&lt;br /&gt;
	local  EW = s:match('^%s*[%d][%d.]*%s*[NS]%s*[%d][%d.]*([EW])%s*$')&lt;br /&gt;
	if( lat and NS and lon and EW ) then&lt;br /&gt;
		return frame:expandTemplate{ title = 'coord', args = {lat, NS, lon, EW, 'type:landmark'} }&lt;br /&gt;
	else&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parsekm(frame, s)&lt;br /&gt;
	if(s and s:match('^%s*[%d][%d.]*%s*$')) then&lt;br /&gt;
		return frame:expandTemplate{ title = 'convert', args = {s, 'km', 'mi', abbr = 'on'} }&lt;br /&gt;
	else&lt;br /&gt;
		if(s and s ~= '') then&lt;br /&gt;
			return s .. ' km'&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parsetime(s)&lt;br /&gt;
	if(s and s ~= '') then&lt;br /&gt;
		local min = s:match('^%s*([%d][%d]*)m%s*[%d][%d]*s%s*$')&lt;br /&gt;
		local sec = s:match('^%s*[%d][%d]*m%s*([%d][%d]*)s%s*$')&lt;br /&gt;
		if( min and sec ) then&lt;br /&gt;
			return tostring(tonumber(min)*60 + tonumber(sec)) .. '&amp;amp;nbsp;sec' ..&lt;br /&gt;
				' (' .. min .. '&amp;amp;nbsp;m ' .. sec .. '&amp;amp;nbsp;s)'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cataloglink(c, y, m, d)&lt;br /&gt;
	y, m, d = tonumber(y), tonumber(m), tonumber(d)&lt;br /&gt;
	if tonumber(c) and y and m and d then&lt;br /&gt;
		d = (d &amp;lt; 10) and ('0' .. d) or d&lt;br /&gt;
		m = (m &amp;lt; 10) and ('0' .. m) or m&lt;br /&gt;
		return '[https://eclipse.gsfc.nasa.gov/SEsearch/SEdata.php?Ecl=+' .. y .. m .. d .. ' ' .. c .. ']'&lt;br /&gt;
	else&lt;br /&gt;
		return c&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function loadsolardb(frame, s)&lt;br /&gt;
	local yearstr = s:match('^%s*([%d][%d][%d][%d])[A-Z][a-z][a-z][%d][%d]%s*$') or ''&lt;br /&gt;
	local function setarg(k, v)&lt;br /&gt;
		if(v and v ~= '') then args[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	if( yearstr ~= '' ) then&lt;br /&gt;
		local dbsubpage = math.floor( (tonumber(yearstr) - 1) / 50 ) * 5&lt;br /&gt;
		local dbpage  = data_module_prefix .. tostring( dbsubpage )&lt;br /&gt;
		if (ifexist(dbpage)) then&lt;br /&gt;
			local data = mw.loadData(dbpage)&lt;br /&gt;
			local dargs = data[s] or error('Error: unknown date ' .. s .. ' in Infobox solar eclipse' , 0)&lt;br /&gt;
			setarg('date', parsedate(dargs['y'], dargs['m'] or dargs['m3'] or dargs['m2'], dargs['d'] or dargs['d2']))&lt;br /&gt;
			setarg('image', (dargs['Ph'] and dargs['Ph'] ~= '') and '[[File:' .. dargs['Ph']  .. '|320px]]' or nil)&lt;br /&gt;
			setarg('caption', dargs['PhCap'])&lt;br /&gt;
			setarg('map', (dargs['Map'] and dargs['Map'] ~= '') and '[[File:' .. dargs['Map']  .. '|320px]]' or nil)&lt;br /&gt;
			setarg('map_caption', 'Map')&lt;br /&gt;
			setarg('type_ref', '')&lt;br /&gt;
			setarg('cat', cataloglink(dargs['Cat'], dargs['y'], dargs['m'] or dargs['m3'] or dargs['m2'], dargs['d'] or dargs['d2']) )&lt;br /&gt;
			setarg('nature', dargs['Ty'])&lt;br /&gt;
			setarg('gamma', dargs['Gam'])&lt;br /&gt;
			setarg('magnitude', dargs['Mag'])&lt;br /&gt;
			setarg('saros', dargs['Saros'] and '[[Solar Saros ' .. dargs['Saros'] .. '|'  .. dargs['Saros'] .. ']]')&lt;br /&gt;
			setarg('saros_sequence', dargs['Mem'])&lt;br /&gt;
			setarg('saros_total', dargs['Max'])&lt;br /&gt;
			setarg('max_eclipse_ref', '')&lt;br /&gt;
			setarg('duration', parsetime(dargs['Dur']))&lt;br /&gt;
			setarg('location', '')&lt;br /&gt;
			setarg('coords', parsecoord(frame,dargs['Loc']))&lt;br /&gt;
			setarg('max_width', parsekm(frame,dargs['Wid']))&lt;br /&gt;
			setarg('times_ref', '')&lt;br /&gt;
			setarg('start_partial', dargs['TiPB'])&lt;br /&gt;
			setarg('start_total', dargs['TiTB'])&lt;br /&gt;
			setarg('start_central', '')&lt;br /&gt;
			setarg('greatest_eclipse', dargs['TiG'])&lt;br /&gt;
			setarg('end_central', '')&lt;br /&gt;
			setarg('end_total', dargs['TiTE'])&lt;br /&gt;
			setarg('end_partial', dargs['TiPE'])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function infobox(frame)&lt;br /&gt;
	local abovestr = ifnotempty(args['date'],&lt;br /&gt;
		&amp;quot;Solar eclipse of &amp;quot; .. (args['date'] or ''),&lt;br /&gt;
		&amp;quot;For instructions on use, see [[Template:Infobox Solar eclipse]]&amp;quot;)&lt;br /&gt;
	local bgcolor = args['background'] or args['bgcolour'] or ''&lt;br /&gt;
	local mapstr = ifnotempty(args['map'],&lt;br /&gt;
		&amp;quot;&amp;lt;div style='padding-bottom:0.5em;'&amp;gt;&amp;quot; ..&lt;br /&gt;
		(args['map'] or '') .. ifnotempty(args['map_caption'],&lt;br /&gt;
			&amp;quot;&amp;lt;div style='line-height:1.2em; padding-top:0.1em;'&amp;gt;&amp;quot; ..&lt;br /&gt;
			(args['map_caption'] or '') .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;, '') .. '&amp;lt;/div&amp;gt;')&lt;br /&gt;
&lt;br /&gt;
	return frame:expandTemplate{ title = 'infobox', args = {&lt;br /&gt;
		[&amp;quot;bodyclass&amp;quot;] = &amp;quot;vevent&amp;quot;,&lt;br /&gt;
		[&amp;quot;bodystyle&amp;quot;] = &amp;quot;width:25em; text-align:left; font-size:90%;&amp;quot;,&lt;br /&gt;
		[&amp;quot;above&amp;quot;] = abovestr,&lt;br /&gt;
		[&amp;quot;aboveclass&amp;quot;] = &amp;quot;summary&amp;quot;,&lt;br /&gt;
		[&amp;quot;abovestyle&amp;quot;] = &amp;quot;padding-bottom:0.25em; background:&amp;quot; .. bgcolor .. &amp;quot;; line-height:1.2em; text-align:center; font-size:115%;&amp;quot;,&lt;br /&gt;
------------------ Images and maps ------------------&lt;br /&gt;
		[&amp;quot;image&amp;quot;] = args['image'] or '',&lt;br /&gt;
		[&amp;quot;imagestyle&amp;quot;] = &amp;quot;padding-bottom:0.5em;&amp;quot;,&lt;br /&gt;
		[&amp;quot;caption&amp;quot;] = args['caption'] or '',&lt;br /&gt;
		[&amp;quot;headerstyle&amp;quot;] = &amp;quot;background:#eee; font-size:105%;&amp;quot;,&lt;br /&gt;
		[&amp;quot;data1&amp;quot;] = mapstr,&lt;br /&gt;
------------- Type of eclipse and saros -------------&lt;br /&gt;
		[&amp;quot;header2&amp;quot;] = &amp;quot;Type of eclipse&amp;quot; .. (args['type_ref'] or ''),&lt;br /&gt;
		[&amp;quot;label3&amp;quot;]  = &amp;quot;Nature&amp;quot;,&lt;br /&gt;
		[&amp;quot;data3&amp;quot;]   = args['nature'] or '',&lt;br /&gt;
		[&amp;quot;label4&amp;quot;]  = &amp;quot;[[Gamma (eclipse)|Gamma]]&amp;quot;,&lt;br /&gt;
		[&amp;quot;data4&amp;quot;]   = args['gamma'] or '',&lt;br /&gt;
		[&amp;quot;label5&amp;quot;]  = &amp;quot;[[Magnitude of eclipse|Magnitude]]&amp;quot;,&lt;br /&gt;
		[&amp;quot;data5&amp;quot;]   = args['magnitude'] or '',&lt;br /&gt;
------------------ Maximum eclipse ------------------&lt;br /&gt;
		[&amp;quot;header7&amp;quot;] = &amp;quot;Maximum eclipse&amp;quot; .. (args['max_eclipse_ref'] or ''),&lt;br /&gt;
		[&amp;quot;label8&amp;quot;] = &amp;quot;Duration&amp;quot;,&lt;br /&gt;
		[&amp;quot;data8&amp;quot;] = args['duration'] or '',&lt;br /&gt;
		[&amp;quot;label9&amp;quot;] = &amp;quot;Location&amp;quot;,&lt;br /&gt;
		[&amp;quot;data9&amp;quot;] = args['location'] or '',&lt;br /&gt;
		[&amp;quot;class9&amp;quot;] = &amp;quot;location&amp;quot;,&lt;br /&gt;
		[&amp;quot;label10&amp;quot;] = &amp;quot;Coordinates&amp;quot;,&lt;br /&gt;
		[&amp;quot;data10&amp;quot;] = args['coords'] or '',&lt;br /&gt;
		[&amp;quot;label11&amp;quot;] = &amp;quot;Max.&amp;amp;nbsp;width of&amp;amp;nbsp;band&amp;quot;,&lt;br /&gt;
		[&amp;quot;data11&amp;quot;] = args['max_width'] or '',&lt;br /&gt;
----------------------- Times -----------------------&lt;br /&gt;
		[&amp;quot;header12&amp;quot;] = &amp;quot;Times ([[UTC]])&amp;quot; .. (args['times_ref'] or ''),&lt;br /&gt;
		[&amp;quot;label13&amp;quot;] = &amp;quot;(P1) Partial begin&amp;quot;,&lt;br /&gt;
		[&amp;quot;data13&amp;quot;] = args['start_partial'] or '',&lt;br /&gt;
		[&amp;quot;label14&amp;quot;] = &amp;quot;(U1) Total begin&amp;quot;,&lt;br /&gt;
		[&amp;quot;data14&amp;quot;] = args['start_total'] or '',&lt;br /&gt;
		[&amp;quot;label15&amp;quot;] = &amp;quot;(U2) Central begin&amp;quot;,&lt;br /&gt;
		[&amp;quot;data15&amp;quot;] = args['start_central'] or '',&lt;br /&gt;
		[&amp;quot;label16&amp;quot;] = &amp;quot;Greatest eclipse&amp;quot;,&lt;br /&gt;
		[&amp;quot;data16&amp;quot;] = args['greatest_eclipse'] or '',&lt;br /&gt;
		[&amp;quot;label17&amp;quot;] = &amp;quot;(U3) Central end&amp;quot;,&lt;br /&gt;
		[&amp;quot;data17&amp;quot;] = args['end_central'] or '',&lt;br /&gt;
		[&amp;quot;label18&amp;quot;] = &amp;quot;(U4) Total end&amp;quot;,&lt;br /&gt;
		[&amp;quot;data18&amp;quot;] = args['end_total'] or '',&lt;br /&gt;
		[&amp;quot;label19&amp;quot;] = &amp;quot;(P4) Partial end&amp;quot;,&lt;br /&gt;
		[&amp;quot;data19&amp;quot;] = args['end_partial'] or '',&lt;br /&gt;
------------------------ Event references -------------------------&lt;br /&gt;
		[&amp;quot;header20&amp;quot;] = &amp;quot;References&amp;quot;,&lt;br /&gt;
		[&amp;quot;label21&amp;quot;] = &amp;quot;[[Saros (astronomy)|Saros]]&amp;quot;,&lt;br /&gt;
		[&amp;quot;data21&amp;quot;] = (args['saros'] or '')&lt;br /&gt;
			.. &amp;quot; (&amp;quot; .. (args['saros_sequence'] or '') .. &amp;quot; of &amp;quot; .. (args['saros_total'] or '') .. &amp;quot;)&amp;quot;,&lt;br /&gt;
		[&amp;quot;label22&amp;quot;] = &amp;quot;Catalog # (SE5000)&amp;quot;,&lt;br /&gt;
		[&amp;quot;data22&amp;quot;] = args['cat'] or '',&lt;br /&gt;
		} }&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.box(frame)&lt;br /&gt;
	args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
			wrappers = 'Template:Infobox solar eclipse'&lt;br /&gt;
		})&lt;br /&gt;
&lt;br /&gt;
	if( args['2'] and args['2'] ~= '') then&lt;br /&gt;
		loadsolardb(frame,args['2'])&lt;br /&gt;
	elseif( args['1'] and args['1'] ~= '') then&lt;br /&gt;
		loadsolardb(frame,args['1'])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return infobox(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>