Release v1.3

This commit is contained in:
2026-01-25 15:57:38 +01:00
parent 47aca9d64d
commit 56760e380d
10 changed files with 370 additions and 5 deletions

View File

@@ -6,7 +6,8 @@ import time
from flask import Blueprint, Response, abort, jsonify, request, stream_with_context, url_for
from ..extensions import db
from ..models import Display, DisplayPlaylist, DisplaySession, Playlist, PlaylistItem
from ..models import Company, Display, DisplayPlaylist, DisplaySession, Playlist, PlaylistItem
from ..uploads import is_valid_upload_relpath
bp = Blueprint("api", __name__, url_prefix="/api")
@@ -173,6 +174,13 @@ def display_playlist(token: str):
if not display:
abort(404)
# Optional overlay URL (per-company) when enabled on this display.
overlay_src = None
if display.show_overlay:
company = Company.query.filter_by(id=display.company_id).first()
if company and company.overlay_file_path and is_valid_upload_relpath(company.overlay_file_path):
overlay_src = url_for("static", filename=company.overlay_file_path)
# Enforce: a display URL/token can be opened by max 3 concurrently active sessions.
# Player sends a stable `sid` via querystring.
sid = request.args.get("sid")
@@ -200,6 +208,7 @@ def display_playlist(token: str):
{
"display": display.name,
"transition": display.transition or "none",
"overlay_src": overlay_src,
"playlists": [],
"items": [],
}
@@ -263,6 +272,7 @@ def display_playlist(token: str):
{
"display": display.name,
"transition": display.transition or "none",
"overlay_src": overlay_src,
"playlists": [{"id": p.id, "name": p.name} for p in ordered_playlists],
"items": items,
}