1
0
Fork 0
mirror of https://github.com/fastogt/fastocloud_admin.git synced 2025-03-09 23:38:52 +00:00
fastocloud_admin/app/__init__.py
Alexandr Topilski d50b6634f2
Pymodm (#30)
* Pymodm

* Up

* Review

* More logs

* Connect without check

* Alias

* Review

* Fixes
2020-02-17 17:12:18 +03:00

109 lines
2.8 KiB
Python

import os
from omdb import OMDBClient
from flask import Flask
from flask_pymodm import PyModm
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 = PyModm(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.autofill.view import M3uParseStreamsView, M3uParseVodsView
from app.epg.view import EpgView
HomeView.register(app)
ProviderView.register(app)
StreamView.register(app)
ServiceView.register(app)
SubscriberView.register(app)
M3uParseStreamsView.register(app)
M3uParseVodsView.register(app)
EpgView.register(app)