Module:Post: Difference between revisions

From Nguhcraft Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 8: Line 8:
out = out .. "|-\n"
out = out .. "|-\n"
out = out .. "| " .. v.shorthand .. "\n"
out = out .. "| " .. v.shorthand .. "\n"
out = out .. "| " .. v.name .. "\n"
out = out .. "| [[" .. v.name .. "]]\n"
out = out .. "| " .. v.hq .. "\n"
out = out .. "| " .. v.hq .. "\n"
out = out .. "| "
out = out .. "| "
Line 36: Line 36:
end,
end,
all_facilities = function(frame)
all_facilities = function(frame)
local out = '{| class="wikitable sortable"\n|+ Postal Facilities\n|-\n! Country\n! Name\n! Location\n!Delivering Services\n! Notes\n'
local out = '{| class="wikitable sortable"\n|+ Postal Facilities\n|-\n! Country\n! Name\n! Location\n!Services with Delivery\n! Services with Pickup\n! Notes\n'
for _, v in ipairs(data.facilities) do
for _, v in ipairs(data.facilities) do
out = out .. "|-\n"
assert(v.pickup, v.name)
out = out .. "| " .. places.get_style(v.place) .. "\n"
out = out .. "|-\n"
out = out .. "| " .. v.name .. "\n"
out = out .. "| " .. places.get_style(v.place) .. "\n"
out = out .. "| " .. u.def(v.address, "")
out = out .. "| " .. v.name .. "\n"
out = out .. "〈" .. v.coordinates[1] .. ", " .. v.coordinates[2] .. ", " .. v.coordinates[3] .. "〉\n"
out = out .. "| " .. u.def(v.address, "")
out = out .. "| "
out = out .. "〈" .. v.coordinates[1] .. ", " .. v.coordinates[2] .. ", " .. v.coordinates[3] .. "〉\n"
if v.delivery == true then for i, provider in data.providers do out = out .. (i == 1 and "" or ", ") .. provider.name end
out = out .. "| "
else for i, provider in v.delivery do out = out .. (i == 1 and "" or ", ") .. u.find(data.providers, "shorthand", provider).name end
if v.delivery == true then for i, p in ipairs(data.providers) do out = out .. (i == 1 and "" or ", ") .. "[[" .. p.name .. "]]" end
else
for i, provider in ipairs(v.delivery) do
out = out .. (i == 1 and "" or ", ")
local _, p = u.find(data.providers, "shorthand", provider)
if p then out = out .. "[[" .. p.name .. "]]"
else out = out .. tostring(provider) .. " (Unknown)"  end
end
end
out = out .. "\n"
out = out .. "| "
if v.pickup == true then for i, p in ipairs(data.providers) do out = out .. (i == 1 and "" or ", ") .. "[[" .. p.name .. "]]" end
else
for i, provider in ipairs(v.pickup) do
out = out .. (i == 1 and "" or ", ")
local _, p = u.find(data.providers, "shorthand", provider)
if p then out = out .. "[[" .. p.name .. "]]"
else out = out .. tostring(provider) .. " (Unknown)"  end
end
end
out = out .. "\n"
end
out = out .. "| " .. u.def(v.notes, ""):gsub("{([A-Z][A-Z])}", places.get_style) .. "\n"
out = out .. "\n"
out = out .. "| " .. u.def(v.notes, ""):gsub("{([A-Z][A-Z])}", places.get_style) .. "\n"
end
end
out = out .. "|}\n"
out = out .. "|}\n"

Latest revision as of 19:31, 7 January 2026

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

local u = require"Module:Utils" 
local places = require"Module:Places"
local data = mw.loadJsonData"Data:Post"
local post = {
providers_table = function(frame)
	local out = '{| class="wikitable sortable"\n|+ Postal Service Providers\n|-\n! Code\n! Name\n! Headquarters\n! Manager(s)\n'
	for _, v in ipairs(data.providers) do
		out = out .. "|-\n"
		out = out .. "| " .. v.shorthand .. "\n"
		out = out .. "| [[" .. v.name .. "]]\n"
		out = out .. "| " .. v.hq .. "\n"
		out = out .. "| "
		for i, m in ipairs(v.managers) do
			if i ~= 1 then out = out .. ", " end
			out = out .. m
		end
		out = out .. "\n"
	end
	out = out .. "|}\n"
	return out
end,
facilities_without_service = function(frame)
	local out = '{| class="wikitable sortable"\n|+ Postal Facilities Without Service\n|-\n! Country\n! Name\n! Location\n! Notes\n'
	for _, v in ipairs(data.facilities) do
		if type(v.delivery) == "table" and #v.delivery == 0 then
			out = out .. "|-\n"
			out = out .. "| " .. places.get_style(v.place) .. "\n"
			out = out .. "| " .. v.name .. "\n"
			out = out .. "| " .. u.def(v.address, "")
			out = out .. "〈" .. v.coordinates[1] .. ", " .. v.coordinates[2] .. ", " .. v.coordinates[3] .. "〉\n"
			out = out .. "| " .. u.def(v.notes, ""):gsub("{([A-Z][A-Z])}", places.get_style) .. "\n"
		end
	end
	out = out .. "|}\n"
	return out
end,
all_facilities = function(frame)
	local out = '{| class="wikitable sortable"\n|+ Postal Facilities\n|-\n! Country\n! Name\n! Location\n!Services with Delivery\n! Services with Pickup\n! Notes\n'
	for _, v in ipairs(data.facilities) do
		assert(v.pickup, v.name)
		out = out .. "|-\n"
		out = out .. "| " .. places.get_style(v.place) .. "\n"
		out = out .. "| " .. v.name .. "\n"
		out = out .. "| " .. u.def(v.address, "")
		out = out .. "〈" .. v.coordinates[1] .. ", " .. v.coordinates[2] .. ", " .. v.coordinates[3] .. "〉\n"
		out = out .. "| "
		if v.delivery == true then for i, p in ipairs(data.providers) do out = out .. (i == 1 and "" or ", ") .. "[[" .. p.name .. "]]" end
		else
			for i, provider in ipairs(v.delivery) do
				out = out .. (i == 1 and "" or ", ")
				local _, p = u.find(data.providers, "shorthand", provider)
				if p then out = out .. "[[" .. p.name .. "]]"
				else out = out .. tostring(provider) .. " (Unknown)"  end
			end
		end
		out = out .. "\n"
		
		out = out .. "| "
		if v.pickup == true then for i, p in ipairs(data.providers) do out = out .. (i == 1 and "" or ", ") .. "[[" .. p.name .. "]]" end
		else
			for i, provider in ipairs(v.pickup) do
				out = out .. (i == 1 and "" or ", ")
				local _, p = u.find(data.providers, "shorthand", provider)
				if p then out = out .. "[[" .. p.name .. "]]"
				else out = out .. tostring(provider) .. " (Unknown)"  end
			end
		end
		out = out .. "\n"
		
		out = out .. "| " .. u.def(v.notes, ""):gsub("{([A-Z][A-Z])}", places.get_style) .. "\n"
	end
	out = out .. "|}\n"
	return out
end
}
return post