Module:Historical
Datafiles are in Historical/country
{{#invoke:Historical|getEvents|1990|[country]}}
{{#invoke:Historical|getReign|1950|[country]}}
Swedish Kings :
In the year 1950, King Gustav VI Adolf reigns.
Currently reigning: King Gustav VI Adolf (since 1950)
Reign ends: 1973
In Norway
In the year 1950, King Haakon VII reigns.
Currently reigning: King Haakon VII (since 1905)
Reign ends: 1957
In France
In the year 1760, King Louis XV reigns.
Currently reigning: King Louis XV (since 1715)
Reign ends: 1774
In Spain
King Juan Carlos I abdicates, King Felipe VI ascends the throne.
In the year 2014, King Felipe VI reigns.
Currently reigning: King Felipe VI (since 2014)
In the year 2014 :King Juan Carlos I abdicates, King Felipe VI ascends the throne.
In England
In the year 1962, Queen Elizabeth II reigns.
Currently reigning: Queen Elizabeth II (since 1952)
Reign ends: 2022
In the year 1962 :
The Cuban Missile Crisis occurs.
The Commonwealth Immigrants Act is passed.
The Beatles release their first single, 'Love Me Do'.
The James Bond film series begins with 'Dr. No'.
local p = {}
-- Function to load the data from the subpage
local function loadData(country)
local success, data = pcall(function()
return mw.loadData('Module:Historical/' .. country)
end)
if success then
return data
else
return nil
end
end
-- Main function to be invoked
function p.getEvents(frame)
local year = tonumber(frame.args[1])
if not year then
return "No valid year specified."
end
local country = frame.args[2] or 'sweden'
local data = loadData(country)
if data then
local events = {}
for _, event in ipairs(data) do
if event.year == year then
table.insert(events, event.event)
end
end
if #events > 0 then
return table.concat(events, '<br>')
else
return "No events found for the year " .. year .. "."
end
else
return "No data found for the specified country."
end
end
-- Main function to be invoked
function p.getReign(frame)
local year = tonumber(frame.args[1])
if not year then
return "No valid year specified."
end
local country = frame.args[2] or 'swedishmonarchs'
local data = loadData(country)
if data then
local events = {}
local reigning = nil
local previousReign = nil
for _, entry in ipairs(data) do
if entry.year == year then
if entry.event then
table.insert(events, entry.event)
end
end
if entry.reign_start and year >= entry.reign_start then
previousReign = entry
end
if entry.reign_start and year < entry.reign_start then
break
end
end
if previousReign then
reigning = previousReign
end
if reigning then
table.insert(events, string.format("In the year %d, %s reigns.", year, reigning.king or reigning.queen))
table.insert(events, string.format("Currently reigning: %s (since %d)", reigning.king or reigning.queen, reigning.reign_start))
if reigning.reign_end then
table.insert(events, string.format("Reign ends: %d", reigning.reign_end))
end
end
if #events > 0 then
return table.concat(events, '<br>')
else
return "No events found for the year " .. year .. " in " .. country .. "."
end
else
return "No data found for the specified country: " .. country .. "."
end
end
return p