From e48490ffc1e842f32bade116b850e014a942a885 Mon Sep 17 00:00:00 2001 From: Yannik Enss Date: Tue, 30 Jun 2020 13:39:59 +0200 Subject: [PATCH] debug options and quoted-printable decoding --- generate.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/generate.py b/generate.py index 81d15aa..da954a9 100755 --- a/generate.py +++ b/generate.py @@ -8,6 +8,7 @@ import datetime import sys import pypandoc import argparse +import quopri from pprint import pprint CONFIG_FILE = "generator.conf" @@ -29,7 +30,10 @@ class Top: self.title = decode_header(message["Subject"])[6:] real_name, address = email.utils.parseaddr(message["From"]) self.sender = real_name or address - self.body = message.get_payload().rpartition("\n--")[0] + payload = message.get_payload() + if message["Content-Transfer-Encoding"] == "quoted-printable": + payload = quopri.decodestring(payload.encode("ascii")).decode("utf8") + self.body = payload.rpartition("\n--")[0] if "\n--" in payload else payload elif title: self.title = title self.sender = sender @@ -96,6 +100,7 @@ if __name__ == "__main__": mode.add_argument("--invite", action="store_true") mode.add_argument("--presentation", action="store_true") mode.add_argument("--protocol", action="store_true") + parser.add_argument("--debug", action="store_true", help=argparse.SUPPRESS) parser.add_argument("--write-mbox", action="store_true") args = parser.parse_args() @@ -138,6 +143,8 @@ if __name__ == "__main__": email_tops = [] for message in mbox: + if args.debug: + print(message.get_payload()) top = Top(message=message) email_tops.append(top) @@ -155,11 +162,15 @@ if __name__ == "__main__": "email_tops": email_tops, "WEEKDAYS": WEEKDAYS} - if args.write_mbox: + if args.debug: + for top in to: + pprint(top.__dict__) + pprint(context) + elif args.write_mbox: msg = email.message.EmailMessage() msg.set_content(template.render(context)) msg["Subject"] = j2env.from_string(config["invite_subject"]).render(context) - msg["From"] = config["redeleitung"]["email"] + msg["From"] = email.utils.formataddr((config["redeleitung"]["name"], config["redeleitung"]["email"])) msg["To"] = config["invite_mail"] mbox = mailbox.mbox(config["mbox_out"]) mbox.add(msg)