WIP: Make ds.track_update more generic

This commit is contained in:
Keith Edmunds 2025-04-13 16:34:37 +01:00
parent 83780bfb68
commit ffb1b238f4
4 changed files with 10 additions and 15 deletions

View File

@ -451,7 +451,7 @@ def track_set_intro(track_id: int, intro: int) -> None:
# @log_call
def track_update(
path: str, track_id: int, metadata: dict[str, str | int | float]
track_id: int, metadata: dict[str, str | int | float]
) -> TrackDTO:
"""
Update an existing track db entry return the DTO
@ -462,14 +462,12 @@ def track_update(
if not track:
raise ApplicationError(f"Can't retrieve Track ({track_id=})")
track.path = str(metadata["path"])
track.title = str(metadata["title"])
track.artist = str(metadata["artist"])
track.duration = int(metadata["duration"])
track.start_gap = int(metadata["start_gap"])
track.fade_at = int(metadata["fade_at"])
track.silence_at = int(metadata["silence_at"])
track.bitrate = int(metadata["bitrate"])
for key, value in metadata.items():
if hasattr(track, key):
setattr(track, key, value)
else:
raise ApplicationError(f"Tried to set attribute {key} on {track}")
session.commit()

View File

@ -640,9 +640,7 @@ class DoTrackImport(QThread):
if self.track_id == 0:
track_dto = ds.track_create(metadata)
else:
track_dto = ds.track_update(
self.destination_track_path, self.track_id, metadata
)
track_dto = ds.track_update(self.track_id, metadata)
self.signals.status_message_signal.emit(
f"{os.path.basename(self.import_file_path)} imported", 10000

View File

@ -1038,7 +1038,7 @@ class PlaylistModel(QAbstractTableModel):
track = self.playlist_rows[row_number]
metadata = get_all_track_metadata(track.path)
_ = ds.track_update(track.path, track.track_id, metadata)
_ = ds.track_update(track.track_id, metadata)
roles = [
Qt.ItemDataRole.BackgroundRole,

View File

@ -91,7 +91,6 @@ def update_bitrates() -> None:
for track in ds.tracks_all():
try:
t = get_tags(track.path)
# TODO this won't persist as we're updating DTO
track.bitrate = t.bitrate
ds.track_update(t)
except FileNotFoundError:
continue