import subprocess import sys import gradio as gr # Install Flask if not already installed def install_flask(): try: import flask except ImportError: subprocess.run([sys.executable, "-m", "pip", "install", "flask"], check=True) # Install Flask on startup install_flask() # Now import Flask from flask import Flask, send_from_directory # Clone the Mario game repository def install_package(): subprocess.run(["git", "clone", "https://github.com/reruns/mario.git", "mario"], check=True) # Install the game files on startup install_package() # Create a Flask app to serve static files flask_app = Flask(__name__) # Serve static files (JavaScript, CSS, assets, etc.) @flask_app.route("/mario/") def serve_static(path): return send_from_directory("mario", path) # Read the index.html file def serve_game(): with open("mario/index.html", "r") as file: html_content = file.read() return html_content # Create a Gradio interface iface = gr.Interface( fn=serve_game, # Function to generate the HTML content inputs=None, # No inputs needed outputs=gr.HTML(), # Output is HTML content live=True, # Keep the interface live title="Mario HTML Game", description="Play the Mario HTML game embedded in Gradio!" ) # Launch the Gradio app iface.launch(server_name="0.0.0.0", server_port=7860)