From ab9955b88a55d87ce0a5a2a4890353f825c8ec83 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Tue, 15 Feb 2022 08:30:00 +0000 Subject: [PATCH] v2 tidy/refactor --- app/config.py | 6 ++++-- app/models.py | 2 +- app/musicmuster.py | 2 +- app/playlists.py | 10 ++++++++-- app/{songdb.py => utilities.py} | 33 ++++++++++++++------------------- 5 files changed, 28 insertions(+), 25 deletions(-) rename app/{songdb.py => utilities.py} (93%) diff --git a/app/config.py b/app/config.py index b31bf4d..6222768 100644 --- a/app/config.py +++ b/app/config.py @@ -7,20 +7,22 @@ class Config(object): COLOUR_CURRENT_HEADER = "#d4edda" COLOUR_CURRENT_PLAYLIST = "#7eca8f" COLOUR_CURRENT_TAB = "#248f24" - COLOUR_ODD_PLAYLIST = "#f2f2f2" COLOUR_ENDING_TIMER = "#dc3545" COLOUR_EVEN_PLAYLIST = "#d9d9d9" COLOUR_LONG_START = "#dc3545" - COLOUR_NORMAL_TAB = "#000000" COLOUR_NEXT_HEADER = "#fff3cd" COLOUR_NEXT_PLAYLIST = "#ffc107" COLOUR_NEXT_TAB = "#b38600" + COLOUR_NORMAL_TAB = "#000000" COLOUR_NOTES_PLAYLIST = "#b8daff" + COLOUR_ODD_PLAYLIST = "#f2f2f2" COLOUR_PREVIOUS_HEADER = "#f8d7da" COLOUR_UNREADABLE = "#dc3545" COLOUR_WARNING_TIMER = "#ffc107" DBFS_FADE = -12 DBFS_SILENCE = -50 + DEFAULT_IMPORT_DIRECTORY = "/home/kae/Nextcloud/tmp" + DEFAULT_OUTPUT_DIRECTORY = "/home/kae/music/Singles" DISPLAY_SQL = False ERRORS_TO = ['kae@midnighthax.com'] FADE_STEPS = 20 diff --git a/app/models.py b/app/models.py index 502876f..7709aa3 100644 --- a/app/models.py +++ b/app/models.py @@ -508,7 +508,7 @@ class Tracks(Base): @staticmethod def remove_by_path(session, path): - "Remove track with passed path from database" + """Remove track with passed path from database""" DEBUG(f"Tracks.remove_path({path=})") diff --git a/app/musicmuster.py b/app/musicmuster.py index 5e256bc..8cdcf74 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -30,7 +30,7 @@ from config import Config from models import (db_init, Notes, Playdates, Playlists, PlaylistTracks, Session, Settings, Tracks) from playlists import PlaylistTab -from songdb import create_track_from_file +from utilities import create_track_from_file from ui.dlg_search_database_ui import Ui_Dialog from ui.dlg_SelectPlaylist_ui import Ui_dlgSelectPlaylist from ui.main_window_ui import Ui_MainWindow diff --git a/app/playlists.py b/app/playlists.py index e5ecc09..1181521 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -20,9 +20,15 @@ from datetime import datetime, timedelta from helpers import get_relative_date, open_in_audacity from log import DEBUG, ERROR from models import ( - Notes, Playdates, Playlists, PlaylistTracks, Session, Settings, Tracks, NoteColours + Notes, + Playdates, + Playlists, + Session, + Settings, + Tracks, + NoteColours ) -from songdb import create_track_from_file, update_meta +from utilities import create_track_from_file, update_meta class PlaylistTab(QTableWidget): diff --git a/app/songdb.py b/app/utilities.py similarity index 93% rename from app/songdb.py rename to app/utilities.py index 85b6c59..2f631f6 100755 --- a/app/songdb.py +++ b/app/utilities.py @@ -5,10 +5,10 @@ import os import shutil import tempfile -from config import Config -from helpers import show_warning -from log import DEBUG, INFO -from models import Notes, Playdates, PlaylistTracks, Session, Tracks +from app.config import Config +from app.helpers import show_warning +from app.log import DEBUG, INFO +from app.models import Notes, Playdates, Session, Tracks from mutagen.flac import FLAC from mutagen.mp3 import MP3 from pydub import AudioSegment, effects @@ -18,18 +18,13 @@ messages = [] def main(): - "Main loop" + """Main loop""" DEBUG("Starting") - print("needs refactoring") - import sys - sys.exit(1) - # Parse command line p = argparse.ArgumentParser() # Only allow one option to be specified group = p.add_mutually_exclusive_group() - group.add_argument('-u', '--update', action="store_true", dest="update", default=False, help="Update database") @@ -68,9 +63,9 @@ def create_track_from_file(session, path, interactive=False): """ if interactive: - str = f"Importing {path}" - INFO(str) - INFO("-" * len(str)) + msg = f"Importing {path}" + INFO(msg) + INFO("-" * len(msg)) INFO("Get track info...") t = get_music_info(path) title = t['title'] @@ -122,7 +117,7 @@ def create_track_from_file(session, path, interactive=False): fd, temp_path = tempfile.mkstemp() shutil.copyfile(path, temp_path) except Exception as err: - DEBUG(f"songdb.create_track_from_file({path}): err1: {str(err)}") + DEBUG(f"songdb.create_track_from_file({path}): err1: {repr(err)}") return # Overwrite original file with normalised output @@ -145,7 +140,7 @@ def create_track_from_file(session, path, interactive=False): dst[tag] = src[tag] dst.save() except Exception as err: - DEBUG(f"songdb.create_track_from_file({path}): err2: {str(err)}") + DEBUG(f"songdb.create_track_from_file({path}): err2: {repr(err)}") # Restore original file shutil.copyfile(path, temp_path) finally: @@ -156,7 +151,7 @@ def create_track_from_file(session, path, interactive=False): def full_update_db(session): - "Rescan all entries in database" + """Rescan all entries in database""" def log(msg): INFO(f"full_update_db(): {msg}") @@ -279,12 +274,12 @@ def update_db(session): f"File removed: {track.title=}, {track.artist=}, " f"{track.path=}" ) - for pt in [a.playlist.name for a in track.playlists] + for playlist in [a.playlist for a in track.playlists]: # Create note - Notes.add_note(session, pt.playlist_id, pt.row, note_txt) + Notes(session, playlist.id, pt.row, note_txt) # TODO: this needs to call playlist.add_note() now # Remove playlist entry - PlaylistTracks.remove_track(session, pt.playlist_id, pt.row) + playlist.remove_track(session, pt.row) # Remove Track entry pointing to invalid path Tracks.remove_by_path(session, path)