57 lines
1.4 KiB
Python
57 lines
1.4 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)
|