Modul:WikidataBilde
Utsjånad
Dokumentasjon for modulen kan opprettast på Modul:WikidataBilde/dok
local p = {}
function dump( out )
if type( out ) == 'table' then
local s = '{ '
for k,v in pairs( out ) do
if type( k ) ~= 'number' then k = '"'..k..'"' end
s = s .. '['..k..'] = ' .. dump( v ) .. ','
end
return s .. '} '
else
return tostring( out )
end
end
local kategori = {[5] = "biografi" }
local resten = "[[Kategori:Artiklar der bilete er henta frå Wikidata]]"
function finnKategori(frame)
if not mw.wikibase then
return resten
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return resten
end
local claims = artikkel.claims
if not claims then
return resten
end
local p31 = claims.P31
if not p31 then
return resten
end
if not p31[1].mainsnak then return resten end
if not p31[1].mainsnak.datavalue then return resten end
local forekomst = p31[1].mainsnak.datavalue.value
if kategori[forekomst["numeric-id"]] then
return "[[Kategori:Artiklar det bilete er henta frå Wikidata - " ..kategori[forekomst["numeric-id"]] .. "]]"
end
return resten
end
-- Return bilete til artikkelen
function p.wikidatabilete(frame)
if not mw.wikibase then
return ""
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return ""
end
local claims = artikkel.claims
if not claims then
return ""
end
local p18 = claims.P18
if not p18 then
return ""
end
return p18[1].mainsnak.datavalue.value
end
function p.framebilete(frame)
local args = frame.args
if args[1] == nil then
local pFrame = frame:getParent();
args = pFrame.args;
for k,v in pairs( frame.args ) do
args[k] = v;
end
end
if args['bilete'] then
return args['bilete']
end
return ""
end
function p.framekart(frame)
local args = frame.args
if args[1] == nil then
local pFrame = frame:getParent();
args = pFrame.args;
for k,v in pairs( frame.args ) do
args[k] = v;
end
end
if args['kart'] then
return args['kart']
end
return ""
end
function p.velgbilete(frame)
local bilete = p.framebilete(frame)
if bilete then
if bilete == "" then
-- return ""
elseif bilete == "utan" then
return ""
else
return bilete
end
else
return ""
end
local frawikidata = p.wikidatabilete(frame)
local framekart = p.framekart(frame)
if framekart == frawikidata then
return ""
end
return frawikidata
end
function p.sammenlignbilete(frame)
local fraframe = p.framebilete(frame)
local frawikidata = p.wikidatabilete(frame)
if fraframe == frawikidata then
if fraframe == "" then
return ""
else
return "[[Kategori:Artiklar der bilete er same som på Wikidata]]"
end
else
if frawikidata == "" then
return "[[Kategori:Artiklar der bilete manglar på Wikidata]]"
end
if fraframe == "" then
return "[[Kategori:Artiklar utan bilete i infoboks med bilete på Wikidata]]"
end
return "[[Kategori:Artiklar med bilete forskjellig frå Wikidata]]"
end
end
function p.sammenlignMedWikidataValgtBilde(frame)
local fraframe = p.framebilete(frame)
local frawikidata = p.wikidatabilete(frame)
local framekart = p.framekart(frame)
if fraframe == frawikidata then
if fraframe == "" then
return ""
else
return
end
else
if frawikidata == "" then
return "[[Kategori:Artiklar der bilete manglar på Wikidata]]"
end
if framekart == frawikidata then
return "[[Kategori:Artiklar der kart er same som bilete på Wikidata]]"
end
if fraframe == "" then
return finnKategori(frame)
end
return "[[Kategori:Artiklar med bilete forskjellig frå Wikidata]]"
end
end
return p