Módulu:WikidataCommonsCat
Ver la documentación del módulu en ca:Mòdul:WikidataCommonsCat.
local p = {}
function p.getCommonslink(frame)
local args = frame.args or frame
local qid = string.upper(mw.text.trim(args[1] or ""))
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end
local sitelink_cat
local sitelink = mw.wikibase.getSitelink(qid, "commonswiki")
if not sitelink or sitelink:sub(1,9) ~= "Category:" then
-- check for topic's main category
local catid
local prop = mw.wikibase.getBestStatements(qid, "P910")[1]
if prop then
catid = prop.mainsnak.datavalue and prop.mainsnak.datavalue.value.id
sitelink_cat = mw.wikibase.getSitelink(catid, "commonswiki")
end
if not sitelink_cat then
-- check for list's main category
prop = mw.wikibase.getBestStatements(qid, "P1754")[1]
if prop then
catid = prop.mainsnak.datavalue and prop.mainsnak.datavalue.value.id
sitelink_cat = mw.wikibase.getSitelink(catid, "commonswiki")
end
if not sitelink_cat then
-- check for Commons category (string value)
prop = mw.wikibase.getBestStatements(qid, "P373")[1]
if prop then
sitelink_cat = prop.mainsnak.datavalue and prop.mainsnak.datavalue.value
if sitelink_cat then
sitelink_cat = "Category:" .. sitelink_cat
end
end
end
end
end
return sitelink_cat or sitelink or args.default
end
return p