diff --git a/main.py b/main.py index a1c1244..78f279d 100644 --- a/main.py +++ b/main.py @@ -8,9 +8,13 @@ passw = os.getenv("IMAP_PASSWORD", "") mail = os.getenv("IMAP_EMAIL", "") domain = os.getenv("IMAP_SERVER", "imap.uni-potsdam.de") -folder = os.getenv("IMAP_FOLDER", "Uni Mail") +folder = os.getenv("IMAP_FOLDER", '"Uni Mail/FSR"') -cutoff = os.getenv("IMAP_CUTOFF") or datetime.date.today() - datetime.timedelta(weeks=1) +cutoff = ( + datetime.date.fromisoformat(c) + if (c := os.getenv("IMAP_CUTOFF")) + else datetime.date.today() - datetime.timedelta(weeks=1) +) def get_titles(cutoff): @@ -23,7 +27,7 @@ def get_titles(cutoff): m = message_count date = datetime.date.today() - while date >= cutoff: + while True: res, msg = imap.fetch(str(m), "(RFC822)") # fetches email using ID for response in msg: @@ -35,12 +39,15 @@ def get_titles(cutoff): decoded_subj, enc = email.header.decode_header(subj)[0] if isinstance(decoded_subj, bytes): decoded_subj = decoded_subj.decode(enc) - decoded_subj = decoded_subj.strip() + decoded_subj = decoded_subj.strip().replace("\n", "") - received, _ = email.header.decode_header(msg["Received"])[0] + received, _ = email.header.decode_header(msg["Date"])[0] received = received.split(";")[-1].strip() - date = datetime.datetime.strptime(received, "%a, %d %b %Y %X +0200").date() + date = datetime.datetime.strptime(received, "%a, %d %b %Y %X %z").date() + + if date < cutoff: + return yield date.isoformat(), decoded_subj