- Added unlock_key endpoint

- Added skip_endpoints so the alert part isnt rendered on task_status query
This commit is contained in:
Kamil
2024-11-26 15:14:06 +00:00
parent 7e24016788
commit af662df434

View File

@@ -1,5 +1,5 @@
from flask import Flask, Response, jsonify, render_template, request, redirect, url_for, session, flash from flask import Flask, Response, jsonify, render_template, request, redirect, url_for, session, flash
from app import app, db, functions, sp, jellyfin, celery, jellyfin_admin_token, jellyfin_admin_id,device_id, cache, read_dev_build_file from app import app, db, functions, sp, jellyfin, celery, jellyfin_admin_token, jellyfin_admin_id,device_id, cache, read_dev_build_file, tasks
from app.models import JellyfinUser,Playlist,Track from app.models import JellyfinUser,Playlist,Track
from celery.result import AsyncResult from celery.result import AsyncResult
from .version import __version__ from .version import __version__
@@ -10,12 +10,16 @@ def add_context():
version = f"v{__version__}{read_dev_build_file()}" version = f"v{__version__}{read_dev_build_file()}"
return dict(unlinked_track_count = unlinked_track_count, version = version) return dict(unlinked_track_count = unlinked_track_count, version = version)
# this feels wrong
skip_endpoints = ['task_status']
@app.after_request @app.after_request
def render_messages(response: Response) -> Response: def render_messages(response: Response) -> Response:
if request.headers.get("HX-Request"): if request.headers.get("HX-Request"):
messages = render_template("partials/alerts.jinja2") if request.endpoint not in skip_endpoints:
response.headers['HX-Trigger'] = 'showToastMessages' messages = render_template("partials/alerts.jinja2")
response.data = response.data + messages.encode("utf-8") response.headers['HX-Trigger'] = 'showToastMessages'
response.data = response.data + messages.encode("utf-8")
return response return response
@@ -31,7 +35,7 @@ def task_manager():
else: else:
statuses[task_name] = {'state': 'NOT STARTED', 'info': {}} statuses[task_name] = {'state': 'NOT STARTED', 'info': {}}
return render_template('admin/tasks.html', tasks=statuses) return render_template('admin/tasks.html', tasks=statuses,lock_keys = functions.LOCK_KEYS)
@app.route('/admin') @app.route('/admin')
@app.route('/admin/link_issues') @app.route('/admin/link_issues')
@@ -262,6 +266,17 @@ def associate_track():
return '' return ''
@app.route("/unlock_key",methods = ['POST'])
@functions.jellyfin_admin_required
def unlock_key():
key_name = request.form.get('inputLockKey')
if key_name:
tasks.release_lock(key_name)
flash(f'Lock {key_name} released', category='success')
return ''
@app.route('/test') @app.route('/test')
def test(): def test():
return '' return ''