Module:TNT: Difference between revisions

Jump to navigation Jump to search
No edit summary
metawikimedia>MusikBot II
m Changed protection settings for "Module:TNT": High-risk template or module (more info) ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
Line 20: Line 20:
--
--
--    {{#invoke:TNT | msg
--    {{#invoke:TNT | msg
--    | I18n/Template:Graphs.tab  <!-- https://commons.miraheze.org/wiki/Data:I18n/Template:Graphs.tab -->
--    | I18n/Template:Graphs.tab  <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
--    | source-table              <!-- uses a translation message with id = "source-table" -->
--    | source-table              <!-- uses a translation message with id = "source-table" -->
--    | param1 }}                <!-- optional parameter -->
--    | param1 }}                <!-- optional parameter -->
Line 30: Line 30:
--
--
--    {{#invoke:TNT | doc | Graph:Lines }}
--    {{#invoke:TNT | doc | Graph:Lines }}
--        uses https://commons.miraheze.org/wiki/Data:Templatedata/Graph:Lines.tab
--        uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
--        if the current page is Template:Graph:Lines/doc
--        if the current page is Template:Graph:Lines/doc
--
--
Line 50: Line 50:
id = mw.text.trim(v)
id = mw.text.trim(v)
elseif type(k) == 'number' then
elseif type(k) == 'number' then
table.insert(params, mw.text.trim(v))
params[k - 2] = mw.text.trim(v)
elseif k == 'lang' and v ~= '_' then
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
lang = mw.text.trim(v)
Line 80: Line 80:
end
end


-- Obsolete function that adds a 'commons:' prefix to the first param.
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'commons:Data:Sandbox/Sample.tab'
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
function p.link(frame)
return link(frame.args[1])
return link(frame.args[1])
Line 96: Line 96:
local data = loadData(dataset)
local data = loadData(dataset)
local names = {}
local names = {}
for _, field in pairs(data.schema.fields) do
for _, field in ipairs(data.schema.fields) do
table.insert(names, field.name)
table.insert(names, field.name)
end
end
Line 102: Line 102:
local params = {}
local params = {}
local paramOrder = {}
local paramOrder = {}
for _, row in pairs(data.data) do
for _, row in ipairs(data.data) do
local newVal = {}
local newVal = {}
local name = nil
local name = nil
for pos, val in pairs(row) do
for pos, columnName in ipairs(names) do
local columnName = names[pos]
if columnName == 'name' then
if columnName == 'name' then
name = val
name = row[pos]
else
else
newVal[columnName] = val
newVal[columnName] = row[pos]
end
end
end
end
Line 157: Line 156:
-- Give helpful error to thirdparties who try and copy this module.
-- Give helpful error to thirdparties who try and copy this module.
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
error('Missing JsonConfig extension; Cannot load https://commons.miraheze.org/wiki/Data:' .. dataset)
error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset)
end
end


Line 175: Line 174:
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
link = function(dataset)
return 'commons:Data:' .. mw.text.trim(dataset or '')
return 'c:Data:' .. mw.text.trim(dataset or '')
end
end