Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #2939

Re: [Mailman] Passerelle mail -> news groupe modéré

From Doug713705 <doug.letough@free.fr>
Newsgroups fr.comp.lang.python
Subject Re: [Mailman] Passerelle mail -> news groupe modéré
Date 2016-10-08 21:16 +0000
Organization Les cassoulets tropicaux reunis
Message-ID <ntbnnv$sp0$1@golgoth99.redatomik.org> (permalink)
References <slrnnvfgjm.22o.invalid@mbp.gegeweb.org> <slrnnvg0q5.2v3.invalid@mbp.gegeweb.org> <slrnnvh2ao.mi.invalid@mbp.gegeweb.org> <ntah6h$4m1$2@golgoth99.redatomik.org> <slrnnvhm1o.pa.invalid@mbp.gegeweb.org>

Show all headers | View raw


Le 08-10-2016, Gérald Niel nous expliquait dans 
fr.comp.lang.python
(<slrnnvhm1o.pa.invalid@mbp.gegeweb.org>) :

> Le Samedi 08 octobre 2016 à 10:18 UTC, Doug713705 écrivait sur
> fr.comp.lang.python :
>
>> Il faudrait déjà avoir un bout de code d'exemple de handler.
>> J'ai la flemme de fouiller mailman qui est quand même une belle usine à 
>> gaz.
>
> En fait ça se passe là
> Mailman/Queue/NewsRunner.py
>
> Les Handler c'est visiblement pour ne pas toucher au code. J'ai pas
> encore tout compris non plus. C'est expliqué là
><https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the>

Bon, j'ai jeté un oeil à ce bazar.
Ce n'est pas bien compliqué et un exemple de handler est foruni:
https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the?action=AttachFile&do=view&target=MyHandler.py

(Et oui, ça existe encore des URLs aussi pourraves !)

> Et il y a la pipeline 'ToUsenet',
> mais tout ça j'ai pas encore tout compris non plus. ;)

Bon, là je ne sais pas de quoi tu parles, je n'ai pas de pipeline 
ToUsenet chez moi mais si je comprends bien cette doc:

https://wiki.list.org/DOC/4.67%20How%20do%20I%20implement%20a%20custom%20handler%20in%20Mailman%2C%20e.g.%20to%20mung%20headers%20or%20filter%20posts%20based%20on%20regex%20searches%20of%20the?action=show&redirect=DOC%2F4.67+How+do+I+implement+a+custom+handler+in+Mailman%3F

Il faut, une fois le handler écrit, il faut configurer le pipeline 
(ToUsenet dans ton cas ?) pour qu'il prenne en charge le handler.

Typiquement le pipeline est simplement la suite de traitement que subi 
un mail avant d'être accepeté ou rejeté.

L'acceptation ou le rejet dépendant du retour faits par les handlers 
enregistré dans le pipeline.

Simple, efficace, pythonic quoi :)

En gros, il te faut commencer par écrire ton handler en te basant sur 
l'exemple et suivre la doc pour enregistrer ce handler dans le pipeline 
qui va bien.

Pour le handler, en regardant très vite fait, il faudra simplement que 
tu check que le header de ton choix a bien la bonne valeur et si ce 
n'est pas le cas tu le balance en DISCARD.

en gros:

<Tous les imports>

DISCARD = re.compile(r'Je ne veux pas voir ça', re.IGNORECASE)

def process(mlist, msg, msgdata):
 if DISCARD.search(msg['ton_header']):
   # Discard silencieusement les messages 
   Moderate.do_discard(mlist, msg)
 else:
   # Accept le message
   msgdata['approved'] = 1
   msgdata['adminapproved'] = 1
   return

Et tu dégages tout le reste qui ne concerne que l'analyse du corps du 
message.

Bon, c'est "en gros", ça ne fonctionnera probablement pas tel quel, il 
va falloir s'assurer que ton_header est bien visible depuis ton handler 
et que "Moderate.do_discard(mlist, msg)" et les "msgdata[..." feront 
bien le boulot attendu dans ton cas qui n'est pas un envoi vers la liste 
mais, si j'ai bien compris, vers Usenet.

-- 
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
                    -- H.F. Thiéfaine, L'ascenceur de 22H43

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: [Mailman] Passerelle mail -> news groupe modéré Gérald Niel <invalid@gegeweb.org> - 2016-10-08 05:51 +0000
  Re: [Mailman] Passerelle mail -> news groupe modéré Doug713705 <doug.letough@free.fr> - 2016-10-08 10:18 +0000
    Re: [Mailman] Passerelle mail -> news groupe modéré Gérald Niel <invalid@gegeweb.org> - 2016-10-08 11:27 +0000
      Re: [Mailman] Passerelle mail -> news groupe modéré Doug713705 <doug.letough@free.fr> - 2016-10-08 18:56 +0000
        Re: [Mailman] Passerelle mail -> news groupe modéré Gérald Niel <gerald.niel+spam@gegeweb.invalid> - 2016-10-09 12:15 +0000
          Re: [Mailman] Passerelle mail -> news groupe modéré Doug713705 <doug.letough@free.fr> - 2016-10-09 17:53 +0000
      Re: [Mailman] Passerelle mail -> news groupe modéré Doug713705 <doug.letough@free.fr> - 2016-10-08 21:16 +0000
        Re: [Mailman] Passerelle mail -> news groupe modéré Gérald Niel <gerald.niel+spam@gegeweb.invalid> - 2016-10-09 18:01 +0000
          Re: [Mailman] Passerelle mail -> news groupe modéré Doug713705 <doug.letough@free.fr> - 2016-10-09 19:23 +0000
  Re: [Mailman] Passerelle mail -> news groupe modéré yves <yves@free.invalid> - 2016-10-08 13:19 +0000

csiph-web