Aller au contenu

Module:Episode/Shared/Utils

De Stargate Wiki Sémantique
Version datée du 1 juin 2026 à 20:02 par LIMAFOX76 (discussion | contributions) (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",... »)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Documentation icon Documentation module[créer]
-- 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",
        ["ì"]="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
    u = mw.ustring.gsub(u, "%s+", " ")
    u = mw.ustring.gsub(u, "^%s*(.-)%s*$", "%1")
    return u
end

-- Validate episode entry minimal shape
function p.validate_episode(ep)
    if type(ep) ~= "table" then return false end
    if not ep.id or not ep.season or not ep.episode then return false end
    return true
end

return p