ai-frame-image-server/routes/settings_routes.py

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)