From 9dfc5e50cce5befe2304426b362bd8f91a714cce Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sun, 22 Aug 2021 20:40:13 +0100 Subject: [PATCH] Improve tagging on rescan --- app/musicmuster.py | 7 ++++++- app/songdb.py | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index d74ca48..f697d04 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -153,7 +153,12 @@ class Window(QMainWindow, Ui_MainWindow): if record.f_int != self.y(): record.update(session, {'f_int': self.y()}) - self.visible_playlist_tab().close(session) + # Find a playlist tab (as opposed to an info tab) and + # save column widths + if self.current_track_playlist_tab: + self.current_track_playlist_tab.close(session) + elif self.next_track_playlist_tab: + self.next_track_playlist_tab.close(session) event.accept() diff --git a/app/songdb.py b/app/songdb.py index bbe5843..5261b90 100755 --- a/app/songdb.py +++ b/app/songdb.py @@ -6,6 +6,7 @@ import shutil import tempfile from config import Config +from helpers import show_warning from log import DEBUG, INFO from model import Notes, Playdates, PlaylistTracks, Session, Tracks from mutagen.flac import FLAC @@ -369,15 +370,23 @@ def update_meta(session, track, artist=None, title=None): INFO(f"File type {ftype} not implemented") return + # Update tags f = tag_handler(track.path) - with Session() as session: + try: if artist: f["artist"] = artist - Tracks.update_artist(session, track.id, artist) if title: f["title"] = title + f.save() + except TypeError: + show_warning("TAG error", "Can't update tag. Try editing in Audacity") + + # Update database + with Session() as session: + if artist: + Tracks.update_artist(session, track.id, artist) + if title: Tracks.update_title(session, track.id, title) - f.save() if __name__ == '__main__' and '__file__' in globals():