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)