updated player sync

This commit is contained in:
DigiServer Developer
2025-09-09 17:05:33 +03:00
parent 9cb32da13c
commit 52344a27a6
2 changed files with 55 additions and 1 deletions

View File

@@ -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/<int:player_id>/upload', methods=['POST'])
@login_required

View File

@@ -94,6 +94,19 @@
<div class="mb-3">
<strong>Latest Message:</strong> {{ player_feedback[0].message }}
</div>
<div class="mb-3">
<strong>Server Playlist Version:</strong>
<span class="badge bg-info">v{{ server_playlist_version }}</span>
{% if player_feedback[0].playlist_version %}
{% if player_feedback[0].playlist_version|int == server_playlist_version %}
<small class="text-success ms-2">✓ Player in sync</small>
{% else %}
<small class="text-warning ms-2">⚠ Player v{{ player_feedback[0].playlist_version }} (out of sync)</small>
{% endif %}
{% else %}
<small class="text-muted ms-2">Player version unknown</small>
{% endif %}
</div>
<!-- Recent Activity Log -->
<details>
@@ -118,6 +131,11 @@
</div>
</details>
{% else %}
<div class="mb-3">
<strong>Server Playlist Version:</strong>
<span class="badge bg-info">v{{ server_playlist_version }}</span>
<small class="text-muted ms-2">Player version unknown</small>
</div>
<div class="text-center text-muted">
<p>No status information available</p>
<small>Player hasn't sent any feedback yet</small>