Garçon devant un ordinateur.jpg
Hollie Little Pink Laptop.jpg
À propos • Aide • Le Livre d'or
Les lecteurs de Vikidia demandent des articles en plus. Voyez la liste d'articles à créer, et venez nous aider à les rédiger !
Cette page est protégée.

Module:Savant

Aller à la navigation Aller à la recherche
 Documentation[modifier] [purger]

Le module : Savant implémente le modèle : Savant par la fonction Savant (voyez sa documentation), et le modèle : Réponse Savant par la fonction Reponse (idem).

local p = {}

--
-- Fonctions créant le bandeau
--

local function bandeau( titre, texte )
	local b = require( 'Module:Bandeau perso' )
	local html = b.bandeau( nil, -- fonction réservée aux modules
	                        '<span style="font-size:150%;">' .. titre .. '</span>',
	                        texte,
	                        '#ddffa2',
	                        '#9ae352',
	                        b.imageBandeau( nil, -- fonction réservée aux modules
	                                        'LeSavant.svg', 100 ),
	                        nil, -- image droite
	                        'padding:10px;' )
	return html
end

local function savant( args )
	type = mw.ustring.lower( mw.text.trim( args[1] ) or '' )
	local titre
	local texte
	local smiley = require( 'Module:Émoticône' )
	local lang = mw.language.getContentLanguage()
	if type == 'faq' then
		titre = 'Consulte mes FAQs'
		texte = 'Cette question m’a déjà été posée. '
		     .. smiley.clin()
		     .. ' Regarde dans [[Vikidia:Le Savant/FAQ|mes FAQs]], elle s’y trouve sûrement déjà. '
		     .. smiley.content()

	elseif type == 'pas compris' then
		titre = 'Pardon ?'
		texte = 'Je n’ai pas compris ta question ! Peux-tu la reposer autrement ? '
		     .. smiley.clin()

	elseif type == 'déjà vu' then
		titre = 'Encore ?'
		texte = "On me pose vraiment ''très'' souvent cette question, et personne n’aime répéter la même chose… Tu peux jeter un coup d’œil '''[["
		     .. (args[2] or 'Vikidia:Le Savant/Archives')
		     .. "|ici]]''', elle s’y trouve déjà. "
		     .. smiley.clin()

	elseif type == 'article' then
		titre = 'Vikidia est une encyclopédie'
		texte = "Il y a un article sur ce sujet qui pourra répondre à ta question. C’est ici : '''[["
		     .. (lang:ucfirst( args[2] ) or error( 'deuxième argument manquant' ))
		     .. "]]''' !"

	elseif type == 'aide' then
		local lien = args[2] ~= '' and args[2] or error( 'deuxième argument manquant' )
		if not mw.ustring.match( lien, ':' ) then
			lien = 'Aide:' .. lang:ucfirst( lien )
		end
		titre = 'Vikidia contient des pages d’aide'
		texte = "Il y a une page d’aide sur ce sujet qui pourra répondre à ta question. C’est ici : '''[["
		     .. lang:ucfirst( lien )
		     .. "]]''' !"

	elseif type == 'vikidia' then
		titre = 'Cette question concerne Vikidia'
		texte = "Il y a une page permettant de répondre aux questions techniques non-encyclopédiques concernant Vikidia ou son fonctionnement. C’est ici : '''[[Vikidia:Foire aux questions]]''' !"

	elseif type == 'politesse' then
		titre = 'Cher ami…'
		texte = "Il est toujours plus agréable de répondre à une question quand elle est posée avec [[courtoisie]]. Le Savant n’est pas ''obligé'' de donner une réponse, et l’impolitesse lui enlève généralement l’envie de le faire ! Quelques rappels utiles :<br />« ''bonjour'' » ; « ''s’il te/vous plaît'' » ; « ''merci'' »."

	elseif type == 'identité' then
		titre = 'Attention !'
		texte = "Sur Internet, il ne faut donner ''ni'' son nom de famille, ''ni'' son adresse postale, ''ni'' son numéro de téléphone… Et ne pas écrire son adresse [[courriel]], pour éviter le [[spam]], le [[hameçonnage]] et autres [[Canular informatique|canulars informatiques]] ! J’ai donc effacé tout ça. "
		     .. smiley.clin()

	elseif type == 'devoirs' then
		titre = 'Le Savant ne fait pas les devoirs !'
		texte = "À quoi servent tes devoirs si c’est ''moi'' qui les fais ? Je veux bien te donner un coup de pouce, mais tu devras continuer tout<small>(e)</small> seul<small>(e)</small>. "
		     .. smiley.clin()

	elseif type == 'devoirs2' then
		titre = 'Le Savant ne fait pas les devoirs !'
		texte = 'Le but des devoirs, ce n’est pas tellement de ramener la réponse, c’est surtout de chercher pour bien apprendre ensuite. Si tu n’as pas trouvé mais que tu as bien cherché, c’est peut-être que c’était trop difficile. Tu me diras ce qu’auront trouvé les autres ! '
		     .. smiley.king()

	elseif type == 'canular' then
		titre = 'Mouhahaha ! '
		     .. smiley.rire()
		texte = 'Ton [[canular|gag « piège »]] est totalement raté ! '
		     .. smiley.content()

	elseif type == 'erreur' then
		titre = 'Impossible ! Une erreur ?'
		texte = 'Impossible de répondre à ta question car il y a un problème ! Relis-toi. Es-tu sûr de ne pas avoir fait d’erreur ? '
		     .. smiley.confusion()

	elseif type == 'devinette' then
		titre = 'Je donne ma langue au chat ! '
		     .. smiley.plaisante()
		texte = 'Une devinette ? Pourquoi pas, pourquoi pas ? Ceci dit, en principe, note que les questions auxquelles je suis censé répondre sont des vraies questions et pas des devinettes, mais rire ne fait pas de mal. '
		     .. smiley.clin()

	elseif type == 'trouvé' then
		titre = 'J’ai trouvé ! '
		     .. smiley.plaisante()
		texte = 'Une devinette ? Pourquoi pas, pourquoi pas ? Ceci dit, en principe, note que les questions auxquelles je suis censé répondre sont des vraies questions et pas des devinettes, mais rire ne fait pas de mal. '
		     .. smiley.clin()

	elseif type == 'rien' then
		titre = 'Tu n’as rien écrit.'
		texte = 'Tu as oublié d’écrire ta question ! Je te conseille de la poser à nouveau, en suivant bien les instructions. '
		     .. smiley.clin()

	elseif type == 'commerce' then
		titre = 'Savant ≠ moteur de recherche'
		texte = 'Les amis du Savant sont là pour répondre à des questions sur des connaissances générales comme les [[art]]s, les [[science]]s, etc. Mais si la réponse à une question se trouve très vite grâce à un [[moteur de recherche]], c’est à toi de l’utiliser et de trouver. ' -- TODO modèle :, etc.
		     .. smiley.content()

	elseif type == 'complexe' then
		titre = 'Je ne peux dire qu’une chose : wow !'
		texte = 'C’est une excellente question, mais à laquelle il nous est difficile de répondre sans dire de bêtise, et c’est ce que nous voulons éviter ! '
		     .. smiley.content()

	elseif type == 'dictionnaire' then
		titre = 'Tu cherches une définition ?'
		texte = "Le Savant répond aux questions encyclopédiques. Pour cette question, c’est un dictionnaire qu’il faut utiliser, comme le [[:dico:"
		     .. (args[2] or '')
		     .. "|Dico des Ados]], un dictionnaire en ligne. "
		     .. smiley.clin()

	elseif type == 'maj' then
		titre = 'Le Savant n’est pas sourd !'
		texte = 'Si tu écris un message entièrement en capitales, sur [[Internet]], cela veut dire que TU CRIES ! Ce n’est pas très agréable pour le Savant et ses amis qui reçoivent la question…'

	elseif type == 'merci de me répondre' then
		titre = '« Merci de me répondre »'
		texte = "Tous les amis du Savant n’apprécient pas cette expression, qui relève davantage de l’[[:wikt:injonction|injonction]] que de la [[:wikt:formule de politesse|formule de politesse]]. Par respect pour les [[bénévolat|bénévoles]] de bonne volonté qui répondent (parfois) aux questions (gentiment) posées, ''merci de'' '''ne plus''' ''l’utiliser''. "
		     .. smiley.mouais()

	elseif type == 'hotline' then
		titre = 'Savant ≠ centre d’assistance'
		texte = 'Le savant répond aux questions d’ordre [[encyclopédie|encyclopédique]] : il ne peut pas donner des conseils techniques ou réparer des pannes. '
		     .. smiley.clin()

	elseif type == 'nom' then
		titre = 'Je m’appelle Cogitus !'
		texte = 'On me le demande souvent ! '
		     .. smiley.clin()

	elseif type == 'en-tête' then
		local lien = args[2] ~= '' and args[2] or nil
		titre = 'Es-tu sûr(e) d’avoir bien lu l’article ?'
		texte = "Voyons, la réponse à ta question se trouve dès le début de la page "
		     .. (lien and (" : '''[[" .. lien .. "]]'''") or '')
		     .. ". '''Avant''' de me la poser, tu aurais du prendre le temps de '''lire attentivement cet article''' ! "
		     .. smiley.clin()

	elseif type == 'demander un article' then
		titre = 'Le Savant répond à tes questions…'
		texte = 'Pour demander un article, fais plutôt ta demande [[Vikidia:Demander un article|ici]] '
		     .. smiley.clin()

	elseif type == 'sourd' then
		titre = 'Le Savant n’est pas sourd !'
		texte = 'Inutile de poser ta question plusieurs fois, j’avais bien compris la première fois, et cela ne me fera pas répondre plus vite ! '
		     .. smiley.clin()

	elseif type == 'création' then
		local lien = args[2] ~= '' and args[2] or nil
		titre = 'Vikidia peut s’agrandir !'
		texte = "Quelle question intéressante ! Cela m’a donné l’idée d’écrire un article pour te répondre"
		     .. (lien and (" : '''[[" .. lien .. "]]'''") or '')
		     .. ". "
		     .. smiley.clin()

	elseif type == 'ajout' then
		local lien = args[2] ~= '' and args[2] or nil
		titre = 'Vikidia peut s’agrandir !'
		texte = "Quelle question intéressante ! Cela m’a donné l’idée d’ajouter l’information"
		     .. (lien and (" sur l’article '''[[" .. lien .. "]]'''") or '')
		     .. " pour te répondre. "
		     .. smiley.clin()

	-- TODO else ?
	end

	return titre and bandeau( titre, texte ) or nil
end

--
-- Fonction appelée depuis le modèle
--

function p.Savant( frame )
	return savant( frame:getParent().args )
end

function p.Reponse( frame )
	local args = frame:getParent().args

	-- élaboration du texte ; oui, c’est n’importe quoi
	local texte = 'Bonjour, le Savant a répondu à ta question. [[Vikidia:Le Savant'
	if args[1] or args[2] or args[3] then
		texte = texte .. '/'
		              .. (args[1] or os.date( '%Y' )) -- donc si non donné, le lien devient faux à la fin de l’année
	                      .. ' '
	                      .. (args[2] or '') -- no comment
	                      .. '#'
	                      .. (args[3] or '') -- no comment
	end
	texte = texte .. "|'''Clique ici !''']]"

	-- création du bandeau
	local b = require( 'Module:Bandeau grand' )
	local html = b.bandeau( nil, -- fonction réservée aux modules
	                        'Réponse',
	                        texte,
	                        '#ddffa2',
	                        '#9ae352',
	                        b.imageBandeau( nil, -- fonction réservée aux modules
	                                        'LeSavant.svg' ))
	return tostring( html )
end

return p