mirror of
https://github.com/fastogt/fastocloud_admin.git
synced 2025-03-09 23:38:52 +00:00
106 lines
2.7 KiB
Python
106 lines
2.7 KiB
Python
import os
|
|
|
|
from omdb import OMDBClient
|
|
|
|
from flask import Flask
|
|
from flask_mongoengine import MongoEngine
|
|
from flask_login import LoginManager
|
|
from flask_mail import Mail
|
|
from flask_bootstrap import Bootstrap
|
|
from flask_socketio import SocketIO
|
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
|
|
|
from app.service.service_manager import ServiceManager
|
|
|
|
|
|
def get_app_folder():
|
|
return os.path.dirname(__file__)
|
|
|
|
|
|
def get_runtime_folder():
|
|
return os.path.join(get_app_folder(), 'runtime_folder')
|
|
|
|
|
|
def get_runtime_stream_folder():
|
|
return os.path.join(get_runtime_folder(), 'stream')
|
|
|
|
|
|
def get_epg_tmp_folder():
|
|
return os.path.join(get_runtime_folder(), 'epg')
|
|
|
|
|
|
def init_project(static_folder, *args):
|
|
runtime_folder = get_runtime_folder()
|
|
if not os.path.exists(runtime_folder):
|
|
os.mkdir(runtime_folder)
|
|
|
|
runtime_stream_folder = get_runtime_stream_folder()
|
|
if not os.path.exists(runtime_stream_folder):
|
|
os.mkdir(runtime_stream_folder)
|
|
|
|
epg_tmp_folder = get_epg_tmp_folder()
|
|
if not os.path.exists(epg_tmp_folder):
|
|
os.mkdir(epg_tmp_folder)
|
|
|
|
app = Flask(__name__, static_folder=static_folder)
|
|
for file in args:
|
|
app.config.from_pyfile(file, silent=False)
|
|
|
|
app.wsgi_app = ProxyFix(app.wsgi_app)
|
|
bootstrap = Bootstrap(app)
|
|
db = MongoEngine(app)
|
|
mail = Mail(app)
|
|
socketio = SocketIO(app)
|
|
login_manager = LoginManager(app)
|
|
|
|
login_manager.login_view = 'HomeView:signin'
|
|
|
|
# socketio
|
|
@socketio.on('connect')
|
|
def connect():
|
|
pass
|
|
|
|
@socketio.on('disconnect')
|
|
def disconnect():
|
|
pass
|
|
|
|
# defaults flask
|
|
_host = '0.0.0.0'
|
|
_port = 8080
|
|
server_name = app.config.get('SERVER_NAME_FOR_POST')
|
|
sn_host, sn_port = None, None
|
|
|
|
if server_name:
|
|
sn_host, _, sn_port = server_name.partition(':')
|
|
|
|
host = sn_host or _host
|
|
port = int(sn_port or _port)
|
|
servers_manager = ServiceManager(host, port, socketio)
|
|
|
|
omdb_api_key = app.config.get('OMDB_KEY')
|
|
omdb = OMDBClient(apikey=omdb_api_key)
|
|
|
|
return app, bootstrap, db, mail, login_manager, servers_manager, omdb
|
|
|
|
|
|
app, bootstrap, db, mail, login_manager, servers_manager, omdb = init_project(
|
|
'static',
|
|
'config/public_config.py',
|
|
'config/config.py',
|
|
'config/db_config.py',
|
|
'config/mail_config.py'
|
|
)
|
|
|
|
from app.home.view import HomeView
|
|
from app.provider.view import ProviderView
|
|
from app.stream.view import StreamView
|
|
from app.service.view import ServiceView
|
|
from app.subscriber.view import SubscriberView
|
|
from app.epg.view import EpgView
|
|
|
|
HomeView.register(app)
|
|
ProviderView.register(app)
|
|
StreamView.register(app)
|
|
ServiceView.register(app)
|
|
SubscriberView.register(app)
|
|
EpgView.register(app)
|