import os import requests from flask import request, Flask, render_template from dotenv import load_dotenv from flask_cors import CORS from steam import add_steam_game app = Flask(__name__) load_dotenv() CORS(app) POCKETBASE_URL = os.getenv("POCKETBASE_URL", "http://127.0.0.1:8090") GAME_ADD_PASSWORD = os.getenv("GAME_ADD_PASSWORD") def get_games(): resp = requests.get( f"{POCKETBASE_URL}/api/collections/list/records?perPage=50", headers={ }, timeout=10, ) resp.raise_for_status() return resp.json()["items"] @app.route("/") def index(): games = get_games() return render_template("index.html", games=games) @app.route("/api/games") def api_games(): return jsonify(get_games()) @app.route("/add") def add_page(): return render_template("add.html") @app.route("/api/steam/", methods=["POST"]) def add_game(steam_id): provided_password = request.json.get("password") if request.is_json else request.form.get("password") if not GAME_ADD_PASSWORD or not provided_password or provided_password != GAME_ADD_PASSWORD: return jsonify({"error": "Unauthorized"}), 401 game = add_steam_game(steam_id) return {"ok": "200"} if __name__ == "__main__": app.run(debug=True)