Module:Character Card Grid

From Sekaipedia

Documentation for this module may be created at Module:Character Card Grid/doc

local getArgs   = require('Module:Arguments').getArgs
local cardGrid  = require('Module:Card Grid')

local p = {}

local function createQueryPart(arg, cargo_col)
	local list = mw.text.split(arg, ',')
	
	for i,v in ipairs(list) do
		local temp_v = string.gsub(string.gsub(mw.text.trim(v), ',', ','), "'", "\\'")
		list[i] = string.format("Cards.%s = '%s'", cargo_col, temp_v)
	end

	return '(' .. table.concat(list, ' OR ') .. ')'
end

function p.main(frame)
	local args = getArgs(frame)
	
	local lists = {}
	local query = {}
	
	if args['characters'] and args['characters'] ~= '' then
		table.insert(query, createQueryPart(args['characters'], 'card_character'))
	end
	
	if args['rarities'] and args['rarities'] ~= '' then
		table.insert(query, createQueryPart(args['rarities'], 'rarity'))
	end
	
	if #query > 0 then
		return cardGrid._main(
			{
			where = table.concat(query, ' AND '),
			orderBy = 'Cards.card_id ASC'
			},
			{
				show_name = false
			}
		)
	end
	
	return nil
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.