added standard-theme function
This commit is contained in:
+18
-3
@@ -6,7 +6,7 @@ from datetime import datetime
|
||||
|
||||
from flask import Blueprint, render_template, request, jsonify, redirect, url_for, current_app
|
||||
from app.state import current_config
|
||||
from app.utils.helpers import load_configs, load_default_sounds, load_soundboard_configs
|
||||
from app.utils.helpers import load_configs, load_default_sounds, load_soundboard_configs, write_default_theme
|
||||
|
||||
admin_bp = Blueprint('admin', __name__)
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -210,8 +210,23 @@ def admin_create_theme():
|
||||
}
|
||||
with open(path, 'w', encoding='utf-8') as f:
|
||||
json.dump(template, f, ensure_ascii=False, indent=2)
|
||||
logger.info(f"Neues Theme angelegt: {os.path.relpath(path, base_dir)}")
|
||||
return jsonify({"success": True, "path": os.path.relpath(path, base_dir)})
|
||||
logger.info(f"Neues Theme angelegt: {os.path.relpath(path, base_dir)}")
|
||||
return jsonify({"success": True, "path": os.path.relpath(path, base_dir)})
|
||||
|
||||
|
||||
@admin_bp.route('/set_default_theme', methods=['POST'])
|
||||
def admin_set_default_theme():
|
||||
data = request.get_json(force=True, silent=True) or {}
|
||||
filename = data.get('filename')
|
||||
if not filename:
|
||||
return jsonify({"success": False, "message": "filename fehlt"}), 400
|
||||
try:
|
||||
write_default_theme(current_app.config['DEFAULT_THEME_FILE'], filename)
|
||||
logger.info(f"Default-Theme gesetzt: {filename}")
|
||||
return jsonify({"success": True, "filename": filename})
|
||||
except Exception as e:
|
||||
logger.exception("Default-Theme setzen fehlgeschlagen")
|
||||
return jsonify({"success": False, "message": str(e)}), 500
|
||||
except Exception as e:
|
||||
logger.exception("create_theme fehlgeschlagen")
|
||||
return jsonify({"success": False, "message": str(e)}), 500
|
||||
|
||||
+21
-1
@@ -11,7 +11,7 @@ from flask import Blueprint, jsonify, request, current_app
|
||||
|
||||
import app.state as state
|
||||
from app.bluetooth.manager import MouldKing, advertiser, tracer
|
||||
from app.utils.helpers import load_default_sounds, load_soundboard_configs, load_soundboard_config
|
||||
from app.utils.helpers import load_default_sounds, load_soundboard_configs, load_soundboard_config, read_default_theme
|
||||
from config import Config
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -451,6 +451,26 @@ def api_soundboard_load():
|
||||
return jsonify({"success": False, "message": str(e)}), 500
|
||||
|
||||
|
||||
@api_bp.route('/soundboard/load_default', methods=['POST'])
|
||||
def api_soundboard_load_default():
|
||||
# Lädt das Standard-Theme, falls gesetzt und noch kein Soundboard aktiv ist
|
||||
try:
|
||||
if state.current_soundboard:
|
||||
return jsonify({"success": True, "soundboard": state.current_soundboard, "already_loaded": True})
|
||||
default_file = read_default_theme(Config.DEFAULT_THEME_FILE)
|
||||
if not default_file:
|
||||
return jsonify({"success": False, "message": "Kein Standard-Theme gesetzt"}), 404
|
||||
sb = load_soundboard_config(default_file,
|
||||
current_app.config['SOUNDBOARD_CONFIG_DIR'],
|
||||
current_app.config['SOUNDS_DIR'])
|
||||
state.current_soundboard = sb
|
||||
logger.info(f"Standard-Soundboard geladen: {default_file}")
|
||||
return jsonify({"success": True, "soundboard": sb, "default_loaded": True})
|
||||
except Exception as e:
|
||||
logger.exception("Standard-Soundboard laden fehlgeschlagen")
|
||||
return jsonify({"success": False, "message": str(e)}), 500
|
||||
|
||||
|
||||
@api_bp.route('/soundboard/play_random', methods=['POST'])
|
||||
def api_soundboard_play_random():
|
||||
if state.current_soundboard is None:
|
||||
|
||||
Reference in New Issue
Block a user