Log errors importing tracks
This commit is contained in:
parent
4f3fb6c1ae
commit
4a6d6fa208
@ -30,7 +30,10 @@ from sqlalchemy.orm import (
|
|||||||
relationship,
|
relationship,
|
||||||
)
|
)
|
||||||
from sqlalchemy.orm.exc import (
|
from sqlalchemy.orm.exc import (
|
||||||
NoResultFound
|
NoResultFound,
|
||||||
|
)
|
||||||
|
from sqlalchemy.exc import (
|
||||||
|
IntegrityError,
|
||||||
)
|
)
|
||||||
from config import Config
|
from config import Config
|
||||||
from helpers import (
|
from helpers import (
|
||||||
@ -653,8 +656,16 @@ class Tracks(Base):
|
|||||||
self.mtime = mtime
|
self.mtime = mtime
|
||||||
self.lastplayed = lastplayed
|
self.lastplayed = lastplayed
|
||||||
|
|
||||||
|
try:
|
||||||
session.add(self)
|
session.add(self)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
except IntegrityError as error:
|
||||||
|
session.rollback()
|
||||||
|
log.error(
|
||||||
|
f"Error importing track ({title=}, "
|
||||||
|
f"{title=}, {artist=}, {path=}, {error=})"
|
||||||
|
)
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_all(cls, session) -> List["Tracks"]:
|
def get_all(cls, session) -> List["Tracks"]:
|
||||||
|
|||||||
@ -845,7 +845,11 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
with Session() as session:
|
with Session() as session:
|
||||||
for (fname, tags) in tracks:
|
for (fname, tags) in tracks:
|
||||||
|
try:
|
||||||
track = Tracks(session, fname)
|
track = Tracks(session, fname)
|
||||||
|
except ValueError:
|
||||||
|
# Error adding track to database
|
||||||
|
continue
|
||||||
helpers.set_track_metadata(session, track)
|
helpers.set_track_metadata(session, track)
|
||||||
helpers.normalise_track(track.path)
|
helpers.normalise_track(track.path)
|
||||||
self.visible_playlist_tab().insert_track(session, track)
|
self.visible_playlist_tab().insert_track(session, track)
|
||||||
|
|||||||
@ -132,7 +132,7 @@ class PlaylistTab(QTableWidget):
|
|||||||
ROW_DURATION = Qt.UserRole + 2
|
ROW_DURATION = Qt.UserRole + 2
|
||||||
PLAYLISTROW_ID = Qt.UserRole + 3
|
PLAYLISTROW_ID = Qt.UserRole + 3
|
||||||
|
|
||||||
def __init__(self, musicmuster: Window,
|
def __init__(self, musicmuster: "Window",
|
||||||
session: scoped_session,
|
session: scoped_session,
|
||||||
playlist_id: int, *args, **kwargs) -> None:
|
playlist_id: int, *args, **kwargs) -> None:
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user