diff --git a/clean_data.py b/clean_data.py new file mode 100755 index 0000000..6869a53 --- /dev/null +++ b/clean_data.py @@ -0,0 +1,32 @@ +#!/usr/bin/python3 +import mailbox +import jinja2 +import email.header +import email.utils +import yaml +import datetime +import sys, os +import pypandoc +import argparse +import quopri +from pprint import pprint + +CONFIG_FILE = "generator.conf" + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--config", default=CONFIG_FILE) + args = parser.parse_args() + + config = yaml.full_load(open(args.config)) + + open(config["top_mbox_file"], 'w').close() + + + for top in config["pre_tops"]: + if "file" in top and os.path.isfile(top["file"]): + os.remove(top["file"]) + + for top in config["post_tops"]: + if "file" in top and os.path.isfile(top["file"]): + os.remove(top["file"]) diff --git a/read_ubmails.py b/read_ubmails.py new file mode 100755 index 0000000..0a58aea --- /dev/null +++ b/read_ubmails.py @@ -0,0 +1,41 @@ +#!/usr/bin/python3 +import mailbox +import jinja2 +import email.header +import email.utils +import yaml +import datetime +import sys, os +import pypandoc +import argparse +import quopri +from pprint import pprint +from dateutil import parser + +MAILDIR = "/home/yannik/mail/INBOX/" +OUTFILE = "ubemails.txt" + +def decode_header(header): + return "".join([ x[0].decode(x[1] or "ascii") if isinstance(x[0], bytes) else x[0] for x in email.header.decode_header(header) ]) + +if __name__ == "__main__": + mbox = mailbox.Maildir(MAILDIR) + + latest = None + latest_date = None + + for message in mbox: + if message["Subject"]: + if decode_header(message["Subject"]).strip() == "Unbeantwortete Mails": + date = parser.parse(message["Date"]) + if latest is None: + latest = message + latest_date = date + elif latest_date < date: + latest = message + latest_date = date + + if latest_date.date() != datetime.date.today(): + print("WARNING: Mail is not from today", file=os.stderr) + payload = latest.get_payload(decode=True).decode("utf8").strip() + print(payload.rpartition("\n--")[0].strip() if "\n--" in payload else payload)