跳转到内容

模組:香港巴士

本页使用了标题或全文手工转换
被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由LuciferianThomas留言 | 贡献2021年7月25日 (日) 14:45编辑。这可能和当前版本存在着巨大的差异。

-- placeholder for subpage, will be written later
-- rewrite {{九龍新界巴士簡單列表}} etc. into module to reduce load
local getArgs = require('Module:Arguments').getArgs
local alldata = {
	klnt = require('Module:香港巴士/klnt');
	hki = require('Module:香港巴士/hki');
	crh = require('Module:香港巴士/crh');
	lantau = require('Module:香港巴士/lantau');
	aex = require('Module:香港巴士/aex')
}
local comp = {
	kmb = "九龍巴士"; city = "城巴";
	newworld = "新巴"; mtr = "港鐵巴士";
	lantau = "新大嶼山巴士"; mtrshut = "港鐵接駁巴士";
	crh = "過海隧道巴士"; longwin = "龍運巴士";
	disney = "迪士尼樂園巴士"; ltshut = "大嶼山北部穿梭巴士";
	airshut = "機場快綫穿梭巴士";
}
local p = {}

local dir = {'↺','→','⇄','→<br/>←','↺<br/>←','→<br/>↺'}

function split(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={}
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                table.insert(t, str)
        end
        return t
end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local grp = ''
	if args.l == "klnt" or args.l == "九龍" or args.l == "新界" or args.l == "九龍新界" then grp = "klnt"
	elseif args.l == "hki" or args.l == "港島" or args.l == "香港島" then grp = "hki"
	elseif args.l == "crh" or args.l == "過海" then grp = "crh"
	elseif args.l == "lantau" or args.l == "大嶼山" then grp = "lantau"
	elseif args.l == "aex" or args.l == "機場" then grp = "aex"
	end
	local data = alldata[grp]
	local out = ""
	-- Main module code goes here.
	-- return args
	for i = 1, 100, 1 do
		if not(args[i]) then break end
		local special = string.find('' .. args[i], "_s")
		local route = split(args[i], "_s")[1]
		local spi = split(args[i], "_s")[2]
		out = out .. '\n|-\n| style="text-align: right; padding-right: 10px" | [['
		if data[route] then
			out = out .. comp[data[route].company] .. route
			if route:gmatch("^%d$") then out = out .. "號" end
			if data[route].company == "mtr" or data[route].company == "mtrshut"
			or data[route].company == "airshut" then out = out .. "綫"
			else out = out .. "線" end
			out = out .. "|" .. route .. "]]"
			out = out .. '\n| style="text-align: right; white-space: nowrap" | '
			if special then
				out = out .. data[route]['special' .. spi .. '_endpoint1']
						  .. '\n| style="text-align: center; padding: 0px 8px 0px 8px" |'
						  .. dir[data[route]['special' .. spi .. '_direction']+1]
						  .. '\n| style="white-space: nowrap" |'
						  .. data[route]['special' .. spi .. '_endpoint2']
						  .. '\n| style="padding-left: 10px" |'
						  .. data[route]['special' .. spi .. '_status']
			else
				out = out .. data[route]['endpoint1']
						  .. '\n| style="text-align: center; padding: 0px 8px 0px 8px" |'
						  .. dir[data[route]['direction']+1]
						  .. '\n| style="white-space: nowrap" |'
						  .. data[route]['endpoint2']
						  .. '\n| style="padding-left: 10px" |'
						  .. data[route]['status']
			end
		else
			out = out .. '\n| colspan="3" style="text-align: center" | (沒有資料)'
		end
	end
	return out
end

return p