+def _parse_saint(s):
+ """Renvoie la liste des fêtes contenue dans un jour"""
+ l = s.split(",")
+ ll = []
+ for st in l:
+ if st[0] == "&":
+ ll.append(["St ", st[1:]])
+ elif st[0] == "!":
+ ll.append(["Ste ", st[1:]])
+ return ll
+
+def _get_firstnames():
+ """Récupère la liste des noms des gens connus"""
+ birthdays = parse_datefile(config.birthdays_file)
+ firstnames = [b[1].split()[0] for b in birthdays]
+ return firstnames
+
+def get_saints():
+ """Renvoie la liste des fêtes à souhaiter aujourd'hui et demain"""
+ sourcesaints = json.load(open(config.saints_file))
+ now = get_now()
+ saints = {}
+ saints["today"] = _parse_saint(sourcesaints[now.month - 1][now.day - 1])
+ nbdays = len(sourcesaints[now.month - 1])
+ if now.day == nbdays: # il faut regarder le mois suivant
+ if now.month == 12: # il faut regarder l'année suivante
+ saints["tomorrow"] = _parse_saint(sourcesaints[0][0])
+ else:
+ saints["tomorrow"] = _parse_saint(sourcesaints[now.month][0])
+ else:
+ saints["tomorrow"] = _parse_saint(sourcesaints[now.month - 1][now.day])
+ firstnames = _get_firstnames()
+ towish = {"today" : [], "tomorrow" : []}
+ for day in ["today", "tomorrow"]:
+ ssaints = saints[day]
+ for (sexe, saint) in ssaints:
+ if any([firstname.lower() in saint.lower().split() for firstname in firstnames]):
+ towish[day].append(sexe + saint)
+ ttowish = []
+ if towish["today"]:
+ ttowish.append(u"Aujourd'hui :\n" + "\n".join(towish["today"]))
+ if towish["tomorrow"]:
+ ttowish.append(u"Demain :\n" + "\n".join(towish["tomorrow"]))
+ saints = "\n".join(ttowish)
+ saints = add_title(u"Fêtes à souhaiter", saints)
+ return saints
+