84 lines
1.9 KiB
Python
84 lines
1.9 KiB
Python
# IMPORTS
|
|
from flask import Flask, render_template, request
|
|
from os import getenv as env
|
|
import logging
|
|
|
|
try:
|
|
import src.pg_log as pg_log
|
|
except ImportError:
|
|
import pg_log
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
|
|
# LOGGING
|
|
pg_log_handler = pg_log.PgLog(
|
|
host = env("PG_HOST"),
|
|
port = env("PG_PORT"),
|
|
dbname = env("PG_DBNAME"),
|
|
user= env("PG_USER"),
|
|
password = env("PG_PASSWORD")
|
|
)
|
|
pg_log_handler.setLevel(logging.DEBUG)
|
|
|
|
stream_log_handler = logging.StreamHandler()
|
|
stream_log_handler.setFormatter(
|
|
logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
|
|
)
|
|
stream_log_handler.setLevel(logging.INFO)
|
|
|
|
log = logging.getLogger(__name__)
|
|
log.setLevel(logging.DEBUG)
|
|
log.addHandler(stream_log_handler)
|
|
log.addHandler(pg_log_handler)
|
|
|
|
werkzeug_logger = logging.getLogger("werkzeug")
|
|
werkzeug_logger.setLevel(logging.DEBUG)
|
|
werkzeug_logger.addHandler(pg_log_handler)
|
|
werkzeug_logger.addHandler(stream_log_handler)
|
|
|
|
log.info("Logging initialized.")
|
|
|
|
|
|
try:
|
|
import src.dynamic as dynamic
|
|
import src.errors as errors
|
|
import src.music_metadata as music_metadata
|
|
except ImportError:
|
|
import dynamic, errors, music_metadata
|
|
|
|
|
|
# CREATE FLASK APP
|
|
app = Flask(
|
|
__name__,
|
|
template_folder="../templates",
|
|
static_folder="../static"
|
|
)
|
|
log.info("Flask initialized.")
|
|
|
|
|
|
# BLUEPRINTS
|
|
app.register_blueprint(errors.bp, url_prefix="/errors")
|
|
app.register_blueprint(music_metadata.bp, url_prefix="/music")
|
|
app.register_blueprint(dynamic.bp, url_prefix="/")
|
|
log.info("Blueprints registered.")
|
|
|
|
|
|
# ROUTES
|
|
@app.route("/")
|
|
def index():
|
|
return render_template("index.html")
|
|
|
|
@app.route("/toaster")
|
|
def toaster():
|
|
return render_template("toaster.html")
|
|
|
|
@app.route("/terminal")
|
|
def terminal():
|
|
return render_template("terminal.html")
|
|
|
|
|
|
# DEBUG (DONT RUN LIKE THIS IN PROD)
|
|
if __name__ == "__main__":
|
|
log.warning(f"RUNNING IN DEBUG MODE DO NOT USE FOR PRODUCTION!")
|
|
app.run(debug=True) |