Log errors importing tracks

This commit is contained in:
Keith Edmunds 2023-02-05 22:48:32 +00:00
parent 4f3fb6c1ae
commit 4a6d6fa208
3 changed files with 20 additions and 5 deletions

View File

@ -30,7 +30,10 @@ from sqlalchemy.orm import (
relationship,
)
from sqlalchemy.orm.exc import (
NoResultFound
NoResultFound,
)
from sqlalchemy.exc import (
IntegrityError,
)
from config import Config
from helpers import (
@ -653,8 +656,16 @@ class Tracks(Base):
self.mtime = mtime
self.lastplayed = lastplayed
session.add(self)
session.commit()
try:
session.add(self)
session.commit()
except IntegrityError as error:
session.rollback()
log.error(
f"Error importing track ({title=}, "
f"{title=}, {artist=}, {path=}, {error=})"
)
raise ValueError
@classmethod
def get_all(cls, session) -> List["Tracks"]:

View File

@ -845,7 +845,11 @@ class Window(QMainWindow, Ui_MainWindow):
with Session() as session:
for (fname, tags) in tracks:
track = Tracks(session, fname)
try:
track = Tracks(session, fname)
except ValueError:
# Error adding track to database
continue
helpers.set_track_metadata(session, track)
helpers.normalise_track(track.path)
self.visible_playlist_tab().insert_track(session, track)

View File

@ -132,7 +132,7 @@ class PlaylistTab(QTableWidget):
ROW_DURATION = Qt.UserRole + 2
PLAYLISTROW_ID = Qt.UserRole + 3
def __init__(self, musicmuster: Window,
def __init__(self, musicmuster: "Window",
session: scoped_session,
playlist_id: int, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)