Jump to content

Modulus:Vicidata

E Vicipaedia
Icon documentationis Documentatio moduli[ostende] [recense] [historiam inspice] [purga]

Hic modulus nonnullas functiones ad Vicidata attinentes praebet.

{{#invoke:vicidata|nomen functionis}}

De functionibus

[fontem recensere]

Haec functio tesseram Vicidatorum cuiusdam paginae intervicialis reddit.

  • {{#invoke:vicidata|qid|Spatiplanum}}
    ↳ Q1414565
  • {{#invoke:vicidata|qid|Morpheme|enwiki}}
    ↳ Q43249
  • {{#invoke:vicidata|qid|Carte géographique|frwiki}}
    ↳ Q4006
  • {{#invoke:vicidata|qid|difieuhnbdsjhdseihrgy}}
  • {{#invoke:vicidata|qid}}

idem_qid_si_exsistit_aut_nihil

[fontem recensere]

Si tessera Vicidatorum exsistit denuo redditur, sin secus nihil redditur.

  • {{#invoke:vicidata|idem_qid_si_exsistit_aut_nihil|Q4006}}
    ↳ Q4006
  • {{#invoke:vicidata|idem_qid_si_exsistit_aut_nihil|kflnwnrvizrnvifo}}

appellatio

[fontem recensere]

Haec functio appellationem Vicidatorum cuiusdam paginae intervicialis reddit.

  • {{#invoke:vicidata|appellatio|pagina=Spatiplanum}}
    ↳ Spatiplanum
  • {{#invoke:vicidata|appellatio|it|pagina=Spatiplanum}}
    ↳ spazioplano
  • {{#invoke:vicidata|appellatio|qid=Q11936}}
    ↳ Minerva Mus
  • {{#invoke:vicidata|appellatio|fr|qid=Q1747618}}
    ↳ art de la Grèce antique
  • {{#invoke:vicidata|appellatio}}

quantae_translationes

[fontem recensere]

Haec functio numerum translationum intervicialium cuiusdam paginae reddit.

  • {{#invoke:vicidata|quantae_translationes|pagina=Spatiplanum}}
    ↳ 33
  • {{#invoke:vicidata|quantae_translationes|qid=Q4006}}
    ↳ 154
  • {{#invoke:vicidata|quantae_translationes|pagina=difieuhnbdsjhdseihrgy}}
    ↳ 0
  • {{#invoke:vicidata|quantae_translationes}}
    ↳ 0

si_sunt_translationes

[fontem recensere]

Haec functio quaerit num sint translationes cuiusdam paginae.

  • {{#invoke:vicidata|si_sunt_translationes|pagina=Spatiplanum|Sunt translationes|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Sunt translationes
  • {{#invoke:vicidata|si_sunt_translationes|qid=Q4006|Sunt translationes|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Sunt translationes
  • {{#invoke:vicidata|si_sunt_translationes|pagina=difieuhnbdsjhdseihrgy|Sunt translationes|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Nodus Vicidatorum abest
  • {{#invoke:vicidata|si_sunt_translationes|Sunt translationes|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Nodus Vicidatorum abest

si_sunt_translationes_interviciales

[fontem recensere]

Haec functio quaerit num sint translationes interviciales cuiusdam paginae.

  • {{#invoke:vicidata|si_sunt_translationes_interviciales|pagina=Spatiplanum|Sunt translationes|Sunt translationes speciales tantum|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Sunt translationes
  • {{#invoke:vicidata|si_sunt_translationes_interviciales|qid=Q4006|Sunt translationes|Sunt translationes speciales tantum|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Sunt translationes
  • {{#invoke:vicidata|si_sunt_translationes_interviciales|pagina=difieuhnbdsjhdseihrgy|Sunt translationes|Sunt translationes speciales tantum|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Nodus Vicidatorum abest
  • {{#invoke:vicidata|si_sunt_translationes_interviciales|Sunt translationes|Sunt translationes speciales tantum|Non sunt translationes|Nodus Vicidatorum abest}}
    ↳ Nodus Vicidatorum abest

index_translationum

[fontem recensere]

Haec functio omnes translationes cuiusdam paginae numerat.

Codex manuscriptus:

{{Folium fugax|style = border: 1px dashed #aaa; border-radius: 1em;
	|{{#invoke:vicidata|index_translationum|pagina=Spatiplanum}}
}}

Effectus:


Codex manuscriptus:

{{Folium fugax|style = border: 1px dashed #aaa; border-radius: 1em;
	|{{#invoke:vicidata|index_translationum|qid=Q4006}}
}}

Effectus:

titulus_barbarus

[fontem recensere]

Haec functio titulum barbarum cuiusdam paginae reddit.

  • {{#invoke:vicidata|titulus_barbarus|dewiki|pagina=Spatiplanum}}
    ↳ Raumflugzeug
  • {{#invoke:vicidata|titulus_barbarus|cawiki|qid=Q4006}}
    ↳ Mapa
  • {{#invoke:vicidata|titulus_barbarus|frwiki|pagina=difieuhnbdsjhdseihrgy}}
  • {{#invoke:vicidata|titulus_barbarus|enwiki}}

proprietas

[fontem recensere]

Haec functio singulam proprietatem cuiusdam nodi Vicidatorum reddit. Si proprietas est index plurium indiciorum, nomen nonnullius formulae scribi potest primum argumentum (vide formulam {{Debug}} his in exemplis). Si nomen formulae abest et proprietas est index, semper unus valor tantum ostendetur.

  • {{#invoke:vicidata|proprietas|P18|pagina=Spatiplanum}}
    ↳ SRBsepfromDiscovery07042006.png
  • {{#invoke:vicidata|proprietas|debug|P18|pagina=Alanus Aspect}}
    ↳ {{Debug|1=Alain Aspect (26341660894) (cropped).jpg|2=Alain Aspect.jpg}}
  • {{#invoke:vicidata|P18|proprietas|qid=Q4006}}
    ↳ Topographic map of Jezero crater and surrounds (annotated) ESA23162625.png
  • {{#invoke:vicidata|proprietas|debug|P18|qid=Q364997}}
    ↳ {{Debug|1=Alain Aspect (26341660894) (cropped).jpg|2=Alain Aspect.jpg}}
  • {{#invoke:vicidata|proprietas|P18|pagina=difieuhnbdsjhdseihrgy}}
  • {{#invoke:vicidata|proprietas|P31}}

Ulteriora si cupis

[fontem recensere]
require[[strict]]


local multilinguia = {
	commonswiki = true,
	foundationwiki = true,
	incubatorwiki = true, -- Does not currently have Wikidata sitelinks
	mediawikiwiki = true,
	metawiki = true,
	outreachwiki = true,
	sourceswiki = true,  -- multilingual wikisource AKA old wikisource
	specieswiki = true,
	wikidatawiki = true,
	wikifunctionswiki = true,
	wikitechwiki = true, -- Does not currently have Wikidata sitelinks
	wiktionary = true
}


local function discerne_qid (frame)
	local qid
	if frame.args.qid ~= nil then qid = frame.args.qid:match'^%s*(.*%S)' end
	if qid == nil then
		local titulus
		if frame.args.pagina ~= nil then titulus = frame.args.pagina:match'^%s*(.*%S)' end
		if titulus == nil then qid = mw.wikibase.getEntityIdForCurrentPage()
		else qid = mw.wikibase.getEntityIdForTitle(titulus) end
	end
	return qid
end


local ifacies = {}


ifacies.qid = function (frame)
	local titulus
	local situs
	if frame.args[1] ~= nil then titulus = frame.args[1]:match'^%s*(.*%S)' end
	if frame.args[2] ~= nil then situs = frame.args[2]:match'^%s*(.*%S)' end
	if situs ~= nil then
		if titulus == nil then titulus = frame:getParent():getTitle() end
		return mw.wikibase.getEntityIdForTitle(titulus, situs) or ''
	end
	if titulus == nil then return mw.wikibase.getEntityIdForCurrentPage() or '' end
	return mw.wikibase.getEntityIdForTitle(titulus) or ''
end


ifacies.idem_qid_si_exsistit_aut_nihil = function (frame)
	local qid
	if frame.args[1] ~= nil then qid = frame.args[1]:match'^%s*(.*%S)' end
	if qid ~= nil and mw.wikibase.isValidEntityId(qid) and mw.wikibase.entityExists(qid) then return qid end
	return ''
end


ifacies.appellatio = function (frame)
	local situs
	local qid = discerne_qid(frame)
	if not qid then return '' end
	local lingua
	if frame.args[1] ~= nil then lingua = frame.args[1]:match'^%s*(.*%S)' end
	if lingua == nil then lingua = 'la' end
	local entitas = mw.wikibase.getEntity(qid)
	if not entitas then return '' end
	return entitas:getLabel(lingua)
end


ifacies.quantae_translationes = function (frame)
	local situs
	local qid = discerne_qid(frame)
	if not qid then return '0' end
	local entitas = mw.wikibase.getEntity(qid)
	if not entitas or not entitas.sitelinks then return '0' end
	local num = 0
	for _ in pairs(entitas.sitelinks) do num = num + 1 end
	return tostring(num)
end


ifacies.si_sunt_translationes = function (frame)
	local situs
	local qid = discerne_qid(frame)
	if not qid then return frame.args[3] or frame.args[2] or '' end
	local entitas = mw.wikibase.getEntity(qid)
	if not entitas or not entitas.sitelinks then return frame.args[2] or '' end
	local plures = false
	for _ in pairs(entitas.sitelinks) do
		if plures then return frame.args[1] or '' end
		plures = true
	end
	return frame.args[2] or ''
end


ifacies.si_sunt_translationes_interviciales = function (frame)
	local situs
	local qid = discerne_qid(frame)
	if not qid then return frame.args[4] or frame.args[3] or frame.args[2] or '' end
	local entitas = mw.wikibase.getEntity(qid)
	if not entitas or not entitas.sitelinks then return frame.args[3] or frame.args[2] or '' end
	local speciales = false
	for _, sitelink in pairs(entitas.sitelinks) do
		situs = sitelink.site
		if situs ~= 'lawiki' then
			if not multilinguia[situs] and situs:sub(-4) == 'wiki' then
				return frame.args[1] or ''
			end
			speciales = true
		end
	end
	if speciales and frame.args[3] then return frame.args[2] end
	return frame.args[3] or frame.args[2] or ''
end


ifacies.index_translationum = function (frame)
	local situs
	local qid = discerne_qid(frame)
	if not qid then return '' end
	local entitas = mw.wikibase.getEntity(qid)
	if not entitas or not entitas.sitelinks then return '' end
	local index = {}
	for _, sitelink in pairs(entitas.sitelinks) do
		situs = sitelink.site
		if situs == 'mediawikiwiki' then situs = 'mwwiki' end
		if situs:sub(-4) == 'wiki' then
			if situs ~= 'lawiki' then
				table.insert(index, '* [[:' ..
					situs:sub(1, -1 -4):gsub('_', '-') .. ':' ..
					sitelink.title .. ']]\n')
			end
		elseif situs:sub(-10) == 'wikisource' then
			table.insert(index, '* [[:s:' ..
				situs:sub(1, -1 -10):gsub('_', '-') .. ':' ..
				sitelink.title .. ']]\n')
		elseif situs:sub(-9) == 'wikiquote' then
			table.insert(index, '* [[:q:' ..
				situs:sub(1, -1 -9):gsub('_', '-') .. ':' ..
				sitelink.title .. ']]\n')
		elseif situs:sub(-11) == 'wikiversity' then
			table.insert(index, '* [[:wikiversity:' ..
				situs:sub(1, -1 -11):gsub('_', '-') .. ':' ..
				sitelink.title .. ']]\n')
		elseif situs:sub(-10) == 'wikivoyage' then
			table.insert(index, '* [[:wikivoyage:' ..
				situs:sub(1, -1 -10):gsub('_', '-') .. ':' ..
				sitelink.title .. ']]\n')
		elseif situs:sub(-8) == 'wikinews' then
			table.insert(index, '* [[:wikinews:' ..
				situs:sub(1, -1 -8):gsub('_', '-') .. ':' ..
				sitelink.title .. ']]\n')
		elseif situs:sub(-10) == 'wiktionary' then
			table.insert(index, '* [[:wiktionary:' ..
				situs:sub(1, -1 -10):gsub('_', '-') .. ':' ..
				sitelink.title .. ']]\n')
		else
			table.insert(index, '* [[:' .. situs .. ':' .. sitelink.title ..
				']]\n')
		end
	end
	table.sort(index)
	return table.concat(index, '')
end


ifacies.titulus_barbarus = function (frame)
	local situs
	if frame.args[1] ~= nil then situs = frame.args[1]:match'^%s*(.*%S)' end
	if situs == nil then error(frame:getTitle() .. ', ‘titulus_barbarus’: Situs abest', 0) end
	local qid = discerne_qid(frame)
	if not qid then return '' end
	local entitas = mw.wikibase.getEntity(qid)
	if not entitas or not entitas.sitelinks then return '' end
	local index = {}
	for _, sl in pairs(entitas.sitelinks) do index[sl.site] = sl.title end
	return index[situs] or ''
end


ifacies.proprietas = function (frame)
	local formula
	local pid
	if frame.args[2] ~= nil then
		if frame.args[1] ~= nil then formula = frame.args[1]:match'^%s*(.*%S)' end
		pid = frame.args[2]:match'^%s*(.*%S)'
	elseif frame.args[1] ~= nil then pid = frame.args[1]:match'^%s*(.*%S)' end
	if pid == nil then error(frame:getTitle() ..
		', ‘proprietas’: Tessera proprietatis abest', 0) end
	local qid = discerne_qid(frame)
	if not qid then return '' end
	local indicia = mw.wikibase.getAllStatements(qid, pid)
	if not indicia then return '' end
	if formula ~= nil then
		local index = {}
		local cmpt = 1
		for key, val in pairs(indicia) do
			if val and val.mainsnak and val.mainsnak.datavalue and val.mainsnak.datavalue.value then
				index[cmpt] = tostring(val.mainsnak.datavalue.value)
				cmpt = cmpt + 1
			end
		end
		return frame:expandTemplate{ title = formula, args = index }
	end
	if not indicia[1] or not indicia[1].mainsnak or not
		indicia[1].mainsnak.datavalue or not
		indicia[1].mainsnak.datavalue.value then return '' end
	return tostring(indicia[1].mainsnak.datavalue.value)
end


return ifacies