MCPanel/app/routes.py
2025-04-13 16:29:26 +02:00

62 lines
1.5 KiB
Python

import os
import random
from flask import Blueprint, render_template, jsonify
from .auth import oidc
from .port_utils import get_user_ports
from dotenv import load_dotenv
main = Blueprint('main', __name__, static_folder='static')
load_dotenv()
@main.route("/")
@oidc.require_login
def home():
username = oidc.user_getfield("preferred_username")
server_path = f"./servers/mc-{username}"
has_server = os.path.exists(server_path)
return render_template("home.html", has_server=has_server)
@main.route('/setup')
@oidc.require_login
def setup():
return render_template('setup.html')
@main.route('/dashboard')
@oidc.require_login
def dashboard():
username = oidc.user_getfield('preferred_username')
server_path = f"./servers/mc-{username}"
has_server = os.path.exists(server_path)
ip = os.getenv("SERVER_IP")
ports = get_user_ports(username)
if has_server:
return render_template('dashboard.html', username=username, ip=ip, ports=ports)
else:
return render_template('setup.html', username=username, ip=ip, ports=ports)
@main.route('/donate')
def donate():
return render_template('donate.html')
@main.route("/ads/list")
def list_ads():
ads_dir = os.path.join(main.static_folder, "ads")
files = [
f"/static/ads/{f}"
for f in os.listdir(ads_dir)
if f.lower().endswith(".png")
]
return jsonify(files)
@main.app_errorhandler(404)
def page_not_found(e):
return render_template("404.html"), 404