Hopp til innhald

Modul:WikidataBilde

Frå Wikiquote

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