« Module:Episode/Shared/Utils » : différence entre les versions
Apparence
Contenu supprimé Contenu ajouté
Page créée avec « -- Module:Episode/Shared/Utils local p = {} -- Normalize alias: lowercase, remove quotes/apostrophes, replace common accents, collapse spaces function p.normalize_alias(s) if not s then return nil end local u = mw.ustring.lower(s) u = mw.ustring.gsub(u, "[\"'`]", "") local accents = { ["à"]="a", ["á"]="a", ["â"]="a", ["ä"]="a", ["ã"]="a", ["å"]="a", ["ç"]="c", ["è"]="e", ["é"]="e", ["ê"]="e", ["ë"]="e",... » |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
-- Module:Episode/Shared/Utils |
-- Module:Episode/Shared/Utils |
||
-- Fonctions utilitaires communes à tous les modules Episode : |
|||
| ⚫ | |||
-- * normalisation des alias |
|||
-- * validation minimale des entrées d’épisodes |
|||
-- * nettoyage des chaînes |
|||
| ⚫ | |||
-- Normalize alias: lowercase, remove quotes/apostrophes, replace common accents, collapse spaces |
|||
| ⚫ | |||
------------------------------------------------------------ |
|||
-- Normalisation d’un alias |
|||
-- * minuscules |
|||
-- * suppression des apostrophes et guillemets |
|||
-- * remplacement des accents |
|||
-- * réduction des espaces |
|||
-- * trim |
|||
------------------------------------------------------------ |
|||
| ⚫ | |||
if not s then return nil end |
if not s then return nil end |
||
-- Mise en minuscules |
|||
local u = mw.ustring.lower(s) |
local u = mw.ustring.lower(s) |
||
| ⚫ | |||
-- Suppression des apostrophes et guillemets |
|||
| ⚫ | |||
-- Remplacement des accents |
|||
local accents = { |
local accents = { |
||
["à"]="a", ["á"]="a", ["â"]="a", ["ä"]="a", ["ã"]="a", ["å"]="a", |
["à"]="a", ["á"]="a", ["â"]="a", ["ä"]="a", ["ã"]="a", ["å"]="a", |
||
| Ligne 19 : | Ligne 37 : | ||
u = mw.ustring.gsub(u, a, b) |
u = mw.ustring.gsub(u, a, b) |
||
end |
end |
||
-- Réduction des espaces |
|||
u = mw.ustring.gsub(u, "%s+", " ") |
u = mw.ustring.gsub(u, "%s+", " ") |
||
-- Trim |
|||
u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1") |
u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1") |
||
return u |
return u |
||
end |
end |
||
------------------------------------------------------------ |
|||
-- Validate episode entry minimal shape |
|||
-- Validation minimale d’une entrée d’épisode |
|||
| ⚫ | |||
-- Vérifie que les champs essentiels sont présents. |
|||
| ⚫ | |||
------------------------------------------------------------ |
|||
if not ep.id or not ep.season or not ep.episode then return false end |
|||
| ⚫ | |||
| ⚫ | |||
return false, "Entrée non-table" |
|||
end |
|||
if not ep.id then |
|||
return false, "Champ .id manquant" |
|||
end |
|||
-- season et episode peuvent être absents pour les films |
|||
return true |
return true |
||
end |
end |
||
------------------------------------------------------------ |
|||
| ⚫ | |||
-- Nettoyage simple d’une chaîne (trim + collapse spaces) |
|||
------------------------------------------------------------ |
|||
function utils.clean_string(s) |
|||
if not s then return "" end |
|||
local u = mw.ustring.gsub(s, "%s+", " ") |
|||
u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1") |
|||
| ⚫ | |||
end |
|||
return utils |
|||
Dernière version du 1 juin 2026 à 20:36
| Il sera peut-être nécessaire de créer une page documentation pour ce module Scribunto programmé dans la page créer Les éditeurs peuvent faire des tests sur les pages bac à sable (créer | miroir) et études de cas (créer) du module. Veuillez ajouter les catégories dans la sous-page /documentation. Sous-pages de ce module. |
-- Module:Episode/Shared/Utils
-- Fonctions utilitaires communes à tous les modules Episode :
-- * normalisation des alias
-- * validation minimale des entrées d’épisodes
-- * nettoyage des chaînes
local utils = {}
------------------------------------------------------------
-- Normalisation d’un alias
-- * minuscules
-- * suppression des apostrophes et guillemets
-- * remplacement des accents
-- * réduction des espaces
-- * trim
------------------------------------------------------------
function utils.normalize_alias(s)
if not s then return nil end
-- Mise en minuscules
local u = mw.ustring.lower(s)
-- Suppression des apostrophes et guillemets
u = mw.ustring.gsub(u, "[\"'`´’]", "")
-- Remplacement des accents
local accents = {
["à"]="a", ["á"]="a", ["â"]="a", ["ä"]="a", ["ã"]="a", ["å"]="a",
["ç"]="c",
["è"]="e", ["é"]="e", ["ê"]="e", ["ë"]="e",
["ì"]="i", ["í"]="i", ["î"]="i", ["ï"]="i",
["ò"]="o", ["ó"]="o", ["ô"]="o", ["ö"]="o", ["õ"]="o",
["ù"]="u", ["ú"]="u", ["û"]="u", ["ü"]="u",
["œ"]="oe", ["æ"]="ae",
}
for a,b in pairs(accents) do
u = mw.ustring.gsub(u, a, b)
end
-- Réduction des espaces
u = mw.ustring.gsub(u, "%s+", " ")
-- Trim
u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1")
return u
end
------------------------------------------------------------
-- Validation minimale d’une entrée d’épisode
-- Vérifie que les champs essentiels sont présents.
------------------------------------------------------------
function utils.validate_episode(ep)
if type(ep) ~= "table" then
return false, "Entrée non-table"
end
if not ep.id then
return false, "Champ .id manquant"
end
-- season et episode peuvent être absents pour les films
return true
end
------------------------------------------------------------
-- Nettoyage simple d’une chaîne (trim + collapse spaces)
------------------------------------------------------------
function utils.clean_string(s)
if not s then return "" end
local u = mw.ustring.gsub(s, "%s+", " ")
u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1")
return u
end
return utils