Sindbad~EG File Manager
import eventlet
eventlet.monkey_patch()
from flask import Flask, render_template, request, has_request_context
from flask_session import Session
import os, time
import datetime
from datetime import timedelta, date, datetime
import traceback
import logging
from flask_socketio import SocketIO
from flask_cors import CORS # Import the CORS module
app = Flask(__name__)
# Allow CORS for a specific domain (whatsapp.numerotech.com)
CORS(app, resources={r"/*": {"origins": "https://whatsapp.numerotech.com"}})
app.config.from_object('core.config.SECRET_KEY')
app.config.from_object('core.config.ProductionConfig')
# Initialize SocketIO with CORS configuration
socketio = SocketIO(app, async_mode='eventlet', cors_allowed_origins="https://whatsapp.numerotech.com")
Session(app)
os.environ['TZ'] = 'Asia/Calcutta'
time.tzset()
path_wkhtmltopdf = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe"
is_windows_os = 0
config = app.config
from core.library.auth import Auth
from core.library.route_group import RouteGroup
from core.library.cryptography import Cryptography
from core.library.helper import Helper
from core.library.custom import Custom
import core.library.jinjaCustom
current_app = app
from core.controller.WhatsappController import app as whatsapp
app.register_blueprint(whatsapp, url_prefix='')
from core.controller.TestController import app as test
app.register_blueprint(test, url_prefix='')
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
class SQLAlchemyHandler(logging.Handler):
def emit(self, record):
trace = None
exc = record.__dict__['exc_info']
if exc:
trace = traceback.format_exc()
# Ensure request is accessed only when inside a request context
if has_request_context():
path = request.path
method = request.method
ip = request.remote_addr
host = request.host
else:
path = None
method = None
ip = None
host = None
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,
'user_id': None,
'app_type': Helper.AppType,
'host_url': host
}
if record.__dict__['name'] != 'sqlalchemy.pool.impl.QueuePool':
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)
@app.errorhandler(404)
def page_not_found(e):
return render_template('users/404.html'), 404
@app.errorhandler(500)
def internal_server_error(e):
return render_template('users/500.html'), 500
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists