Salta al contegnùo

Modulo:Controło Wikidata

Da Wikipedia, l'ençiclopedia libara.


--[[
* Modulo che implementa il template Controllo Wikidata.
]]--
 
require('Modulo:No globals')
 
local getArgs = require('Modulo:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
local p = {}

-- Confronta due file multimediali su Commons senza tenere conto di eventuali underscore
local function compareCommonsMediaFile(name, name2)
	return name:gsub('_', ' ') == name2:gsub('_', ' ')
end

-- Confronta due URL senza tenere conto di un eventuale slash finale (solo se uno) e del protocollo http/https
local function compareURL(url1, url2)
	local ret = false
	url1, url2 = url1:match('^https?://(.*)$'), url2:match('^https?://(.*)$')
	if url1 and url2 then
		local n, n2 = select(2, url1:gsub('/', '')), select(2, url2:gsub('/', ''))
		if n <= 1 and n2 <= 1 then
			ret = url1:gsub('/$', '') == url2:gsub('/$', '')
		else
			ret = url1 == url2
		end
	end
	return ret
end

local function getCategory(wdval, userval, args)
	local comparefunc = function(v1, v2) return v1 == v2 end
	local cat

	-- consente di definire funzioni di confronto per proprietà specifiche
	-- (oppure tramite eventuali parametri)
	if mWikidata._getDatatype({ args[1] }) == 'file multimediale in Commons' then
		comparefunc = compareCommonsMediaFile
	elseif args[1] == 'P856' then
		comparefunc = compareURL
	end

	if userval then
		if not wdval then
			cat = string.format('%s no ła ghe xe in Wikidata', args[1])
		elseif args.uguale ~= 'no' and comparefunc(wdval, userval) then
			cat =  string.format('%s conpagna in Wikidata', args[1])
		elseif args.diff ~= 'no' then
			cat = string.format('%s difarente in Wikidata', args[1])
		end
	elseif wdval then
		cat = string.format('%s lexesta da Wikidata', args[1])
	end
 
	return cat and string.format('[[%sCategoria:%s]]', args.debug and ':' or '', cat)
end
 
-- Per l'utilizzo da altro modulo
function p._main(args)
	local wdprop, userval = args[1], args[2]
 
	-- namespace 0 e proprietà Wikidata obbligatori
	if mw.title.getCurrentTitle().namespace ~= (tonumber(args.ns) or 0) or not wdprop then
		return nil
	end

	local wdval = mWikidata._getProperty({
		wdprop,
		unit     = args.unit,
		showunit = args.showunit,
		from     = args.debug and args.from
	})

	return getCategory(wdval, userval, args)
end
 
-- Funzione per il template {{Controllo Wikidata}}
function p.main(frame)
	return p._main(getArgs(frame, { parentOnly = true }))
end
 
return p
Traesto fora da Wikipèdia - L'ençiclopedia łìbara e cołaboradiva in łéngua Vèneta "https://vec.wikipedia.org/w/index.php?title=Modulo:Controło_Wikidata&oldid=860994"
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy