Module:WikidataParameter

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

function p.frameargs(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 return args end

-- Return bilde til artikkelen function p.wikidataparameter(frame) local args = p.frameargs(frame) if not args then return "" end local pxxx = args['wdparam'] local nbpar = args['nbparam'] if not pxxx or not nbpar then return "" end 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 parameter = claims[pxxx] if not parameter then return "" end

if not parameter[1].mainsnak then return end if not parameter[1].mainsnak.datavalue then return end return parameter[1].mainsnak.datavalue.value end

function p.frameparameter(frame) local args = p.frameargs(frame) if not args then return "" end

local nbpar = args['nbparam'] if args[nbpar] then return args[nbpar] end return "" end

function p.velgparameter(frame) local bilde = p.frameparameter(frame) if bilde then if bilde == "" then --           return "" else return bilde end else return "" end

return p.wikidataparameter(frame) end function p.sammenlignparameter(frame) local args = p.frameargs(frame) if not args then return "" end local pxxx = args['wdparam'] local nbpar = args['nbparam'] if not pxxx or not nbpar then return "" end local fraframe = p.frameparameter(frame) local frawikidata = p.wikidataparameter(frame) if fraframe == frawikidata or "" .. tostring(frawikidata) .. "" == fraframe then if fraframe == "" then return "" else return "" end else if frawikidata == "" then return "" end if fraframe == "" then return "" end return "" end end

function p.sammenligindre(value1,value2,navn) if value1 == value2 or "" .. value1 .. "" == value2 or value1 == "" .. value2 .. "" then if value1 == "" then return "" else return "" end else if value2 == "" then return "" end if value1 == "" then return "" end return "" end end

function p.sammenlign(frame) local args = p.frameargs(frame) if not args then return "" end local pxxx = args['wdparam'] local nbpar = args['nbparam'] local parid = args['id'] if not pxxx or not nbpar or not parid then return "" end return p.sammenligindre(nbpar,pxxx,parid) end

function p.getEntityIdFromValue( value ) local prefix = '' if value['entity-type'] == 'item' then prefix = 'Q'   elseif value['entity-type'] == 'property' then prefix = 'P'   else return formatError( 'unknown-entity-type' ) end return prefix .. value['numeric-id'] end

function p.wikidataetikett(frame) local artikkel = mw.wikibase.getEntityObject if not artikkel then return "" end if not artikkel.labels then return "" end local etikett = artikkel.labels['nb'] if etikett then return etikett end etikett = artikkel.labels['no'] return etikett end

function p.wikidataetikettsjekk(frame) local etikett = p.wikidataetikett(frame) if not etikett or etikett == "" then return "" else return "" end end

return p