Module:Zabytek
Lua
Documentation for this module may be created at Module:Zabytek/doc
Code
--[[
Authors and maintainers:
* User:Jarekt
]]
local ISOdate = require('Module:ISOdate')._ISOdate
-- add optional module
-- used for debugging purposes as it detects cases of unintended global variables
local p = {}
function p.main()
local entity = mw.wikibase.getEntity()
if not entity then
return ''
end
local lang = mw.getCurrentFrame():callParserFunction("int", "lang")
local results = {}
local categories = {}
local statements = entity:getBestStatements('P3424')
local statementsFound = false
for _, statement in pairs(statements) do
statementsFound = true
local registerNumber = p.getRegisterNumber(statement) or '?'
local registerDate = p.getRegisterDate(statement) or '?'
if registerNumber == '?' then
table.insert(categories, '[[Category:Cultural heritage monuments in Poland with unknown register number]]')
end
if registerDate == '?' then
table.insert(categories, '[[Category:Cultural heritage monuments in Poland with unknown register date]]')
end
local formatted = registerNumber .. (registerDate and (' (' .. ISOdate(registerDate, lang) .. ')') or '')
table.insert(results, formatted)
end
if not statementsFound then
return '?' .. '[[Category:Cultural heritage monuments in Poland with unknown register number]]'
end
local text = table.concat(results, ', ')
local cats = table.concat(categories, ' ')
return text .. cats
end
function p.getRegisterNumber(statement)
if statement and statement.mainsnak.snaktype == 'value' then
return statement.mainsnak.datavalue.value
end
return nil
end
function p.getRegisterDate(statement)
if statement and statement.qualifiers and statement.qualifiers['P585'] then
local snak = statement.qualifiers['P585'][1]
local val = snak.datavalue.value.time
return string.sub(val, 2, 11)
end
return nil
end
return p