From 652cf38ffe497144876e29764295e8be795d94d7 Mon Sep 17 00:00:00 2001 From: 3wc <3wc@doesthisthing.work> Date: Wed, 11 Aug 2021 02:42:55 +0200 Subject: [PATCH] =?UTF-8?q?Initial=20import=20=F0=9F=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ mailboop/__init__.py | 0 mailboop/__main__.py | 39 ++++++++++++++++++++++++++++++++++++ requirements-dev.txt | 4 ++++ requirements.txt | 2 ++ setup.py | 47 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 97 insertions(+) create mode 100644 README.md create mode 100644 mailboop/__init__.py create mode 100644 mailboop/__main__.py create mode 100644 requirements-dev.txt create mode 100644 requirements.txt create mode 100644 setup.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..8925a6d --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# mailboop + +Check email (IMAP) and boop snoots (Rocketchat). + + diff --git a/mailboop/__init__.py b/mailboop/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mailboop/__main__.py b/mailboop/__main__.py new file mode 100644 index 0000000..226e3f0 --- /dev/null +++ b/mailboop/__main__.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +import datetime +import os + +from imap_tools import MailBox + + +def main(): + # Server is the address of the imap server + 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") + messages = mb.fetch(limit=10, mark_seen=False, + bulk=True) + + dates = [m.date for m in messages] + + median_date = sorted(dates)[len(dates) // 2] + median_delta = datetime.now() - median_date.replace(tzinfo=None) + + oldest_date = sorted(dates)[0] + oldest_delta = datetime.now() - oldest_date.replace(tzinfo=None) + + print(f"Median email: recevied {median_date}, {median_delta} ago") + + print(f"Oldest email: recevied {oldest_date}, {oldest_delta} ago") + + from pdb import set_trace; set_trace() + + +if __name__ == "__main__": + main() diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..c012276 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,4 @@ +-r requirements.txt + +black==21.7b0 +flake8==3.9.2 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7c68b00 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +rocketchat-API==1.16.0 +imap-tools==0.45.0 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..d1b2f9a --- /dev/null +++ b/setup.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from setuptools import setup, find_packages +import os + +here = os.path.abspath(os.path.dirname(__file__)) +README = open(os.path.join(here, 'README.md')).read() + +setup(name='mailboop', + namespace_packages=['mailboop'], + version='0.0.1', + description='Check mail, boop snoots', + long_description=README, + #long_description=README + '\n\n' + CHANGES, + long_description_content_type='text/markdown', + author='3wc', + author_email='3wc.mailboop@doesthisthing.work', + # classifiers=[ + # 'Programming Language :: Python', + # 'Programming Language :: Python :: 2.7', + # 'Programming Language :: Python :: 3.4', + # 'Programming Language :: Python :: 3.5', + # 'Programming Language :: Python :: 3.6', + # 'Programming Language :: Python :: 3.7', + # 'Programming Language :: Python :: 3.8', + # 'Programming Language :: Python :: Implementation :: CPython', + # 'Programming Language :: Python :: Implementation :: PyPy', + # 'Topic :: Terminals', + # 'Intended Audience :: Developers', + # 'Intended Audience :: System Administrators', + # 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', + # ], + # url='https://github.com/Gandi/gandi.cli', + packages=find_packages(), + # cmdclass={'test': PyTest}, + include_package_data=True, + zip_safe=False, + # install_requires=requires, + # tests_require=tests_require, + # extras_require=extras_require, + entry_points={ + 'console_scripts': [ + 'gandi = gandi.cli.__main__:main', + ], + }, + )