From e39518e5ee99a139d4893a4a3c8f536ed108ca7f Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Fri, 4 Apr 2025 18:52:31 +0100 Subject: [PATCH] WIP: remove sessions from file_importer --- app/file_importer.py | 45 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/app/file_importer.py b/app/file_importer.py index 388769b..7fa1afe 100644 --- a/app/file_importer.py +++ b/app/file_importer.py @@ -629,42 +629,19 @@ class DoTrackImport(QThread): # Move new file to destination shutil.move(self.import_file_path, self.destination_track_path) - with db.Session() as session: - if self.track_id == 0: - # Import new track - try: - track = Tracks( - session, - path=self.destination_track_path, - **self.tags._asdict(), - **self.audio_metadata._asdict(), - ) - except Exception as e: - self.signals.show_warning_signal.emit( - "Error importing track", str(e) - ) - return - else: - track = session.get(Tracks, self.track_id) - if track: - for key, value in self.tags._asdict().items(): - if hasattr(track, key): - setattr(track, key, value) - for key, value in self.audio_metadata._asdict().items(): - if hasattr(track, key): - setattr(track, key, value) - track.path = self.destination_track_path - else: - log.error(f"Unable to retrieve {self.track_id=}") - return - session.commit() + # Normalise + normalise_track(self.destination_track_path) - normalise_track(self.destination_track_path) + # Update databse + if self.track_id == 0: + track_dto = repository.create_track(self.destination_track_path) + else: + track_dto = repository.update_track(self.destination_track_path, self.track_id) - self.signals.status_message_signal.emit( - f"{os.path.basename(self.import_file_path)} imported", 10000 - ) - self.import_finished.emit(self.import_file_path, track.id) + self.signals.status_message_signal.emit( + f"{os.path.basename(self.import_file_path)} imported", 10000 + ) + self.import_finished.emit(self.import_file_path, track_dto.track_id) class PickMatch(QDialog):