]> gitweb.pimeys.fr Git - config-20-100.git/commitdiff
[procmail] Gestion du tri des mail de Discourse
authorVincent Le Gallic <legallic@crans.org>
Fri, 12 Feb 2016 05:11:42 +0000 (06:11 +0100)
committerVincent Le Gallic <legallic@crans.org>
Fri, 12 Feb 2016 05:11:42 +0000 (06:11 +0100)
.procmail/rc/discourse.preprocessing [new file with mode: 0644]
.procmail/rc/discourse.rules [new file with mode: 0644]
.procmailrc

diff --git a/.procmail/rc/discourse.preprocessing b/.procmail/rc/discourse.preprocessing
new file mode 100644 (file)
index 0000000..665e1b2
--- /dev/null
@@ -0,0 +1,26 @@
+# Complémentaire au .procmailrc générique mis à votre disposition
+# par les gentils membres actifs du Cr@ns
+# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
+# Des questions, des suggestions : {nounou,ca}@lists.crans.org
+# Licence : WTFPL
+
+# Ce fichier doit être exécuté pour que discourse.rules puisse
+# trier correctement les mails de Discourse
+
+#------------------------------------------------------------------------------
+
+#################################################################
+##                          Variables                          ##
+#################################################################
+
+### Dossier sous lequel l'arborescence des mails envoyés par
+### Discourse sera rangée
+DISCOURSEDIR=.Discourse
+
+#################################################################
+##                        Préprocessing                        ##
+#################################################################
+# On redécode le champ List-ID, mais cette fois-ci en en retirant
+# les accents potentiels.
+:0
+LISTID=| formail -cXList-ID: | perl -MEncode -MText::Unaccent::PurePerl -pE '$_=encode("utf-8",unac_string(decode("MIME-Header", $_)))'
diff --git a/.procmail/rc/discourse.rules b/.procmail/rc/discourse.rules
new file mode 100644 (file)
index 0000000..cf22158
--- /dev/null
@@ -0,0 +1,33 @@
+# Complémentaire au .procmailrc générique mis à votre disposition
+# par les gentils membres actifs du Cr@ns
+# Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
+# Des questions, des suggestions : {nounou,ca}@lists.crans.org
+# Licence : WTFPL
+
+# Ce fichier permet de trier les mails envoyés par Discourse
+
+#------------------------------------------------------------------------------
+
+#################################################################
+##               Gestion des mails de Discourse                ##
+#################################################################
+:0
+* ML ?? discourse\.crans\.org$
+{
+  ML=`echo ${ML} | sed 's/discourse\.crans\.org$//;s/\.$//'`
+  # Le List-ID de Discourse est dans l'ordre sous-catégorie.catégorie
+  # pour une arborescence mail, on veut l'ordre inverse
+  ML=`echo ${ML} | sed "s/\./\n/g" | tac | paste -sd "."`
+  
+  # On veut s'assurer ML contient encore quelque chose (c'est-à-dire,
+  # n'était pas juste discourse.crans.org sans rien avant)
+  :0
+  * ? echo $ML
+  * ? test -n "${ML}"
+  ${DISCOURSEDIR}.${ML}/
+  
+  # Dossier par défaut
+  :0
+  ${DISCOURSEDIR}/
+}
+
index d6d636b1305fcbbc84e6baeee291b1d758a52531..c6d08b2aa658f24467aaa5b22f439c31774ace45 100644 (file)
@@ -399,7 +399,12 @@ XMAILER=| formail -cXX-Mailer: | perl -MEncode -pe '$_=encode("utf-8",decode("MI
 * ^Subject:
 SUBJECT=| formail -cXSubject: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
 
-
+:0
+* ^List-ID:
+LISTID=| formail -cXList-ID: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))'
+#~# # Pour faire fonctionner correctement le tri des mails envoyés par Discourse,
+#~# # Décommenter le INCLUDERC suivant
+#~# INCLUDERC="${CONFIGDIR}/discourse.preprocessing"
 
 ################################################################################
 #####                                Règles                                #####
@@ -805,10 +810,9 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
 
 :0
 # On récupère tous les mails qui sont arrivés par l'intermédaire d'une ML
-* ^List-Id:.*\/<[^<>]+>$
+* ^List-Id:.*
 {
-  ML=$MATCH
-  ML=`echo "${ML}" | sed 's/<//;s/>//'`
+  ML=`echo "${LISTID}" | sed 's/[^<]*<//;s/>//'`
   
   #################################################################
   ##              Gestion des mailing-listes Cr@ns               ##
@@ -929,6 +933,13 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules"
     ${MLCAMPUSDIR}.${MLFAILSUFFIX}.${ML_}/
   }
   
+  #~# # Décommenter pour activer le tri des mails envoyés par
+  #~# # Discourse. Attention, penser à décommener également
+  #~# # l'INCLUDERC de discourse.preprocessing
+  #~# # et lire https://wiki.crans.org/VieCrans/FichiersConfiguration#rc.2Fdiscourse
+  #~# # à propos de la remarque sur le module Perl à installer
+  #~# INCLUDERC=${CONFIGDIR}/discourse.rules
+  
   #################################################################
   ##             Gestion des mailing-listes FedeRez              ##
   #################################################################