Source code for flexget.ui.v2

import os

from flask import Flask, render_template, send_from_directory
from flask_compress import Compress
from loguru import logger

from flexget.webserver import register_app

logger = logger.bind(name='webui')

config = None
exists = True

ui_base = os.path.dirname(os.path.realpath(__file__))
ui_dist = os.path.join(ui_base, 'dist')
ui_assets = os.path.join(ui_dist, 'assets')

webui_app = Flask(__name__, template_folder=ui_dist)
Compress(webui_app)
webui_app.url_path = '/'


[docs] @webui_app.route('/assets/<path:path>') def serve_app(path): return send_from_directory(ui_assets, path)
[docs] @webui_app.route('/') @webui_app.route('/<path:path>') def root(path='index.html'): if not exists: return send_from_directory(ui_base, 'index.html') return render_template('index.html', base_url=config['base_url'])
[docs] def register_web_ui(cfg): global config, exists config = cfg if not os.path.exists(ui_dist): exists = False logger.critical( 'Failed to start web ui,' ' this can happen if you are running from GitHub version and forgot to run the web ui build, ' 'see https://flexget.com/Web-UI for instructions' ) register_app(webui_app.url_path, webui_app, 'WebUI (v2)')