Line 33: |
Line 33: |
| | | |
| local function render(args, frame) | | local function render(args, frame) |
− | local category = args.explicit[1] | + | -- Filter term ([1] = pattern to match, [2] = data element to match) |
− | local data = Data.load('Quest', category) | + | local filter = (args.explicit['filter'] or nil) |
| + | local categories = (args.explicit['categories'] or { args.explicit[1] }) |
| local result = {} | | local result = {} |
| table.insert(result, table_header) | | table.insert(result, table_header) |
− | for i, q in ipairs(data) do | + | for cat in categories do |
− | -- table.insert(result, _.format(table_row, q))
| + | local data = Data.load('Quest', cat) |
− | table.insert(result, _.format(table_row, {
| + | if (not (type(filter) == nil)) or (string.match(data[filter[2]], filter[1])) then |
− | label = q.label,
| + | for i, q in ipairs(data) do |
− | title = q.title,
| + | -- table.insert(result, _.format(table_row, q)) |
− | title_en = q.title_en,
| + | table.insert(result, _.format(table_row, { |
− | detail_en = q.detail_en,
| + | label = q.label, |
− | reward_fuel = q.reward_fuel,
| + | title = q.title, |
− | reward_ammo = q.reward_ammo,
| + | title_en = q.title_en, |
− | reward_steel = q.reward_steel,
| + | detail_en = q.detail_en, |
− | reward_bauxite = q.reward_bauxite,
| + | reward_fuel = q.reward_fuel, |
− | reward_other = q.reward_other,
| + | reward_ammo = q.reward_ammo, |
− | note = q.note,
| + | reward_steel = q.reward_steel, |
− | letter = q.label:sub(1, 1)
| + | reward_bauxite = q.reward_bauxite, |
− | }))
| + | reward_other = q.reward_other, |
| + | note = q.note, |
| + | letter = q.label:sub(1, 1) |
| + | })) |
| + | end |
| + | end |
| end | | end |
| table.insert(result, table_footer) | | table.insert(result, table_footer) |