mail.py: add un peu de doc

This commit is contained in:
Daniel STAN 2015-04-05 14:42:18 +02:00
parent ffb4a1d94f
commit a742a6847c

View file

@ -48,6 +48,7 @@ def format_date(d):
return d.strftime('%A, %B %d %Y').decode(encoding)
def given_name(adh):
"""Renvoie le joli nom d'un adhérent"""
if 'club' in adh['objectClass']:
return u'Club %s' % unicode(adh['nom'][0])
return unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0])
@ -66,15 +67,17 @@ markup = {
### print generate('bienvenue', {'From':'respbats@crans.org', 'To':'admin@genua.fr', 'lang_info':'English version below'}).as_string()
### or from a shell : python -c "import mail; print mail.generate('bienvenue', {'From':'respbats@crans.org', 'To':'admin@genua.fr', 'lang_info':'English version below'})"
def submessage(playload, type, charset='utf-8'):
def submessage(payload, type, charset='utf-8'):
"""Renvois un sous message à mettre dans un message multipart"""
submsg = MIMEText('', type, charset)
del(submsg['Content-Transfer-Encoding'])
submsg['Content-Transfer-Encoding'] = '8bit'
submsg.set_payload(playload)
submsg.set_payload(payload)
return submsg
def get_lang(mail, part, lang, lang_fallback):
"""Récupère le chemin vers le fichier à utiliser, en fonction de la
langue souhaitée"""
for l in [lang, lang_fallback]:
for ext in markup.keys():
if os.path.isfile(template_path + mail + '/' + part + '/' + l + '.' + ext):
@ -93,6 +96,8 @@ def gen_local_body(fname, params, lang):
return templateEnv.get_template(fname).render(params)
def body(mail, lang1, lang2, mk, params, charset):
"""Génère le texte du mail, en deux langues, avec une extension `mk` donnée
"""
ret = []
file1 = template_path + mail + '/body/' + lang1
file2 = template_path + mail + '/body/' + lang2
@ -116,7 +121,12 @@ def body(mail, lang1, lang2, mk, params, charset):
ret.append(submessage(txt.encode(charset), 'plain', charset))
if mk: # compute the html version
params_html = dict(params)
params_html.update({'lang1':lang1, 'lang2':lang2, 'body1': markup[mk](txt1), 'body2': markup[mk](txt2)})
params_html.update({
'lang1':lang1,
'lang2':lang2,
'body1': markup[mk](txt1),
'body2': markup[mk](txt2),
})
html = templateEnv.get_template(html_mutilang_template).render(params_html)
ret.append(submessage(html.encode(charset), 'html', charset))
return ret
@ -193,6 +203,8 @@ def format_sender(sender, header_charset='utf-8'):
@contextmanager
def bugreport():
"""Context manager: Si erreur, renvoie un bugreport avec un traceback à
roots@."""
try:
yield
except Exception as exc:
@ -221,6 +233,7 @@ class ServerConnection(object):
return self
def sendmail(self, From, to, mail):
"""Envoie un mail"""
if os.getenv('DBG_MAIL', False):
deb = os.getenv('DBG_MAIL')
if '@' in deb: