Log errors importing tracks
This commit is contained in:
parent
4f3fb6c1ae
commit
4a6d6fa208
@ -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"]:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user