fix: update track order in playlist when moving tracks

Fixes #53
This commit is contained in:
Kamil
2024-12-17 17:43:31 +00:00
parent 34ae3c5680
commit 8c9fb43f01

View File

@@ -344,6 +344,13 @@ def check_for_playlist_updates(self):
db.session.commit() db.session.commit()
app.logger.info(f'Added new track: {track.name}') app.logger.info(f'Added new track: {track.name}')
tracks_to_add.append((track, idx)) tracks_to_add.append((track, idx))
# else check if the track is already in the playlist and change the track_order in the playlist_tracks table
else:
app.logger.debug(f"track {track_info.track.name} moved to position {idx}")
track = existing_tracks[track_id]
stmt = playlist_tracks.update().where(playlist_tracks.c.playlist_id == playlist.id).where(playlist_tracks.c.track_id == track.id).values(track_order=idx)
db.session.execute(stmt)
db.session.commit()
tracks_to_remove = [ tracks_to_remove = [
existing_tracks[track_id] existing_tracks[track_id]
@@ -385,6 +392,7 @@ def check_for_playlist_updates(self):
).all() ).all()
tracks = [track.jellyfin_id for track, idx in ordered_tracks if track.jellyfin_id is not None] tracks = [track.jellyfin_id for track, idx in ordered_tracks if track.jellyfin_id is not None]
#jellyfin.remove_songs_from_playlist(session_token=jellyfin_admin_token, playlist_id=playlist.jellyfin_id, song_ids=tracks)
jellyfin.add_songs_to_playlist(session_token=jellyfin_admin_token, user_id=jellyfin_admin_id, playlist_id=playlist.jellyfin_id, song_ids=tracks) jellyfin.add_songs_to_playlist(session_token=jellyfin_admin_token, user_id=jellyfin_admin_id, playlist_id=playlist.jellyfin_id, song_ids=tracks)
#endregion #endregion
except Exception as e: except Exception as e: