diff --git a/app/musicmuster.py b/app/musicmuster.py index 84b2ccc..8db99a2 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -1075,11 +1075,15 @@ class Window(QMainWindow, Ui_MainWindow): self.btnPreview.setChecked(False) return - with db.Session() as session: - self.preview_track_manager = PreviewTrackManager( - session=session, track_id=track_id, row_number=row_number - ) - self.preview_track_manager.play() + try: + with db.Session() as session: + self.preview_track_manager = PreviewTrackManager( + session=session, track_id=track_id, row_number=row_number + ) + self.preview_track_manager.play() + except ValueError as e: + log.error(f"Error creating PreviewTrackManager({str(e)})") + return else: if self.preview_track_manager: diff --git a/app/playlistmodel.py b/app/playlistmodel.py index dfd8bda..19b5d40 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -1270,7 +1270,7 @@ class PlaylistModel(QAbstractTableModel): track_sequence.next = MainTrackManager(session, prd.plrid) self.invalidate_row(row_number) except ValueError as e: - log.error(f"Error creating PlaylistTrack({prd=}): ({str(e)})") + log.error(f"Error creating MainTrackManager({prd=}): ({str(e)})") return self.signals.search_wikipedia_signal.emit( diff --git a/app/trackmanager.py b/app/trackmanager.py index ae82881..dc88674 100644 --- a/app/trackmanager.py +++ b/app/trackmanager.py @@ -381,6 +381,10 @@ class _TrackManager: self.row_number = row_number self.preview_player = preview_player + # Check file readable + if file_is_unreadable(track.path): + raise ValueError(f"_TrackManager.__init__: {track.path=} unreadable") + self.artist = track.artist self.bitrate = track.bitrate self.duration = track.duration