debug options and quoted-printable decoding

This commit is contained in:
2020-06-30 13:39:59 +02:00
parent 5caf46e7d0
commit e48490ffc1

View File

@@ -8,6 +8,7 @@ import datetime
import sys import sys
import pypandoc import pypandoc
import argparse import argparse
import quopri
from pprint import pprint from pprint import pprint
CONFIG_FILE = "generator.conf" CONFIG_FILE = "generator.conf"
@@ -29,7 +30,10 @@ class Top:
self.title = decode_header(message["Subject"])[6:] self.title = decode_header(message["Subject"])[6:]
real_name, address = email.utils.parseaddr(message["From"]) real_name, address = email.utils.parseaddr(message["From"])
self.sender = real_name or address 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: elif title:
self.title = title self.title = title
self.sender = sender self.sender = sender
@@ -96,6 +100,7 @@ if __name__ == "__main__":
mode.add_argument("--invite", action="store_true") mode.add_argument("--invite", action="store_true")
mode.add_argument("--presentation", action="store_true") mode.add_argument("--presentation", action="store_true")
mode.add_argument("--protocol", 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") parser.add_argument("--write-mbox", action="store_true")
args = parser.parse_args() args = parser.parse_args()
@@ -138,6 +143,8 @@ if __name__ == "__main__":
email_tops = [] email_tops = []
for message in mbox: for message in mbox:
if args.debug:
print(message.get_payload())
top = Top(message=message) top = Top(message=message)
email_tops.append(top) email_tops.append(top)
@@ -155,11 +162,15 @@ if __name__ == "__main__":
"email_tops": email_tops, "email_tops": email_tops,
"WEEKDAYS": WEEKDAYS} "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 = email.message.EmailMessage()
msg.set_content(template.render(context)) msg.set_content(template.render(context))
msg["Subject"] = j2env.from_string(config["invite_subject"]).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"] msg["To"] = config["invite_mail"]
mbox = mailbox.mbox(config["mbox_out"]) mbox = mailbox.mbox(config["mbox_out"])
mbox.add(msg) mbox.add(msg)