Sindbad~EG File Manager

Current Path : /home/numerotech/mcq.numerotech.com/MCQ_APP/core/
Upload File :
Current File : //home/numerotech/mcq.numerotech.com/MCQ_APP/core/__init__.py

from flask import Flask,render_template,request
from flask_session import Session
from sqlalchemy import create_engine
import os,time
import datetime
from datetime import timedelta,date,datetime
import traceback
import logging

app = Flask(__name__)


app.config.from_object('core.config.SECRET_KEY')
app.config.from_object('core.config.ProductionConfig')

Session(app)

os.environ['TZ'] ='Asia/Calcutta'
time.tzset()


path_wkhtmltopdf = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe"
is_windows_os    = 0


# engine = create_engine(app.config['DATABASE_URI'], pool_size=5000,pool_pre_ping=True,pool_recycle=3600)
engine = create_engine(app.config['DATABASE_URI'],
                    pool_size=10,        # Maximum number of connections in the pool
                    max_overflow=5,      # Maximum number of additional connections to be created if pool is exhausted
                    pool_timeout=30,     # Seconds to wait before giving up when trying to connect to the pool
                    pool_recycle=3600,   # Time in seconds after which a connection will be recycled
                )
user_engine = create_engine(app.config['USER_DATABASE_URI'], pool_size=5000,pool_pre_ping=True,pool_recycle=3600)

config = app.config
from core.library.cryptography import Cryptography
from core.library.auth import Auth
from core.library.route_group import RouteGroup
from core.model.Log import Log

current_app = app

from core.controller.UserController import app as user
app.register_blueprint(user, url_prefix='')

from core.controller.BoController import app as bo
app.register_blueprint(bo, url_prefix='/bo')

class SQLAlchemyHandler(logging.Handler):

	def emit(self, record):
		trace = None
		exc = record.__dict__['exc_info']
		if exc:
			trace = traceback.format_exc()

		path = request.path
		method = request.method
		ip = request.remote_addr
		user_agent = request.headers.get('User-Agent') 

		data = {
		'url':path,
		'logger_name':record.__dict__['name'],
		'level':record.__dict__['levelname'],
		'context':trace,
		'message':record.__dict__['msg'],
		'created_at':datetime.now(),
		'ip_address':ip,
		'app_type'      : 'Abstract',
		'host_url'      : request.host,
		'user_agent'    : user_agent
			}    
		Log().insert(data)    
		

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

ch = SQLAlchemyHandler()
ch.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)


loggers = [logger, logging.getLogger('sqlalchemy'), logging.getLogger('flask.app')]

for l in loggers:
	l.addHandler(ch)

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists