Module:DPLUtil

From Rocket League Esports Wiki
Jump to: navigation, search

To edit the documentation or categories for this module, click here.


local util_text = require('Module:TextUtil')
local util_table = require('Module:TableUtil')
local lang = mw.getLanguage('en')
local p = {}

function p.query(args, frame)
	if not frame then
		frame = mw.getCurrentFrame()
	end
	args[1] = ''
	return frame:callParserFunction{
		name = '#dpl:',
		args = args
	}
end

function p.truncateResult(tbl)
	if not next(tbl) then
		return {}
	end
	table.remove(tbl, #tbl)
	return tbl
end

function p.getListOfPagenames(args, frame)
	args.format = ',%PAGE%,;;,'
	args.debug = 0
	local result = p.query(args, frame)
	local tbl = util_text.split(result or '',';;')
	return p.truncateResult(tbl)
end
		

function p.escape(link)
	link = link or ''
	link = string.gsub(link,'%(','\\%(')
	link = string.gsub(link,'%)','\\%)')
	link = string.gsub(link,'%+','\\%+')
	return link
end

function p.whichPagesExist(links, frame)
	if not frame then frame = mw.getCurrentFrame() end
	for k, link in ipairs(links) do
		links[k] = lang:ucfirst(p.escape(link))
	end
	newlinks = frame:callParserFunction{
		name = '#dpl:',
		args = {
			'',
			titleregexp = table.concat(links,'|'),
			format = ',%PAGE%,;,',
			namespace = '',
			debug = 0,
		}
	}
	newlinks = newlinks .. mw.title.getCurrentTitle().text
	return util_text.split(newlinks,';')
end

function p.whatRedirectsHere(page, settings, frame)
	local args = {
		'',
		linksto = page,
		redirects = 'only',
		namespace = '',
		format = ',,%PAGE%;,',
		debug = '0'
	}
	util_table.merge(args, settings)
	if not frame then
		frame = mw.getCurrentFrame()
	end
	local list = frame:callParserFunction{
		name = '#dpl',
		args = args
	}
	local tbl = util_text.split(list,';')
	return p.truncateResult(tbl)
end

return p