Module:Renseignement

Ce module contient des fonctions donnant un renseignement particulier dans un but de test ou de maintenance.

- La fonction p.chrono donne le temps CPU écoulée depuis le début de l’affichage d'une page. En écrivant {{#invoke:Renseignement|chrono}} dans une page, on obtient le temps écoulé entre le début de l’affichage d'une page et l'endroit où la commande est placée. Ceci permet de contrôler le temps d'exécution de certains modèles ou modules et vérifier ainsi que leurs temps d'exécution n’est pas excessifs.


Par exemple, {{#invoke:Renseignement|chrono}} nous donne : Temps écoulé : 2.02 millisecondes.

- La fonction p.page fournit un maximum de renseignement sur la page dans laquelle on mettra la commande : {{#invoke:Renseignement|page}}.


- La fonction p.bug est une fonction simple contenant le minimum pour mettre en évidence un problème particulier.


local p = {}

function p.chrono()
	local temps = os.clock()
	if temps < 0.001 then
		temps = temps*1000000
		return "Temps écoulé : "..temps.." microsecondes."
	elseif temps < 1 then
		temps = temps*1000
		return "Temps écoulé : "..temps.." millisecondes."
	else
		return "Temps écoulé : "..temps.." secondes."
	end
end

function p.page()
	local rapport = ""
	local title = mw.title.getCurrentTitle()
	rapport = rapport.."<br />title.Redirect (boolean) : "
	if title.Redirect then
		rapport = rapport.."Cette page est un redirection"
	else
		rapport = rapport.."Cette page n’est pas une redirection"
	end
	rapport = rapport.."<br />title.fullUrl (function) : "
	rapport = rapport.."<br />title.canonicalUrl (function) : "
	rapport = rapport.."<br />title.fragment (string) : "
	rapport = rapport.."Le fragment est : "..title.fragment
	rapport = rapport.."<br />title.namespace (string) : "
	rapport = rapport.."Le numéro d'espace est : "..title.namespace
	rapport = rapport.."<br />title.nsText (string) : "
	rapport = rapport.."L'espace de nom de la page est : "..title.nsText
	rapport = rapport.."<br />title.thePartialUrl (string) : "
	rapport = rapport.."On obtient : "..title.thePartialUrl
	rapport = rapport.."<br />title.text (string) : "
	rapport = rapport.."Le titre de la page est : "..title.text
	rapport = rapport.."<br />title.prefixedText (sring) : "
	rapport = rapport.."On obtient comme titre de page : "..title.prefixedText
	rapport = rapport.."<br />title.isTalkPage (boolean) : "
	if title.isTalkPage then
		rapport = rapport.."C'est une page de discussion"
	else
		rapport = rapport.."Ce n’est pas une page de discussion"
	end
	rapport = rapport.."<br />title.exists (boolean) : "
	if title.exists then
		rapport = rapport.."Cette page existe"
	else
		rapport = rapport.."Cette page n'existe pas"
	end
	rapport = rapport.."<br />title.talkPageTitle (table) : "
	rapport = rapport.."La table contient : "..table.concat(title.talkPageTitle," suivi de ")
	rapport = rapport.."<br />title.inNamespace (function) : "
	rapport = rapport.."<br />title.baseText (string) : "
	rapport = rapport.."On obtient comme titre de page : "..title.baseText
	rapport = rapport.."<br />title.canTalk (boolean) : "
	if title.canTalk then
		rapport = rapport.."La page peut avoir une page de discussion"
	else
		rapport = rapport.."La page ne peut pas avoir une page de discussion"
	end
	rapport = rapport.."<br />title.rootText (string) : "
	rapport = rapport.."On obtient comme titre de page : "..title.rootText
	rapport = rapport.."<br />title.hasSubjectNamespace (function) : "
	rapport = rapport.."<br />title.partialUrl (function) : "
--	rapport = rapport.."Encodé comme une URL donne : "..title.partialUrl(text)
	rapport = rapport.."<br />title.isSubpage (boolean) : "
	if title.isSubpage then
		rapport = rapport.."Nous sommes dans une sous-page"
	else
		rapport = rapport.."Nous ne sommes pas dans une sous-page"
	end
	rapport = rapport.."<br />title.isSpecialPage (boolean) : "
	if title.isSpecialPage then
		rapport = rapport.."Nous sommes dans une page spéciale"
	else
		rapport = rapport.."Nous ne sommes pas dans une page spéciale"
	end
	rapport = rapport.."<br />title.basePageTitle (table) : "
	rapport = rapport.."Le titre de la page de base est : "..title.basePageTitle.text
	rapport = rapport.."<br />title.subjectNsText (string) : "
	rapport = rapport.."Le nom de l'espace de nom sujet de la page est : "..title.subjectNsText
	rapport = rapport.."<br />title.isExternal (boolean) : "
	if title.isExternal then
		rapport = rapport.."La page a un interwiki"
	else
		rapport = rapport.."La page n'a pas d'interwiki"
	end
	rapport = rapport.."<br />title.isSubpageOf (function) : "
	rapport = rapport.."<br />title.rootPageTitle (table) : "
	rapport = rapport.."La table contient : "..table.concat(title.rootPageTitle," suivi de ")
	rapport = rapport.."<br />title.interwiki (string) : "
	rapport = rapport.."Le préfixe interwiki est : "..title.interwiki
	rapport = rapport.."<br />title.inNamespaces (function) : "
--	if title.inNamespaces(Recherche) then
--		rapport = rapport.."Nous sommes bien dans l'espace recherche"
--	else
--		rapport = rapport.."Nous ne sommes point dans l'espace recherche"
--	end
	rapport = rapport.."<br />title.id (number) : "
	rapport = rapport.."L'identifiant de la page est : "..title.id
	rapport = rapport.."<br />title.subPageTitle (function) : "
	rapport = rapport.."<br />title.isLocal (boolean) : "
	if title.isLocal then
		rapport = rapport.."La page est locale au proget"
	else
		rapport = rapport.."La page n’est pas locale au projet"
	end
	rapport = rapport.."<br />title.localUrl (function) : "
--	rapport = rapport.."L'URL locale de la page est : "..title.localUrl()
	rapport = rapport.."<br />title.isContentPage (boolean) : "
	if title.isContentPage then
		rapport = rapport.."La page est dans un espace de nom de contenu"
	else
		rapport = rapport.."La page n’est pas dans un espace de nom de contenu"
	end
	rapport = rapport.."<br />title.getContent (function) : "
	rapport = rapport.."<br />title.fullText (string) : "
	rapport = rapport.."Donne comme titre de page : "..title.fullText
	rapport = rapport.."<br />title.cascadingProtection (table) : "
	rapport = rapport.."La table contient : "..table.concat(title.cascadingProtection," suivi de ")
	rapport = rapport.."<br />title.contentModel (string) : "
	rapport = rapport.."Nous obtenons : "..title.contentModel
	rapport = rapport.."<br />title.protectionLevels (table) : "
	rapport = rapport.."La table contient : "..table.concat(title.protectionLevels," suivi de ")
	rapport = rapport.."<br />title.subpageText (string) : "
	rapport = rapport.."On obtient comme titre de page : "..title.subpageText
	rapport = rapport.."<br />title.subjectPageTitle (table) : "
	rapport = rapport.."La table contient : "..table.concat(title.subjectPageTitle," suivi de ")
	return rapport
end

function p.bug()
	item = mw.title.getCurrentTitle().text
	if item == "Micro-organismes" then
		return "Ça marche plutôt bien"
	else
		return "Il y a un bug"
	end
end

return p