From 52344a27a6b4fa2fc56d32a6c7f91654e74879c6 Mon Sep 17 00:00:00 2001 From: DigiServer Developer Date: Tue, 9 Sep 2025 17:05:33 +0300 Subject: [PATCH] updated player sync --- app/app.py | 38 +++++++++++++++++++++++++++++++++- app/templates/player_page.html | 18 ++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/app/app.py b/app/app.py index 47dd839..00f8189 100755 --- a/app/app.py +++ b/app/app.py @@ -375,7 +375,43 @@ def player_page(player_id): player_name=player.username ).order_by(PlayerFeedback.timestamp.desc()).limit(5).all() - return render_template('player_page.html', player=player, content=content, player_feedback=player_feedback) + # Get server playlist version for this player + server_playlist_version = get_server_playlist_version(player) + + return render_template('player_page.html', + player=player, + content=content, + player_feedback=player_feedback, + server_playlist_version=server_playlist_version) + +def get_server_playlist_version(player): + """Get the current server playlist version for a specific player""" + # Check if player is locked to a group + if player.locked_to_group_id: + # Get content for all players in the group to ensure shared content + group_players = player.locked_to_group.players + player_ids = [p.id for p in group_players] + + # Use the first occurrence of each file for the playlist + content_query = ( + db.session.query( + Content.file_name, + db.func.min(Content.id).label('id'), + db.func.min(Content.duration).label('duration') + ) + .filter(Content.player_id.in_(player_ids)) + .group_by(Content.file_name) + ) + + content = db.session.query(Content).filter( + Content.id.in_([c.id for c in content_query]) + ).all() + else: + # Get player's individual content + content = Content.query.filter_by(player_id=player.id).all() + + # Return the current playlist version for this player + return player.playlist_version @app.route('/player//upload', methods=['POST']) @login_required diff --git a/app/templates/player_page.html b/app/templates/player_page.html index 8ba73bb..4fd259e 100644 --- a/app/templates/player_page.html +++ b/app/templates/player_page.html @@ -94,6 +94,19 @@
Latest Message: {{ player_feedback[0].message }}
+
+ Server Playlist Version: + v{{ server_playlist_version }} + {% if player_feedback[0].playlist_version %} + {% if player_feedback[0].playlist_version|int == server_playlist_version %} + ✓ Player in sync + {% else %} + ⚠ Player v{{ player_feedback[0].playlist_version }} (out of sync) + {% endif %} + {% else %} + Player version unknown + {% endif %} +
@@ -118,6 +131,11 @@
{% else %} +
+ Server Playlist Version: + v{{ server_playlist_version }} + Player version unknown +

No status information available

Player hasn't sent any feedback yet