Módulo:Desmontar/list
A documentação para este módulo pode ser criada em Módulo:Desmontar/list/doc
-- <pre>
local p = {}
local disdata = mw.loadData('Módulo:Desmontar/data')
local nocalc = {
refined = 1,
}
function p.main(frame)
local args = frame:getParent().args
local name = args[1] or ''
local catname = name
name = string.lower(name):gsub('parts?',''):gsub('components?','')
name = mw.text.trim(name)
local ret = {
string.format(':<i>Lista: [[:Categoria:Objetos desmontáveis por %s]]</i>',catname)
}
if not nocalc[name:lower()] then
table.insert(ret, string.format(':<i>Calculadora: [[Calculator:Desmontagem por material/%s]]</i>',catname:gsub('parts?',''):gsub('components?','')))
end
local list = {}
local _listed = {}
local addcalc = {}
for _, v in pairs(disdata) do
local dislist = table.concat({v.often or '', v.sometimes or '', v.rarely or ''},',')
local calc = v.nocalc == nil
dislist = string.lower(dislist)
dislist = mw.text.split(dislist,'%s*,%s*')
for _, w in ipairs(dislist) do
if w == name then
if _listed[v.cat or ''] then
-- do nothing
else
table.insert(list, { v.name, v.cat })
_listed[v.cat] = true
if calc then
addcalc[v.cat] = true
end
end
end
end
end
table.sort(list, function(a,b) return a[1] < b[1] end)
for _, v in ipairs(list) do
if addcalc[v[2]] then
table.insert(ret,string.format('* [[:Categoria:Categoria de desmontagem/%s|%s]] ([[Calculadora:Desmontagem por categoria/%s|Calculadora de análise de custos]])',v[2],v[1],v[2]))
else
table.insert(ret,string.format('* [[:Categoria:Categoria de desmontagem/%s|%s]]',v[2],v[1]))
end
end
return table.concat(ret,'\n')
end
return p