Modul:WikidataCommonscat: Forskjell mellom sideversjoner

Fra Wikisida.no
Hopp til navigering Hopp til søk
Ingen redigeringsforklaring
m (30 sideversjoner ble importert)
 
(25 mellomliggende versjoner av 8 brukere er ikke vist)
Linje 8: Linje 8:
s = s .. '['..k..'] = ' .. dump( v ) .. ','
s = s .. '['..k..'] = ' .. dump( v ) .. ','
end
end
return s .. '} '
return s .. '} <br>'
else
else
return tostring( out )
return tostring( out )
Linje 14: Linje 14:
end
end


-- Return bilde til artikkelen
-- Returner commons categori til artikkelen fra wikidata
function p.wikidatacommonscat(frame)
function p.wikidatacommonscat(frame)
if not mw.wikibase then
if not mw.wikibase then
return ""
return ""
end
end
local artikkel = mw.wikibase.getEntity()
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
if not artikkel then
return "a"
return ""
end
end
local claims = artikkel.claims
local claims = artikkel.claims
if not claims then
if not claims then
return "b"
return ""
end
end
return dump(claims)
local p373 = claims.P373 -- ikke p men P
-- local P373 = claims.P373
if not p373 then
-- if not P373 then
return ""
end
-- return "c"
if p373[1].mainsnak and p373[1].mainsnak.datavalue then
-- end
return p373[1].mainsnak.datavalue.value

end
-- return P373[0].mainsnak.datavalue.value
return nil
end
end


Linje 49: Linje 50:
end
end
return ""
return ""
end

function p.comparecommonscat(frame)
local comcatframe = p.framecommonscat(frame)
local comcatwikidata = p.wikidatacommonscat(frame)
if comcatframe == comcatwikidata then
if comcatframe == "" then
return ""
else
return "[[Kategori:Artikler hvor comcat er samme som på Wikidata]]"
end
else
if comcatwikidata == "" then
return "[[Kategori:Artikler hvor comcat mangler på Wikidata]]"
end
if comcatframe == "" then
-- return "[[Kategori:Artikler uten comcat]]"
return ""
end
return "[[Kategori:Artikler med comcat forskjellig fra Wikidata]]"
end
end
end


Linje 55: Linje 77:
if commonscat then
if commonscat then
if commonscat == "" then
if commonscat == "" then
return p.wikidatacommonscat(frame) .. "1"
return p.wikidatacommonscat(frame)
else
else
return commonscat .. "2"
return commonscat
end
end
else
else
return p.wikidatacommonscat(frame) .. "3"
return p.wikidatacommonscat(frame) -- ser ikke ut til å komme hit
end
end


return p.wikidatacommonscat(frame) .. "4"
return p.wikidatacommonscat(frame) -- ser ikke ut til å komme hit
end
end



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

Modul som brukes av {{Commonscat fra Wikidata}}


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 .. '} <br>'
    else
        return tostring( out )
    end
end

-- Returner commons categori til artikkelen fra wikidata
function p.wikidatacommonscat(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 p373 = claims.P373  -- ikke p men P
    if not p373 then
        return "" 
    end
	if p373[1].mainsnak and p373[1].mainsnak.datavalue then
		return p373[1].mainsnak.datavalue.value
	end
	return nil
end

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

function p.comparecommonscat(frame)
    local comcatframe = p.framecommonscat(frame)
    local comcatwikidata = p.wikidatacommonscat(frame)
    if comcatframe == comcatwikidata then
        if comcatframe == "" then
            return ""
        else
            return "[[Kategori:Artikler hvor comcat er samme som på Wikidata]]"
        end
    else
        if comcatwikidata == "" then
            return "[[Kategori:Artikler hvor comcat mangler på Wikidata]]"
        end
        if comcatframe == "" then
           -- return "[[Kategori:Artikler uten comcat]]"
           return ""
        end
        return "[[Kategori:Artikler med comcat forskjellig fra Wikidata]]"
    end
end

function p.velgcommonscat(frame)
    local commonscat = p.framecommonscat(frame)
    if commonscat then
        if commonscat == "" then
            return p.wikidatacommonscat(frame)
        else
           return commonscat
        end
    else
        return p.wikidatacommonscat(frame) -- ser ikke ut til å komme hit
    end

    return p.wikidatacommonscat(frame) -- ser ikke ut til å komme hit
end

return p