This repository has been archived on 2024-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
mailboop/mailboop/__main__.py

66 lines
1.7 KiB
Python

#!/usr/bin/python
# -*- coding: utf-8 -*-
from datetime import datetime
import os
from imap_tools import MailBox
import requests
def main():
print("connecting to imap server")
mb = MailBox(os.getenv("MAIL_SERVER"), 993).login(
os.getenv("MAIL_USER"), os.getenv("MAIL_PASSWORD")
)
# Fetch all emails
# Don't mark them as seen
# Set bulk=True to read them all into memory in one fetch
# (as opposed to in streaming which is slower but uses less memory)
print("downloading mailz")
message_reader = mb.fetch(mark_seen=False, bulk=True)
messages = list(message_reader)
unread = list(filter(lambda x: "\\Seen" not in x.flags, messages))
dates = [m.date.replace(tzinfo=None) for m in messages]
median_date = sorted(dates)[len(dates) // 2]
median_delta = datetime.now() - median_date
oldest_date = sorted(dates)[0]
oldest_delta = datetime.now() - oldest_date
count = len(dates)
count_unread = len(unread)
output = f"""\
booping ur snoots :point_right:
total emails: **{count}**
unread: **{count_unread}**
median email: recevied **{median_date}**, {median_delta} ago
oldest email: recevied **{oldest_date}**, {oldest_delta} ago
"""
print("sendin boops")
r = requests.post(
os.getenv("ROCKETCHAT_HOOK_URL"),
json={
"alias": "mailboop",
"emoji": ":snake:",
"text": output,
# "attachments": [{
# "title": "Rocket.Chat",
# "title_link": "https://rocket.chat",
# "text": output,
# # "image_url": "/images/integration-attachment-example.png",
# "color": "#764FA5"
# }]
},
)
if __name__ == "__main__":
main()