Module:Wikidata inventory number
Jump to navigation
Jump to search
Lua
Documentation for this module may be created at Module:Wikidata inventory number/doc
Code
local p = {}
--=========
local getArgs = require('Module:Arguments').getArgs
local formatStatementsE = require('Module:Wikidata')._formatStatementsE
local inventory_number_pid = "P217"
local collection_pid = "P195"
local inventory_template = {
["Louvre"] = "Louvre number",
["Q3044751"] = "Louvre number",
["Department of Near Eastern Antiquities of the Louvre"] = "Louvre number",
["Q3044749"] = "Louvre number",
["Department of Egyptian Antiquities of the Louvre"] = "Louvre number",
["Muséum de Toulouse"] = "Invno MHNT"
};
--========
function p._get_collection_qid( qid )
local entity = mw.wikibase.getEntityObject(qid)
if not entity then return nil end
return entity['claims'][collection_pid][1]['mainsnak']['datavalue']['value']['id']
end
function p._get_inventory_number( qid )
local entity = mw.wikibase.getEntityObject(qid)
if not entity then return nil end
return entity:formatPropertyValues( inventory_number_pid ).value
end
function p.get_inventory_number( frame )
local qid = getArgs(frame)["qid"]
return p._get_inventory_number( qid )
end
----
function p.display_inventory_number( frame )
local qid = getArgs(frame)["qid"]
local collection_qid = p._get_collection_qid(qid)
local accession_number = p._get_inventory_number( qid )
if inventory_template[collection_qid] ~= nil then
return frame:expandTemplate{ title = inventory_template[collection_qid], args = { accession_number } }
end
return accession_number
end
--========
return p