|
|
| Linje 1: |
Linje 1: |
| 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 "[[Kategori:test1]]"
| |
| end
| |
|
| |
| local pxxx = args['wdparam']
| |
| local nbpar = args['nbparam']
| |
| if not pxxx or not nbpar then
| |
| return "[[Kategori:test2]]"
| |
| end
| |
|
| |
| local fraframe = p.frameparameter(frame)
| |
| local frawikidata = p.wikidataparameter(frame)
| |
| if fraframe == frawikidata or "[[" .. tostring(frawikidata) .. "]]" == fraframe then
| |
| if fraframe == "" then
| |
| return "[[Kategori:test3]]"
| |
| else
| |
| return "[[Kategori:Artikler hvor " .. nbpar .. " er samme som på Wikidata]]"
| |
| end
| |
| else
| |
| if frawikidata == "" then
| |
| return "[[Kategori:Artikler hvor " .. nbpar .. " mangler på Wikidata]]"
| |
| end
| |
| if fraframe == "" then
| |
| return "[[Kategori:Artikler uten " .. nbpar .. " i infoboks med " .. nbpar .. " på Wikidata]]"
| |
| end
| |
| return "[[Kategori:Artikler med " .. nbpar .. " forskjellig fra Wikidata " .. fraframe .. " vs " .. frawikidata .. "]]"
| |
| end
| |
| end
| |
|
| |
| function p.sammenligindre(value1,value2,navn)
| |
| if value1 == value2 or "[[" .. value1 .. "]]" == value2 or value1 == "[[" .. value2 .. "]]" then
| |
| if value1 == "" then
| |
| return ""
| |
| else
| |
| return "[[Kategori:Artikler hvor " .. navn .. " er samme som på Wikidata]]"
| |
| end
| |
| else
| |
| if value2 == "" then
| |
| return "[[Kategori:Artikler hvor " .. navn .. " mangler på Wikidata]]"
| |
| end
| |
| if value1 == "" then
| |
| return "[[Kategori:Artikler uten " .. navn .. " i infoboks med " .. navn .. " på Wikidata]]"
| |
| end
| |
| return "[[Kategori:Artikler med " .. navn .. " forskjellig fra Wikidata]]"
| |
| end
| |
| end
| |
|
| |
| function p.sammenlign(frame)
| |
| local args = p.frameargs(frame)
| |
| if not args then
| |
| return "[[Kategori:test1]]"
| |
| end
| |
|
| |
| local pxxx = args['wdparam']
| |
| local nbpar = args['nbparam']
| |
| local parid = args['id']
| |
| if not pxxx or not nbpar or not parid then
| |
| return "[[Kategori:test2]]"
| |
| 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 "[[Kategori:Artikler som mangler etikett på Wikidata]]"
| |
| else
| |
| return ""
| |
| end
| |
| end
| |
|
| |
| return p
| |