diff --git a/gestion/mail/mail_impression_ok.py b/gestion/mail/mail_impression_ok.py index 6e70bde0..50e447de 100755 --- a/gestion/mail/mail_impression_ok.py +++ b/gestion/mail/mail_impression_ok.py @@ -5,7 +5,10 @@ adhérent. Le script se connecte à l'interface d'impression pour récupérer la liste des dernières tâches imprimées. Ce script est lancé par un cron toutes les dix minutes sur zamok. Pour éviter de notifier plusieurs fois de la même fin d'impression, on ne balaie dans -la liste que le dernier intervalle (bornes entières) de dix minutes""" +la liste que le dernier intervalle (bornes entières) de dix minutes + +detraz@crans.org +""" import BeautifulSoup import sys @@ -13,9 +16,7 @@ import requests import re import datetime import time -import smtplib -from gestion.affich_tools import cprint from gestion import mail from utils.sendmail import actually_sendmail from lc_ldap import shortcuts @@ -32,13 +33,13 @@ try: req = requests.get(URL_JOBLIST, verify=CA) except requests.exceptions.ConnectionError: print '''L'imprimante est injoignable. Une intervention manuelle peut être nécessaire --- +-- Le script de notification d'impressions''' exit(1) if req.status_code!=200: print '''L'imprimante est injoignable. Une intervention manuelle peut être nécessaire --- +-- Le script de notification d'impressions''' exit(1) @@ -60,7 +61,6 @@ fin = now.replace(second=0, minute=(now.minute/10)*10, microsecond=0) debut = fin - datetime.timedelta(minutes=10) success=dict() -clubs=dict() echecs=dict() for job in jobs: # Fin de parsing @@ -101,19 +101,10 @@ for job in jobs: nb = split[0] name = split[1] task = u':'.join(split[2:]) - if u'@' in name: - #Seuls les clubs ont un @ dans leur alias, donc boucle - # dédiée au clubs - [name, club] = name.split(u'@', 1) - if club not in clubs: - clubs[club] = {'task': []} - clubs[club]['task'].append(task) if name not in success: success[name] = {'task': []} success[name]['task'].append(task) -#Section consacrée à l'envoi : partie 1 pour les adh, partie 2 pour les clubs -#To = 'detraz@crans.org' From = 'impression@crans.org' e = 0 a = 0 @@ -124,7 +115,11 @@ for name in success: a = a + 1 adh = ad[0] To = name + u'@crans.org' - tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0]) + try: + tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0]) + # Pour les clubs + except KeyError: + tname = unicode(name) codes = [x[0] + u'#' for x in digicode.list_code(name)] if not codes: codes = [digicode.gen_code(name) + u'#'] @@ -137,36 +132,21 @@ for name in success: 'taches': u', '.join(success[name]['task']), 'codes': u', '.join(codes) }) - #print mailtxt.as_string() + if VERB: + print mailtxt.as_string() actually_sendmail(From, (To,), mailtxt) else: e = e+1 -for club in clubs: - a = a + 1 - tname = club - To = club + u'@crans.org' - codes = [x[0] + u'#' for x in digicode.list_code(club)] - if not codes: - codes = [digicode.gen_code(club) + u'#'] - if VERB: - print (u"Envoi du mail à %s" % To) - mailtxt=mail.generate('mail_impression_ok', { - 'To': To, - 'From': From, - 'tname': tname, - 'taches': u', '.join(clubs[club]['task']), - 'codes': u', '.join(codes), - }) - #print mailtxt.as_string() - actually_sendmail(From, (To,), mailtxt) - for name in echecs: ad = con.search(u'(uid=%s)' % name) To = 'impression@lists.crans.org' if ad <> []: adh = ad[0] - tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0]) + try: + tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0]) + except KeyError: + tname = unicode(name) else: tname = name mailtxt=mail.generate('mail_impression_ratee', { @@ -175,7 +155,8 @@ for name in echecs: 'tname': tname, 'taches': u', '.join(echecs[name]['task']), }) - #print mailtxt.as_string() + if VERB: + print mailtxt.as_string() actually_sendmail(From, (To,), mailtxt) @@ -186,4 +167,3 @@ if e>0: print a print "Nombre de mails non envoyés faute de résultats LDAP :" print e -#print len(success)