Compare commits

...

7 Commits

Author SHA1 Message Date
blallo fa0023d2d1
Bump to v0.3.3 2022-09-27 23:16:11 +02:00
blallo 4d1596c4a2
Make cc REALLY work 2022-09-27 23:15:50 +02:00
blallo 821335d719
Bump to v0.3.2 2022-09-27 23:06:12 +02:00
blallo 635780b353
Some mailserver require the Date header 2022-09-27 23:04:12 +02:00
blallo 51b4e6c112
Cc should not be empty 2022-09-27 23:03:42 +02:00
blallo 9750623929
Bump to v0.3.1 2022-09-20 22:30:18 +02:00
blallo f3ed2b0cc9
Optionally add Cc to the email 2022-09-20 22:29:59 +02:00
4 changed files with 26 additions and 7 deletions

View File

@ -20,6 +20,7 @@ def get_section(obj: T.Dict[T.Text, T.Any], key: T.Text) -> T.Any:
class Config(object):
smtp: T.Dict[T.Text, T.Any] = {}
to: T.List[T.Text] = []
cc: T.List[T.Text] = []
store: T.Optional[T.Text] = None
def __init__(self, path: T.Text) -> None:
@ -35,6 +36,9 @@ class Config(object):
self.to = get_section(content, "to")
if cc := content.get("cc"):
self.cc = cc
smtp = get_section(content, "smtp")
for key in [
"smtp_addr",

View File

@ -32,10 +32,10 @@ def main(config: Config):
data.append(get_details(row, aux_data))
if not data:
out.send_no_data(config.to)
out.send_no_data(config.to, config.cc)
excel = to_excel(data, config.store)
out.send_result(config.to, excel)
out.send_result(config.to, config.cc, excel)
def cli():

View File

@ -1,5 +1,6 @@
# -*- encoding: utf-8 -*-
from contextlib import contextmanager
from datetime import datetime
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
@ -55,13 +56,18 @@ class Notifier(object):
conn.sendmail(self._from, to, email)
@retry_and_log(logger, RETRIES)
def send_result(self, to: T.List[T.Text], result: bytes) -> None:
def send_result(
self, to: T.List[T.Text], cc: T.List[T.Text], result: bytes
) -> None:
date = get_date()
body = f"Resoconto dei voli dal sito di AdR per l'aereoporto di Ciampino in data {date}" # noqa: E501
message = MIMEMultipart()
message["Date"] = datetime.now().strftime("%a, %d %b %Y %H:%M:%S %z")
message["From"] = self._from
message["To"] = ",".join(to)
if cc:
message["Cc"] = ",".join(cc)
message["Subject"] = f"[{date}] Resoconto CIA da AdR"
message.attach(MIMEText(body, "plain"))
@ -78,10 +84,13 @@ class Notifier(object):
email = message.as_string()
self.send(to, email)
rcpt = to
rcpt.extend(cc)
self.send(rcpt, email)
@retry_and_log(logger, RETRIES)
def send_no_data(self, to: T.List[T.Text]) -> None:
def send_no_data(self, to: T.List[T.Text], cc: T.List[T.Text]) -> None:
date = get_date()
body = f"""Attenzione
@ -91,11 +100,17 @@ il vostro tecnico preferito.
"""
message = MIMEMultipart()
message["Date"] = datetime.now().strftime("%a, %d %b %Y %H:%M:%S %z")
message["From"] = self._from
message["To"] = ",".join(to)
if cc:
message["Cc"] = ",".join(cc)
message["Subject"] = f"ATTENZIONE: [{date}] Resoconto CIA da AdR"
message.attach(MIMEText(body, "plain"))
email = message.as_string()
self.send(to, email)
rcpt = to
rcpt.extend(cc)
self.send(rcpt, email)

View File

@ -1,6 +1,6 @@
[project]
name = "latecomers"
version = "0.3.0"
version = "0.3.3"
description = "Retrieve and save data from ADR Ciampino airport"
authors = [{name="Leonardo Barcaroli", email="blallo@autistici.org"}]
license = {text="Public Domain"}