Sindbad~EG File Manager
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)
path_wkhtmltopdf = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe"
is_windows_os = 0
os.environ['TZ'] ='Asia/Calcutta'
time.tzset()
engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,pool_recycle=3600,pool_pre_ping=True)
# 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
# )
config = app.config
# @app.before_request
# def before_request_callback():
# # return "before call"
# x = request.host.split(".")
# if len(x) > 1:
# config["SESSION_COOKIE_DOMAIN"] = str("."+x[1]+"."+x[2])
from core.library.cryptography import Cryptography
from core.library.auth import Auth
from core.library.route_group import RouteGroup
from core.library.helper import Helper
from core.library.appMessage import AppMessage
current_app = app
from core.model.Log import Log
from core.controller.MemberAppController import app as member
from core.controller.BOController import app as backoffice
from core.controller.ReminderMailController import app as reminder
from core.controller.APIController import app as api
from core.controller.ProSecReminderMailController import app as prosecreminder
from core.controller.UserMailController import app as usermail
from core.controller.CommitteeController import app as committee
app.register_blueprint(member, url_prefix='')
app.register_blueprint(backoffice, url_prefix='/bo')
app.register_blueprint(reminder,url_prefix='')
app.register_blueprint(api,url_prefix='')
app.register_blueprint(prosecreminder, url_prefix='')
app.register_blueprint(usermail, url_prefix='')
app.register_blueprint(committee, url_prefix='')
@app.errorhandler(404)
def page_not_found(e):
return render_template('memberapp_users/404.html'), 404
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
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' : Helper.AppType,
'host_url' : request.host
}
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