« Module:ConvertCourtCode » : différence entre les versions

De alcolois
Aller à la navigation Aller à la recherche
Création du module
 
MIse à jour afin d'obtenir aussi le code du tribunal pour la forme suivante : Au Bar La Marraine, 2018 CanLII 44720 (QC RACJ)
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 2 : Ligne 2 :


local nomsComplets = {
local nomsComplets = {
     QCTAQ = "Tribunal administratif du Québec",
     QCTAQ = "du Tribunal administratif du Québec",
     QCRACJ = "Régie des alcools, des courses et des jeux",
     QCRACJ = "de la Régie des alcools, des courses et des jeux",
     QCCA = "Cour d'appel du Québec",
     QCCA = "de la Cour d'appel du Québec",
     QCCS = "Cour supérieure du Québec",
     QCCS = "de la Cour supérieure du Québec",
     QCCQ = "Cour du Québec",
     QCCQ = "de la Cour du Québec",
     QCCM = "Cours municipales"
     QCCM = "d'une Cour municipale"
}
}


function p.extraireNomTribunal(frame)
function p.extraireNomTribunal(frame)
     local texte = frame.args[1] or ""
     local texte = frame.args[1] or ""
     -- Cherche une virgule, un espace, 4 chiffres, un espace, puis le code tribunal
    local code = nil
     local code = string.match(texte, ",%s*%d%d%d%d%s+([A-Z]+)")
 
     -- 1. Essayer d'extraire le code entre parenthèses (ex: (QC RACJ))
    local brutParenthese = string.match(texte, "%(([%sA-Z]+)%)%s*$")
    if brutParenthese then
        code = string.gsub(brutParenthese, "%s+", "")
    end
 
    -- 2. Sinon, essayer d'extraire le code après l'année (ex: 2025 QCRACJ 19)
     if not code then
        code = string.match(texte, ",%s*%d%d%d%d%s+([A-Z]+)")
    end
 
    -- Retourner le nom complet s’il est connu
     if code and nomsComplets[code] then
     if code and nomsComplets[code] then
         return nomsComplets[code]
         return nomsComplets[code]
     elseif code then
     elseif code then
         return code -- retourne le code brut si pas de correspondance
         return code -- code inconnu, retourne tel quel
     else
     else
         return ""
         return "" -- rien trouvé
     end
     end
end
end


return p
return p

Dernière version du 31 mai 2025 à 16:09

La documentation pour ce module peut être créée à Module:ConvertCourtCode/doc

local p = {}

local nomsComplets = {
    QCTAQ = "du Tribunal administratif du Québec",
    QCRACJ = "de la Régie des alcools, des courses et des jeux",
    QCCA = "de la Cour d'appel du Québec",
    QCCS = "de la Cour supérieure du Québec",
    QCCQ = "de la Cour du Québec",
    QCCM = "d'une Cour municipale"
}

function p.extraireNomTribunal(frame)
    local texte = frame.args[1] or ""
    local code = nil

    -- 1. Essayer d'extraire le code entre parenthèses (ex: (QC RACJ))
    local brutParenthese = string.match(texte, "%(([%sA-Z]+)%)%s*$")
    if brutParenthese then
        code = string.gsub(brutParenthese, "%s+", "")
    end

    -- 2. Sinon, essayer d'extraire le code après l'année (ex: 2025 QCRACJ 19)
    if not code then
        code = string.match(texte, ",%s*%d%d%d%d%s+([A-Z]+)")
    end

    -- Retourner le nom complet s’il est connu
    if code and nomsComplets[code] then
        return nomsComplets[code]
    elseif code then
        return code -- code inconnu, retourne tel quel
    else
        return "" -- rien trouvé
    end
end

return p