| import os |
| import subprocess |
| import threading |
| from fastapi import FastAPI |
|
|
| app = FastAPI(docs_url=None, redoc_url=None) |
|
|
| |
| GITHUB_USERNAME = os.getenv("GITHUB_USERNAME", "").strip() |
| GITHUB_TOKEN = os.getenv("GITHUB_TOKEN", "").strip() |
| REPO_NAME = os.getenv("REPO_NAME", "").strip() |
|
|
| |
| USERBOT_API_PORT = 8888 |
|
|
| def clone_repo(): |
| if not os.path.exists("repo"): |
| repo_url = f"https://{GITHUB_USERNAME}:{GITHUB_TOKEN}@github.com/{GITHUB_USERNAME}/{REPO_NAME}.git" |
| subprocess.run(["git", "clone", repo_url, "repo"], check=True) |
|
|
| def install_requirements(): |
| req_file = "repo/requirements.txt" |
| if os.path.exists(req_file): |
| subprocess.run(["pip", "install", "--no-cache-dir", "-r", req_file], check=True) |
|
|
| def start_script(): |
| subprocess.Popen(["bash", "startup"], cwd="repo") |
|
|
| def run_app(): |
| clone_repo() |
| install_requirements() |
| start_script() |
|
|
| @app.on_event("startup") |
| def startup_event(): |
| threading.Thread(target=run_app).start() |