updated player sync
This commit is contained in:
38
app/app.py
38
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/<int:player_id>/upload', methods=['POST'])
|
||||
@login_required
|
||||
|
||||
Reference in New Issue
Block a user