Path: csiph.com!news.redatomik.org!.POSTED!not-for-mail From: Doug713705 Newsgroups: fr.comp.lang.python Subject: Re: [Mailman] Passerelle mail -> news groupe =?UTF-8?Q?mod=C3=A9r=C3=A9?= Date: Sat, 8 Oct 2016 21:16:47 +0000 (UTC) Organization: Les cassoulets tropicaux reunis Lines: 81 Sender: doug.letough@free.fr Message-ID: References: Reply-To: Doug Le Tough NNTP-Posting-Host: golgoth99.redatomik.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit X-Trace: golgoth99.redatomik.org 1475961407 29472 163.172.215.184 (8 Oct 2016 21:16:47 GMT) X-Complaints-To: abuse@redatomik.org NNTP-Posting-Date: Sat, 8 Oct 2016 21:16:47 +0000 (UTC) User-Agent: slrn/pre1.0.0-18 (Linux) X-Face: 'Sh}&9(gyOf[,6&8(Gv#k(:g=wUCLP}b#oqMPkLKpV"|y1TatXGYTh.jK\!@!&OsR}'~a %D7>:N$)5?\hx$?7Vu5U}GgJaY[&Hb!ThY_TB}.EsQn%JD4k<<)V_f*]P'FM) : > 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à > 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: 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