Spaces:
Runtime error
Runtime error
| import os.path | |
| from flask import Flask | |
| from flask_apscheduler import APScheduler | |
| from flask_login import LoginManager | |
| from flask_wtf import CSRFProtect | |
| from utils.data_utils import clean_folder | |
| from utils.phrases_dict import phrases_dict_init | |
| from tts_app.frontend.views import frontend | |
| from tts_app.voice_api.views import voice_api | |
| from tts_app.auth.views import auth | |
| from tts_app.admin.views import admin | |
| from contants import config | |
| app = Flask(__name__, template_folder=os.path.join(os.path.dirname(__file__), 'tts_app', 'templates'), | |
| static_folder=os.path.join(os.path.dirname(__file__), 'tts_app', 'static')) | |
| app.config.from_pyfile("config.py") | |
| # app.config.update(config) | |
| phrases_dict_init() | |
| csrf = CSRFProtect(app) | |
| # 禁用tts api请求的CSRF防护 | |
| csrf.exempt(voice_api) | |
| if config.system.is_admin_enabled: | |
| login_manager = LoginManager() | |
| login_manager.init_app(app) | |
| login_manager.login_view = 'auth.login' | |
| def load_user(user_id): | |
| admin = config.admin | |
| if admin.get_id() == user_id: | |
| return admin | |
| return None | |
| # Initialize scheduler | |
| scheduler = APScheduler() | |
| scheduler.init_app(app) | |
| if config.system.clean_interval_seconds > 0: | |
| scheduler.start() | |
| app.register_blueprint(frontend, url_prefix='/') | |
| app.register_blueprint(voice_api, url_prefix='/voice') | |
| if config.system.is_admin_enabled: | |
| app.register_blueprint(auth, url_prefix=config.system.admin_route) | |
| app.register_blueprint(admin, url_prefix=config.system.admin_route) | |
| def create_folders(paths): | |
| for path in paths: | |
| if not os.path.exists(path): | |
| os.makedirs(path, exist_ok=True) | |
| create_folders([os.path.join(config.abs_path, config.system.upload_folder), | |
| os.path.join(config.abs_path, config.system.cache_path), ]) | |
| # regular cleaning | |
| def clean_task(): | |
| clean_folder(os.path.join(config.abs_path, config.system.upload_folder)) | |
| clean_folder(os.path.join(config.abs_path, config.system.cache_path)) | |
| if __name__ == '__main__': | |
| app.run(host=config.http_service.host, port=config.http_service.port, debug=config.http_service.debug) | |