mirror of
https://github.com/karl0ss/ai_image_frame_server.git
synced 2025-06-26 18:29:13 +01:00
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
from flask import Blueprint, render_template, request, redirect, url_for, session
|
|
import configparser
|
|
from libs.generic import load_topics_from_config
|
|
|
|
bp = Blueprint('settings_route', __name__)
|
|
CONFIG_PATH = "./user_config.cfg"
|
|
|
|
def save_items(items):
|
|
config = configparser.ConfigParser()
|
|
config.read(CONFIG_PATH)
|
|
|
|
# Make sure the section exists
|
|
if not config.has_section('comfyui'):
|
|
config.add_section('comfyui')
|
|
|
|
# Save updated list to the 'topics' key
|
|
config.set('comfyui', 'topics', ', '.join(items))
|
|
|
|
with open(CONFIG_PATH, 'w') as configfile:
|
|
config.write(configfile)
|
|
|
|
@bp.route('/settings', methods=['GET', 'POST'])
|
|
def config_editor():
|
|
if not session.get("authenticated"):
|
|
return redirect(url_for("auth_routes.login", next=request.path))
|
|
items = load_topics_from_config() # should return list[str]
|
|
|
|
if request.method == 'POST':
|
|
if 'new_topic' in request.form:
|
|
new_item = request.form.get('new_topic', '').strip()
|
|
if new_item and new_item not in items:
|
|
items.append(new_item)
|
|
elif 'delete_topic' in request.form:
|
|
to_delete = request.form.getlist('delete_topic')
|
|
items = [item for item in items if item not in to_delete]
|
|
|
|
save_items(items)
|
|
return redirect(url_for('settings_route.config_editor'))
|
|
|
|
return render_template('settings.html', topics=items)
|