Module:Data/Données Capacités Génération 9/doc
Ceci est la page de documentation pour Module:Data/Données Capacités Génération 9
Ce tableau centralise toutes les données des capacités pour la neuvième génération. Il est utilisé par le Module:Ressources/donneesCapacite.
Générer ce tableau[modifier]
Comme dans la génération précédente, la procédure à suivre est en quatre étapes. On prendra garde que la procédure décrite ici a été écrite alors que les sous-pages de la neuvième génération n'existaient pas encore. Si c'est encore le cas lorsque vous lisez ces lignes, alors vous pouvez suivre la procédure décrite et ignorer la suite de ce paragraphe. Sinon, suivez plutôt les instructions de la page de documentation pour la huitième génération, en procédant aux changements suivants :
- pour la première étape, il faut modifier la génération à la première ligne ;
- la deuxième étape est inchangée ;
- pour la troisième étape, il faut modifier la génération à la première ligne et également ajouter « Neuvième » au tableau de la deuxième ligne ;
- la quatrième étape est inchangée.
Étape 1 : se placer sur la page d'un module en ayant blanchi la zone d'édition, et placer le code suivant dans la console située sous la zone d'édition et l'exécuter. Ce code va récupérer toutes les données souhaitées des capacités apparues lors des sept premières générations, puis afficher dans la console son résultat. Copier l'intégralité du résultat, hormis les erreurs éventuelles affichées en bas, puis coller le contenu dans la zone d'édition. Effacer la console.
local generation = 9 local generations = {'Première', 'Deuxième', 'Troisième', 'Quatrième', 'Cinquième', 'Sixième', 'Septième'} local donnees = {'Type', 'Catégorie de capacité', 'Puissance', 'Précision', 'PP'} local data = {} local erreurs = "" local capacites, nom, requete, reussite, i, valeur for _, generation_apparition in ipairs(generations) do capacites = mw.smw.ask('[[Génération de la capacité::' .. generation_apparition .. ' génération]]|limit=5000') for indice, resultat in ipairs(capacites) do nom = mw.ustring.gsub(resultat[1], '%[%[.-%|(.-)%]%]', '%1') requete = mw.smw.ask('[[' .. nom .. ']]|?' .. table.concat(donnees, '=|?') .. '=') reussite = true if requete == Nil then reussite = False else i = 2 while i <= #donnees + 1 do if requete[1][i] == Nil then reussite = False end i = i + 1 end end if reussite == False then erreurs = erreurs .. 'Info non trouvée pour ' .. nom .. '\n' else valeur = {'"' .. mw.ustring.gsub(nom, ' %(capacité%)', '') .. '"'} i = 2 while i <= #donnees + 1 do if i == 2 or i == 3 or i == 7 then table.insert(valeur, '"' .. requete[1][i] .. '"') else if i == 4 and (nom == "Abîme" or nom == "Empal'Korne" or nom == "Glaciation" or nom == "Guillotine") then table.insert(valeur, '"[[OHKO]]"') else table.insert(valeur, requete[1][i]) end end i = i +1 end table.insert(data, valeur) end end end mw.log('local p = {}') mw.log('p.data = {') for _, valeur in ipairs(data) do mw.log(' {' .. table.concat(valeur, ', ') .. '},') end mw.log('}') mw.log('return p') mw.log('') mw.log(erreurs)
Étape 2 : placer le code suivant dans la console et l'exécuter. Ce code va trier le tableau généré à l'étape précédente. Copier son résultat dans la zone d'édition en remplacement de ce que vous y avez mis à l'étape précédente. Effacer la console.
local data = p.data local enleverAccents = require("Module:Ressources/enleverAccents") local function comp(valeur1, valeur2) return enleverAccents(valeur1[1]) < enleverAccents(valeur2[1]) end table.sort(data, comp) local donnees = {'Type', 'Catégorie de capacité', 'Puissance', 'Précision', 'PP'} mw.log('local p = {}') mw.log('p.data = {') for _, valeur in ipairs(data) do local i = 1 while i <= #donnees do if i == 1 or i == 2 or i == 3 or i == 7 or (i == 4 and valeur[i] == "[[OHKO]]") then valeur[i] = '"' .. valeur[i] .. '"' end i = i + 1 end mw.log(' {' .. table.concat(valeur, ', ') .. '},') end mw.log('}') mw.log('return p')
Étape 3 : placer le code suivant dans la console et l'exécuter. Ce code va récupérer toutes les données souhaitées des capacités apparues lors de la huitième génération, le trier, puis afficher dans la console son résultat. Copier l'intégralité du résultat, hormis les erreurs éventuelles affichées en bas, puis coller le contenu dans la zone d'édition juste avant la dernière ligne return p
, sans effacer ce qui était présent. Effacer la console.
local generation = 9 local generations = {'Huitième', 'Neuvième'} local donnees = {'Type', 'Catégorie de capacité', 'Puissance', 'Précision', 'PP'} local data = {} local erreurs = "" local capacites, nom, requete, reussite, i, valeur for _, generation_apparition in ipairs(generations) do capacites = mw.smw.ask('[[Génération de la capacité::' .. generation_apparition .. ' génération]]|limit=5000') for indice, resultat in ipairs(capacites) do nom = mw.ustring.gsub(resultat[1], '%[%[.-%|(.-)%]%]', '%1') requete = mw.smw.ask('[[' .. nom .. ']]|?' .. table.concat(donnees, '=|?') .. '=') reussite = true if requete == Nil then reussite = False else i = 2 while i <= #donnees + 1 do if requete[1][i] == Nil then reussite = False end i = i + 1 end end if reussite == False then erreurs = erreurs .. 'Info non trouvée pour ' .. nom .. '\n' else valeur = {'"' .. mw.ustring.gsub(nom, ' %(capacité%)', '') .. '"'} i = 2 while i <= #donnees + 1 do if i == 2 or i == 3 or i == 7 then table.insert(valeur, '"' .. requete[1][i] .. '"') else if i == 4 and (nom == "Abîme" or nom == "Empal'Korne" or nom == "Glaciation" or nom == "Guillotine") then table.insert(valeur, '"[[OHKO]]"') else table.insert(valeur, requete[1][i]) end end i = i +1 end table.insert(data, valeur) end end end local enleverAccents = require("Module:Ressources/enleverAccents") local function comp(valeur1, valeur2) return enleverAccents(valeur1[1]) < enleverAccents(valeur2[1]) end table.sort(data, comp) mw.log('p.data2 = {') for _, valeur in ipairs(data) do mw.log(' {' .. table.concat(valeur, ', ') .. '},') end mw.log('}') mw.log('') mw.log(erreurs)
Étape 4 : placer le code suivant dans la console et l'exécuter. Le rendu est le tableau correctement trié et présenté comme voulu.
local data = p.data local data2 = p.data2 local enleverAccents = require("Module:Ressources/enleverAccents") local function comp(valeur1, valeur2) return enleverAccents(valeur1[1]) < enleverAccents(valeur2[1]) end local i = 1 local j = 1 while data2[j] ~= nil do while data[i] ~= nil and comp(data[i], data2[j]) do i = i + 1 end table.insert(data, i, data2[j]) i = i + 1 j = j + 1 end local donnees = {'Type', 'Catégorie de capacité', 'Puissance', 'Précision', 'PP'} mw.log('-- ' .. table.concat(donnees, ', ')) mw.log('return {') for _, valeur in ipairs(p.data) do if valeur[2] ~= "Obscur" then local i = 1 while i <= #donnees do if i == 1 or i == 2 or i == 3 or i == 7 or (i == 4 and valeur[i] == "[[OHKO]]") then valeur[i] = '"' .. valeur[i] .. '"' end i = i + 1 end mw.log(' [' .. valeur[1] .. '] = {' .. table.concat(valeur, ', ', 2) .. '},') end end mw.log('}')