TiledViz
Loading...
Searching...
No Matches
__init__.py
1#! python3
2# -*- coding: utf-8 -*-
3
4from gevent import monkey
5monkey.patch_all()
6
7from flask import Flask
8from flask_socketio import SocketIO
9from flask_sqlalchemy import SQLAlchemy
10from flask_bootstrap import Bootstrap5
11from flask_wtf.csrf import CSRFProtect
12
13from gevent.pywsgi import WSGIServer
14
15import os,stat
16
17from config import Config
18#from app import config
19import configparser
20
21
22# Logging configuration # TODO: maybe switch to a config file ?
23import logging, sys
24logFormatter = logging.Formatter("%(asctime)s - %(threadName)s - %(levelname)s: %(message)s ")
25logging.basicConfig(level=logging.WARNING)
26rootLogger = logging.getLogger()
27rootLogger.setLevel(logging.WARNING)
28fileHandler = logging.FileHandler("TiledViz.log")
29# Attention : TiledViz Log file is watching by TVSecure (hôte?) process
30# If you change logging level to DEBUG this super process may not work correctly.
31fileHandler.setLevel(logging.WARNING)
32fileHandler.setFormatter(logFormatter)
33rootLogger.addHandler(fileHandler)
34outHandler = logging.StreamHandler(sys.stdout)
35outHandler.setLevel(logging.WARNING)
36# outHandler.setLevel(logging.DEBUG)
37outHandler.setFormatter(logFormatter)
38rootLogger.addHandler(outHandler)
39
40logging.getLogger('root').setLevel(logging.WARNING)
41logging.getLogger('socketio').setLevel(logging.ERROR)
42logging.getLogger('engineio').setLevel(logging.ERROR)
43# logging.getLogger("urllib3").setLevel(logging.WARNING)
44# logging.getLogger('requests').setLevel(logging.CRITICAL)
45logging.getLogger('werkzeug').setLevel(logging.ERROR)
46
47
48#SQLALCHEMY_DATABASE_URI=os.environ("DATABASE_URL")
49app = Flask(__name__)
50app.config.from_object(Config) # There are given the secret key and other app settings
51
52logging.debug("Flask App config for TiledViz : "+str(app.config))
53
54bootstrap = Bootstrap5(app)
55
56#import ssl
57#ssl.PROTOCOL_SSLv23 = ssl.PROTOCOL_TLSv1
58
59async_mode = "gevent"
60socketio = SocketIO(app,async_mode=async_mode) #,ssl_context=(os.getenv('SSLpublic'),os.getenv('SSLprivate')))
61#socketio = io.connect({transports: ['websocket']});
62#,ping_interval=100000
63#cors_allowed_origins ? List of origins that are allowed to connect to this server. All origins are allowed by default.
64csrf = CSRFProtect(app)
65
66db = SQLAlchemy(app)
67
68# Initialize Flask-Mail
69from app.email_utils import init_mail
70mail = init_mail(app)
71
72logging.warning("Flask-SocketIO server for TiledViz up and running")
73
74from app import routes