Aller au contenu

Module:L

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 mars 2025 à 20:28 et modifiée en dernier par Escargot bleu (discuter | contributions) (Comptage des votes en reprenant la méthode de https://github.com/pierre-gt/naggobot/blob/bb981100de02ff3eab00f3c1cb4e1bf6cba33619/paspw.py). 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 = {}

function p.main(frame)
	-- Initialisation
	local args = frame:getParent().args
	
	if args[1] == nil or args[1] == '' then
		return '<span class="error">Modèle L : Aucun nom de page fourni</span>'
	end
	if args['cat'] == '' then
		args['cat'] = nil
	end
	
	local page = mw.title.new(args[1])
	
	-- Création des différents liens internes
	local liensInternes = { -- à faire : remplacer "Accès à l’article" par "Accès au modèle", etc. selon l'espace de nom de la page
		article = '[[:' .. args[1] .. '|<span title="Accès à l’article">A</span>]]',
		discussion = '[[' .. page.talkPageTitle .. '|<span title="page de discussion de l’article">D</span>]]',
		journal = '[{{fullurl:Spécial:Journal|type=delete&page={{urlencode:' .. args[1] .. '}}}} <span title="Journal d’effacement">J</span>]',
	}
	if page.namespace == 6 then
		liensInternes["débat"] = '[[Wikipédia:Images à supprimer/' .. (args['cat'] or args[1]) .. '|<span title="Images à supprimer">' .. args[1] .. '</span>]]'
	else
		liensInternes["débat"] = '[[{{TALKPAGENAME:' .. (args['cat'] or args[1]) .. '}}/Admissibilité|<span title="Débat d\'admissibilité">' .. (args['cat'] and (args[1] .. '&nbsp;<small>(Débat groupé)</small>)') or args[1]) .. '</span>]]'
	end
	
	linespdd=tpdd.split("\n") -- à adapter
	local i=1
	local nb_votes = {
		conserver=0,
		supprimer=0,
		fusionner=0,
		autre=0
	}
	local sectionavis=0
	while i <= #linespdd and continuer do
		if string.find(linespdd[i], "=== Avis ===") then
			if sectionavis==1 then
				continuer = false
			else
				sectionavis=1
			end
		elseif string.find(linespdd[i], "==Ancienne discussion") or string.find(linespdd[i], "= Ancienne discussion") then
			continuer = false
		elseif string.match(linespdd[i], "^====") then
			local type_vote
			local vote=linespdd[i].split("====")[1].strip()
			if string.find(vote, "Suppr") then
				type_vote = "supprimer"
			elseif string.find(vote, "Conserv") then
				type_vote = "conserver"
			elseif string.find(vote.lower(), "fusionn") then -- à adapter
				type_vote = "fusionner"
			else
				type_vote = "autre" -- inclut les avis non décomptés
			end
			while i <= #linespdd and not string.match(linespdd[i], "^=") do
				if string.match(linespdd[i], "^#") and mw.text.trim(linespdd[i]) ~= '#' and not string.match(linespdd[i], "^#:") and not string.match(linespdd[i], "^##") and not string.match(linespdd[i], "^#*") then
					nb_votes[type_vote] = nb_votes[type_vote] + 1
				end
				i = i + 1
			end
		else
			i = i + 1
		end
	end

	return '<small class="plainlinks">&#91;' .. liensInternes["article"] .. '&nbsp;·&nbsp;' .. liensInternes["discussion"] .. '&nbsp;·&nbsp;' .. liensInternes["journal"] .. '&#93;</small>&nbsp;&nbsp;' .. liensInternes["débat"]
end

return p