api added

This commit is contained in:
2025-03-19 16:49:10 +02:00
parent fe165305fc
commit 8f7639640d
7 changed files with 66 additions and 7 deletions

29
app.py
View File

@@ -1,5 +1,5 @@
import os
from flask import Flask, render_template, request, redirect, url_for, session, flash
from flask import Flask, render_template, request, redirect, url_for, session, flash, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user
from flask_bcrypt import Bcrypt
@@ -532,6 +532,33 @@ def clean_unused_files():
return redirect(url_for('admin'))
@app.route('/api/playlists', methods=['GET'])
def get_playlist():
quickconnect_code = request.args.get('quickconnect_code')
if not quickconnect_code:
return jsonify({'error': 'Quick connect code is required'}), 400
players = Player.query.all()
player = None
for p in players:
if p.verify_quickconnect_code(quickconnect_code):
player = p
break
if not player:
return jsonify({'error': 'Invalid quick connect code'}), 404
if player.groups:
# If the player is part of a group, get the group's content
group = player.groups[0] # Assuming a player can only be in one group
content = Content.query.filter_by(group_id=group.id).all()
else:
# If the player is not part of a group, get the player's content
content = Content.query.filter_by(player_id=player.id).all()
playlist = [{'file_name': item.file_name, 'duration': item.duration} for item in content]
return jsonify({'playlist': playlist})
@app.context_processor
def inject_theme():
if current_user.is_authenticated: