Module:Cenrail

From Nguhcraft Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:Cenrail/doc

local _m = {}

local line_data = require( 'Module:Data/Cenrail/Lines' )
local stop_data = require( 'Module:Data/Cenrail/Stops' )

local function formatDate (d)
	tbl = {
		year = tonumber(d:sub(1,4)),
		month = tonumber(d:sub(6,7)),
		day = tonumber(9,10)
	}
	return os.date("%d %B %Y", os.time(tbl))
end

_m.showline = function(frame)
	local line = frame.args[1] or "central"
	local data = line_data[line]
	local text = "{| class=\"wikitable\"\n"
	if not (data.is_local or data.is_minor) then
		text = text .. "!"
			.. "rowspan=\"" .. tostring(#data.stops + 1 + (data.loop and 1 or 0)) .. "\""
			.. "style=\"background-color:#" .. data.color .. "\""
			.. "|\n"
	end
	text = text .. "!Stop\n!Code\n!Date opened\n!Notes\n"
	for _, stop in ipairs(data.stops) do
		local sdata = stop_data[stop] or {name=stop}
		text = text .. "|-\n"
		text = text .. "|" .. sdata.name .. (sdata.country and ", " .. sdata.country or "") .. "\n"
		text = text .. "|" .. stop .. "\n"
		text = text .. "|" .. (sdata.date_opened and formatDate(sdata.date_opened) or "") .. "\n"
		text = text .. "|" .. (sdata.notes or "") .. "\n"
	end
	if data.loop then
		text = text .. "|-\n! colspan=\"4\"| ''Line loops back to first stop''\n"
	end
	text = text .. "|}\n"
	return text
end

return _m