Modul:WikidataSymbol

Fra Wikisida.no
Sideversjon per 2. mar. 2015 kl. 16:14 av nb>Lucie Kaffee (WMDE) (change mw.wikibase.getEntitiy (deprecated) to mw.wikibase.getEntityObject)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)
Hopp til navigering Hopp til søk

Formål

Hvis Wikidata har definert et astronomisk symbol leveres det bildet tilbake dersom det ikke er gitt et symbol med som argument

Bruk

Modulen brukes ved å legge inn : {{#invoke:WikidataSymbol|symbol}} i en mal. Malen {{Symbol fra Wikidata}} har implementert dette.


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

-- Return bilde til artikkelen
function p.wikidatasymbol(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 p367 = claims.P367
    if not p367 then
        return ""
    end

    return p367[1].mainsnak.datavalue.value
end

function p.framesymbol(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['symbol'] then
        return args['symbol']
     end
     return ""
end

function p.velgsymbol(frame)
    local symbol = p.framesymbol(frame)
    if symbol then
        if symbol == "" then
--            return ""
        else
           return symbol
        end
    else
        return ""
    end

    return p.wikidatasymbol(frame)
end
 
function p.sammenlignsymbol(frame)
    local fraframe = p.framesymbol(frame)
    local frawikidata = p.wikidatasymbol(frame)
    if fraframe == frawikidata then
        if fraframe == "" then
            return ""
        else
            return "[[Kategori:Artikler hvor symbol er samme som på Wikidata]]"
        end
    else
        if frawikidata == "" then
            return "[[Kategori:Artikler hvor symbol mangler på Wikidata]]"
        end
        if fraframe == "" then
            return "[[Kategori:Artikler uten symbol i infoboks med symbol på Wikidata]]"
        end
        return "[[Kategori:Artikler med symbol forskjellig fra Wikidata]]"
    end
end

return p