Module:CargoQuery: Difference between revisions

681 bytes added ,  00:25, 2 September 2020
m
THIS IS NOT A CODE OF HONOR
mNo edit summary
m (THIS IS NOT A CODE OF HONOR)
Line 14: Line 14:
local args = h.merge()
local args = h.merge()
local query = {}
result = p.query(args)
 
        local tbl = {}
for i, row in ipairs(result) do
row.index = i
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row }
end
local intro = frame:preprocess(args.intro or '')
local outro = frame:preprocess(args.outro or '')
return intro .. table.concat(tbl,args.delimiter or '') .. outro
end
 
function p.query(args)
  local frame = mw.getCurrentFrame()
  local query = {}
for k, v in pairs(args) do
for k, v in pairs(args) do
if string.sub(k, 0, 2) == 'q?' then
if string.sub(k, 0, 2) == 'q?' then
Line 38: Line 52:
h.concatOneToManyFieldsInEachRow(result, args.one_to_many_sep or ',')
h.concatOneToManyFieldsInEachRow(result, args.one_to_many_sep or ',')
end
end
local tbl = {}
return result
for i, row in ipairs(result) do
row.index = i
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row }
end
local intro = frame:preprocess(args.intro or '')
local outro = frame:preprocess(args.outro or '')
return intro .. table.concat(tbl,args.delimiter or '') .. outro
end
end


Line 147: Line 153:
function p.compound(frame)
function p.compound(frame)
         local args = h.merge()
         local args = h.merge()
         local result = {}
         local splitargs = {}
        for i, v in ipairs(args) do
 
            local query = {['args']=util_args.splitNamedArgs(v, '%s*;%s*')}
splitargs[1] = util_args.splitNamedArgs(args[1], '%s*;%s*')
            result[i] = p.main(query)
 
        end
splitargs[2] = util_args.splitNamedArgs(args[2], '%s*;%s*')
return table.concat(result, args.delimiter or '')
 
local result = {}
result[1] = p.query(splitargs[1])
result[2] = p.query(splitargs[2])
 
local tbl = {}
for i, row in ipairs(result[1]) do
row.index = i
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row }
end
 
part1 = table.concat(tbl,args.delimiter or '')
local tbl2 = {}
 
for j, rowj in ipairs(result2) do
row.index = i
tbl2[#tbl2+1] = frame:expandTemplate{ title = args.template, args = row }
end
 
local intro = frame:preprocess(args.intro or '')
local outro = frame:preprocess(args.outro or '')
return intro .. (part1 or '') ..(#part1 > 0 and (args.delimiter or '')) .. table.concat(tbl2, args.delimiter or '') .. outro
 
end
end


return p
return p