Sindbad~EG File Manager

Current Path : /home/numerotech/membership.numerotech.com/CommonMembershipApp/core/
Upload File :
Current File : //home/numerotech/membership.numerotech.com/CommonMembershipApp/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)

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