Modul:WikidataParameter: Forskjell mellom sideversjoner

Fra Wikisida.no
Hopp til navigering Hopp til søk
(test)
m (22 sideversjoner ble importert)
 
(21 mellomliggende versjoner av 5 brukere er ikke vist)
Linje 29: Linje 29:
-- Return bilde til artikkelen
-- Return bilde til artikkelen
function p.wikidataparameter(frame)
function p.wikidataparameter(frame)
local args = frameargs(frame)
local args = p.frameargs(frame)
if not args then
if not args then
return ""
return ""
Linje 43: Linje 43:
return ""
return ""
end
end
local artikkel = mw.wikibase.getEntity()
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
if not artikkel then
return ""
return ""
Linje 56: Linje 56:
end
end


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


function p.frameparameter(frame)
function p.frameparameter(frame)
local args = frameargs(frame)
local args = p.frameargs(frame)
if not args then
if not args then
return ""
return ""
Linje 92: Linje 92:
function p.sammenlignparameter(frame)
function p.sammenlignparameter(frame)
local args = frameargs(frame)
local args = p.frameargs(frame)
if not args then
if not args then
return "[[Kategori:test1]]"
return "[[Kategori:test1]]"
Linje 105: Linje 105:
local fraframe = p.frameparameter(frame)
local fraframe = p.frameparameter(frame)
local frawikidata = p.wikidataparameter(frame)
local frawikidata = p.wikidataparameter(frame)
if fraframe == frawikidata then
if fraframe == frawikidata or "[[" .. tostring(frawikidata) .. "]]" == fraframe then
if fraframe == "" then
if fraframe == "" then
return "[[Kategori:test3]]"
return "[[Kategori:test3]]"
Linje 118: Linje 118:
return "[[Kategori:Artikler uten " .. nbpar .. " i infoboks med " .. nbpar .. " på Wikidata]]"
return "[[Kategori:Artikler uten " .. nbpar .. " i infoboks med " .. nbpar .. " på Wikidata]]"
end
end
return "[[Kategori:Artikler med " .. nbpar .. " forskjellig fra Wikidata]]"
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
end
end

Siste sideversjon per 21. mar. 2024 kl. 21:05

Dokumentasjon for denne modulen kan opprettes på Modul:WikidataParameter/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

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