#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2019. Tobias Kurze import logging import ssl import sys from jinja2.exceptions import TemplateNotFound from backend import app, db from backend.cron import get_default_scheduler, add_default_jobs from backend.models import * from backend.models import room_model, recorder_model, RecorderCommand, Recorder from backend.recorder_adapters import get_defined_recorder_adapters from backend.tools.model_updater import update_recorder_models_database, create_default_recorders from backend.websocket.base import WebSocketBase def main(): logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') #db.drop_all() #db.create_all() #Recorder() room_model.pre_fill_table() update_recorder_models_database(drop=False) create_default_recorders() print(app.config.get("SERVER_NAME", None)) server_name = app.config.get("SERVER_NAME", None) if server_name is not None and "ubkaps154.ubka.uni-karlsruhe.de" in server_name: try: context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) context.load_cert_chain('cert.pem', 'key.pem') app.run(debug=True, ssl_context=context, threaded=True) except FileNotFoundError: app.run(debug=True, threaded=True) try: db.create_all() except Exception as e: logging.critical(e) print("Starting Scheduler") scheduler = get_default_scheduler() add_default_jobs(scheduler) scheduler.start() wsb = WebSocketBase() print("running websocket...(replaces normal app.run()") wsb.start_websocket(debug=True) # print("running web app...") #app.run(debug=True, host="0.0.0.0", threaded=True) wsb.send_test_msg() while True: user_in = input("Type >exit< to quit.") if user_in == "exit" or user_in == ">exit<": break scheduler.shutdown() sys.exit(0) if __name__ == '__main__': main()