Aller au contenu

Module:WikidataCheck

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 septembre 2014 à 16:06 et modifiée en dernier par Zolo (discuter | contributions) (ce). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[créer] [purger]
local p = {}

local function categorize(wikipediavalue, wikidatavalue, catbase)
    if not wikidatavalue then
        return "[[Category:" .. catbase .. " absent de Wikidata]]"
    end
    if not wikipediavalue then
         return "[[Category:" .. catbase .. " fourni par Wikidata]]"
	end
	if wikipediavalue == wikidatavalue then
        return "[[Category:" .. catbase .. " identique sur Wikidata]]" -- yay!
	end
	return "[[Category:" .. catbase .. " différent sur Wikidata]]" -- needs human review :(
end

local function wikidatacheck(wikipediavalue, wikidatavalue, catbase, namespaces)
    -- exit if cat disabled in this namesapce
    local ok = false -- one-way flag to check if we're in a good namespace
    local ns = mw.title.getCurrentTitle().namespace
    for v in mw.text.gsplit( namespaces, ",", true) do
        if tonumber(v) == ns then
            ok = true
        end
    end
    if not ok then -- not in one of the approved namespaces
        return ""
    end
	return categorize(wikipediavalue, wikidatavalue, catbase)
end

function p.wikidatacheck(frame)
	local args= frame.args
	local namespaces = args.namespaces
	local wikipediavalue = args.value
	local property = args.property
	local catbase = args.category
	local wikidatavalue = require('Module:Wikidata')._formatStatements({item= item, property=property})
	return wikidatacheck(wikipediavalue, wikidatavalue, catbase, namespaces)
end

function p.checkedlink(frame)
	local args = frame.args
	local property = args.property
	local item = args.item
	local namespaces = args.namespaces or '0'
	local wikipediavalue = args.id
	local wikidatavalue = require('Module:Wikidata')._formatStatements({item = item, property = property})
	local val = wikipediavalue or wikidatavalue
	if not val then
		return nil
	end
	local url = args.url
	local link = mw.ustring.gsub(url, '$1', val)
	local title = args.title or val
	local basecatname = args.category
	local realcat = categorize(wikipediavalue, wikidatavalue, basecatname)
	local title = 'entrée ' .. val
	if args.title and args.title ~= '' then
		title = args.title
	end
	local accessdate = args.accessdate
	local sitename = ''
	if args.website then
		sitename = ' sur ' .. sitename
	end
	local accessdate = ''
	if args.accessdate and args.accessdate ~= '' then
		accessdate = ', consulté le ' .. accessdate
	end
	return '[' .. link .. ' ' .. title .. ']' .. website .. accessdate .. '.', realcat
end

return p