Módulo:Testes/Ederporto

Origem: Wikipédia, a enciclopédia livre.
local p = {}

function p.pos(frame)
	local source = frame.args.source or frame.args[1]
	local sep = frame.args.sep or frame.args[2]
	local target = frame.args.target or frame.args[3]
	
    local items = {}
    local index = 0
    for match in (source..sep):gmatch("(.-)"..sep) do
    	index = index + 1
    	if match == target then
    		return index
    	end
    end
end

function p.separa(frame)
	local texto = frame.args.texto or frame.args[1]
	local sep = frame.args.sep or frame.args[2]
	local retorno = tonumber(frame.args.retorna) or tonumber(frame.args[3])
	local out = {}
	local count = 1
	
	local from = 1
	local sep_from, sep_to = string.find(texto, sep, from)
	while sep_from do
		if count == retorno then
			return string.sub(texto, from, sep_from-1)
		end
		from = sep_to+1
		sep_from, sep_to = string.find(texto, sep, from)
		count = count + 1
	end
	if count == retorno then
		return string.sub(texto, from)
	end
end

local partidos = {
		["Partido Republicano Brasileiro"] = {	
		["número"] = 10,
		["sigla"] = "PRB",
		["qid"] = "Q926973",
	},	
	["Partido Democrático Trabalhista"] = {	
		["número"] = 12,
		["sigla"] = "PDT",
		["qid"] = "Q1414708",
	},	
	["Partido Social Liberal"] = {	
		["número"] = 17,
		["sigla"] = "PSL",
		["qid"] = "Q2366265",
	},	
	["Podemos (Brasil)"] = {	
		["número"] = 19,
		["sigla"] = "PODE",
		["qid"] = "Q3181274",
	},	
	["Partido Comunista Brasileiro"] = {	
		["número"] = 21,
		["sigla"] = "PCB",
		["qid"] = "Q2597196",
	},	
	["Partido da República"] = {	
		["número"] = 22,
		["sigla"] = "PR",
		["qid"] = "Q2731720",
	},	
	["Democracia Cristã (Brasil)"] = {	
		["número"] = 27,
		["sigla"] = "DC",
		["qid"] = "Q2653287",
	},	
	["Partido da Mobilização Nacional"] = {	
		["número"] = 33,
		["sigla"] = "PMN",
		["qid"] = "Q429972",
	},	
	["Partido Trabalhista Cristão"] = {	
		["número"] = 36,
		["sigla"] = "PTC",
		["qid"] = "Q2534868",
	},	
	["Partido Verde (Brasil)"] = {	
		["número"] = 43,
		["sigla"] = "PV",
		["qid"] = "Q1234489",
	},	
	["Patriota (Brasil)"] = {	
		["número"] = 51,
		["sigla"] = "PATRI",
		["qid"] = "Q10345629",
	},	
	["Partido Comunista do Brasil"] = {	
		["número"] = 65,
		["sigla"] = "PCdoB",
		["qid"] = "Q504000",
	},	
	["Avante"] = {	
		["número"] = 70,
		["sigla"] = "AVANTE",
		["qid"] = "Q3366792",
	},	
	["Partido Trabalhista Brasileiro"] = {	
		["número"] = 14,
		["sigla"] = "PTB",
		["qid"] = "Q1576143",
	},	
	["Movimento Democrático Brasileiro (1980)"] = {	
		["número"] = 15,
		["sigla"] = "MDB",
		["qid"] = "Q1322751",
	},	
	["Partido Socialista dos Trabalhadores Unificado"] = {	
		["número"] = 16,
		["sigla"] = "PSTU",
		["qid"] = "Q2453869",
	},	
	["Partido Social Cristão"] = {	
		["número"] = 20,
		["sigla"] = "PSC",
		["qid"] = "Q2626213",
	},	
	["Partido Popular Socialista"] = {	
		["número"] = 23,
		["sigla"] = "PPS",
		["qid"] = "Q2598527",
	},	
	["Democratas (Brasil)"] = {	
		["número"] = 25,
		["sigla"] = "DEM",
		["qid"] = "Q1185830",
	},	
	["Partido Renovador Trabalhista Brasileiro"] = {	
		["número"] = 28,
		["sigla"] = "PRTB",
		["qid"] = "Q2453861",
	},	
	["Partido da Mulher Brasileira"] = {	
		["número"] = 35,
		["sigla"] = "PMB",
		["qid"] = "Q24478299",
	},	
	["Partido Social Democrático (2011)"] = {	
		["número"] = 55,
		["sigla"] = "PSD",
		["qid"] = "Q2054750",
	},	
	["Partido dos Trabalhadores"] = {	
		["número"] = 13,
		["sigla"] = "PT",
		["qid"] = "Q657089",
	},	
	["Rede Sustentabilidade"] = {	
		["número"] = 18,
		["sigla"] = "REDE",
		["qid"] = "Q10358279",
	},	
	["Partido da Causa Operária"] = {	
		["número"] = 29,
		["sigla"] = "PCO",
		["qid"] = "Q2453216",
	},	
	["Partido Novo"] = {	
		["número"] = 30,
		["sigla"] = "NOVO",
		["qid"] = "Q18552710",
	},	
	["Partido da Social Democracia Brasileira"] = {	
		["número"] = 45,
		["sigla"] = "PSDB",
		["qid"] = "Q1322897",
	},	
	["Partido Socialismo e Liberdade"] = {	
		["número"] = 50,
		["sigla"] = "PSOL",
		["qid"] = "Q1754827",
	},	
	["Solidariedade (partido político)"] = {	
		["número"] = 77,
		["sigla"] = "SD",
		["qid"] = "Q20061311",
	},	
	["Partido Republicano da Ordem Social"] = {	
		["número"] = 90,
		["sigla"] = "PROS",
		["qid"] = "Q15564211",
	},	
	["Partido Socialista Brasileiro"] = {	
		["número"] = 40,
		["sigla"] = "PSB",
		["qid"] = "Q2054789",
	},	
	["Progressistas"] = {	
		["número"] = 11,
		["sigla"] = "PP",
		["qid"] = "Q732852",
	},	
}

function p.partido(frame)
	local texto = frame.args.texto or frame.args[1]
	local retorno = frame.args.retorno or frame.args[2] or "sigla"
	
	local inicio = string.sub(texto, 1, 2)
	local final = string.sub(texto, -2)
	
	local tamanho = #texto
	if inicio == "[[" and final == "]]" then
		texto = string.sub(texto, 3, tamanho - 2)
	end
	local out = mw.text.split(texto, '|')
	
	local article = out[1]
	
	if partidos[article] then
		return partidos[article][retorno]
	else
		return ''
	end
end

function p.getQIDperSitelink(frame)
	local sitelink = frame.args.sitelink or frame.args[1]
	return mw.wikibase.getEntityIdForTitle(sitelink)
end

return p