Module:Data/Données Capacités Génération 6/doc
Ceci est la page de documentation pour Module:Data/Données Capacités Génération 6
Ce tableau centralise toutes les données des capacités pour la sixième génération. Il est utilisé par le Module:Ressources/donneesCapacite.
Générer ce tableau[modifier]
Contrairement aux générations précédentes, ce tableau ne peut pas être généré en placement bêtement un code dans une console. En effet, le nombre de capacités ayant augmenté, avec en plus le retour des concours, le temps alloué pour l'exécution du script est dépassé lorsque l'on tente de faire cela. Il faut donc procéder en deux étapes : d'abord récupérer les données, et ensuite trier le tableau et le présenter correctement. La procédure exacte est décrite ci-dessous.
É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, 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 = 6 local generations = {'Première', 'Deuxième', 'Troisième', 'Quatrième', 'Cinquième', 'Sixième'} local donnees = {'Type', 'Catégorie de capacité', 'Puissance', 'Précision', 'PP', 'Type concours', 'Charme concours', 'Blocage concours'} local data = {} local erreurs = "" local capacites, nom, souspage, requete, reussite, i, nom_ancien, 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') souspage = nom .. '/Génération ' .. generation requete = mw.smw.ask('[[' .. souspage .. ']]|?' .. 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 nom_ancien = mw.ustring.gsub(mw.ustring.gsub(requete[1][1], '%[%[.-/Génération ' .. generation .. '%|(.-)/Génération ' .. generation .. '%]%]', '%1'), ' %(capacité%)', '') valeur = {'"' .. nom_ancien .. '"'} 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. Le rendu est le tableau correctement trié et présenté comme voulu.
local enleverAccents = require("Module:Ressources/enleverAccents") local function comp(valeur1, valeur2) return enleverAccents(valeur1[1]) < enleverAccents(valeur2[1]) end table.sort(p.data, comp) local donnees = {'Type', 'Catégorie de capacité', 'Puissance', 'Précision', 'PP', 'Type concours', 'Charme concours', 'Blocage concours'} mw.log('-- ' .. table.concat(donnees, ', ')) mw.log('return {') for _, valeur in ipairs(p.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(' [' .. valeur[1] .. '] = {' .. table.concat(valeur, ', ', 2) .. '},') end mw.log('}')