From 693e8f195d90e6fd2afa7f5201363d102a2fbd3a Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sun, 18 Dec 2022 21:03:45 +0000 Subject: [PATCH] Notify when issue #147 occurs --- .envrc | 5 +++++ app/config.py | 1 + app/helpers.py | 29 +++++++++++++++++++++++++++++ app/playlists.py | 5 ++++- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/.envrc b/.envrc index af5d92a..2f1f1fc 100644 --- a/.envrc +++ b/.envrc @@ -1,4 +1,9 @@ layout poetry +export MAIL_PASSWORD="ewacyay5seu2qske" +export MAIL_PORT=587 +export MAIL_SERVER="smtp.fastmail.com" +export MAIL_USERNAME="kae@midnighthax.com" +export MAIL_USE_TLS=True branch=$(git branch --show-current) if on_git_branch master; then export MM_ENV="PRODUCTION" diff --git a/app/config.py b/app/config.py index ac8d4e4..bdf2966 100644 --- a/app/config.py +++ b/app/config.py @@ -54,6 +54,7 @@ class Config(object): DEFAULT_IMPORT_DIRECTORY = "/home/kae/Nextcloud/tmp" DEFAULT_OUTPUT_DIRECTORY = "/home/kae/music/Singles" DISPLAY_SQL = False + ERRORS_FROM = ['noreply@midnighthax.com'] ERRORS_TO = ['kae@midnighthax.com'] FADE_STEPS = 20 FADE_TIME = 3000 diff --git a/app/helpers.py b/app/helpers.py index b59a4db..7d5cf79 100644 --- a/app/helpers.py +++ b/app/helpers.py @@ -1,8 +1,11 @@ import os import psutil import shutil +import smtplib +import ssl import tempfile +from email.message import EmailMessage from mutagen.flac import FLAC # type: ignore from mutagen.mp3 import MP3 # type: ignore from pydub import effects @@ -159,6 +162,32 @@ def leading_silence( return min(trim_ms, len(audio_segment)) +def send_mail(to_addr, from_addr, subj, body): + # From https://docs.python.org/3/library/email.examples.html + + # Create a text/plain message + msg = EmailMessage() + msg.set_content(body) + + msg['Subject'] = subj + msg['From'] = from_addr + msg['To'] = to_addr + + # Send the message via SMTP server. + context = ssl.create_default_context() + try: + s = smtplib.SMTP(host=Config.MAIL_SERVER, port=Config.MAIL_PORT) + if Config.MAIL_USE_TLS: + s.starttls(context=context) + if Config.MAIL_USERNAME and Config.MAIL_PASSWORD: + s.login(Config.MAIL_USERNAME, Config.MAIL_PASSWORD) + s.send_message(msg) + except Exception as e: + print(e) + finally: + s.quit() + + def ms_to_mmss(ms: int, decimals: int = 0, negative: bool = False) -> str: """Convert milliseconds to mm:ss""" diff --git a/app/playlists.py b/app/playlists.py index c516472..fc719d9 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -45,6 +45,7 @@ from helpers import ( get_relative_date, ms_to_mmss, open_in_audacity, + send_mail, set_track_metadata, ) from log import log @@ -1954,7 +1955,9 @@ class PlaylistTab(QTableWidget): try: self.item(playlist_row.row_number, column).setText(new_text) except AttributeError: - pass + msg = f"Issue 147 occurred. {playlist_row=}, {additional_text=}" + helpers.send_mail(Config.ERRORS_TO, Confit.ERRORS_FROM, + "Issue #147 from musicmuster", msg) def _update_row(self, session, row: int, track: Tracks) -> None: """