Modul:WikidataUtils/Literature
Aspect

local Wikidata = require('Modul:Wikidata')
local getArgs = require('Modul:Arguments').getArgs
local lang = require('Modul:Lang').fromArgs
local p = {}
p.findOrigTitlesOfWork = function(entityId)
local ret = {}
local titleClaims = Wikidata.findBestClaimsForProperty(entityId, 'P1476')
if titleClaims then for _,eachTitleClaim in ipairs(titleClaims) do
if Wikidata.hasValueSnak(eachTitleClaim) then
ret[eachTitleClaim.mainsnak.datavalue.value.language] = eachTitleClaim.mainsnak.datavalue.value.text
end
end end
return ret
end
p.concatTitles = function(titles, sep)
local formattedTitles = {}
for eachLang,eachTitle in pairs(titles) do
if eachLang == 'ro' then
table.insert(formattedTitles, "''" .. eachTitle .. "''")
else
table.insert(formattedTitles, lang(eachLang, nil, eachTitle, true))
end
end
return mw.text.listToText(formattedTitles, sep, sep)
end
p.getOrigTitleOfWork = function(frame)
local args = getArgs(frame)
local entityId = args[1] or args['qid'] or mw.wikibase.getEntityIdForCurrentPage()
local sep = args['sep'] or tostring(mw.html.create('br'))
if not entityId then return nil end
local titles = p.findOrigTitlesOfWork(entityId)
return p.concatTitles(titles, sep)
end
return p