Spaces:
Sleeping
Sleeping
File size: 2,652 Bytes
8cd0496 5f61e76 8cd0496 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
import os
import json
import time
import threading
from fastapi import FastAPI, HTTPException, BackgroundTasks
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
import uvicorn
from typing import Dict
from pathlib import Path
from datetime import datetime
from fastapi.responses import FileResponse
# Import from cursor_tracker
from test_ai_integration_http import (
test_ai_integration_http
)
# FastAPI App Definition
app = FastAPI()
# Add CORS middleware to allow cross-origin requests
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allows all origins
allow_credentials=True,
allow_methods=["*"], # Allows all methods
allow_headers=["*"],
)
# Global variable to track if processing is running
processing_thread = None
def log_message(message):
"""Add a log message with timestamp"""
timestamp = datetime.now().strftime("%H:%M:%S")
log_entry = f"[{timestamp}] {message}"
processing_status["logs"].append(log_entry)
# Keep only the last 100 logs
if len(processing_status["logs"]) > 100:
processing_status["logs"] = processing_status["logs"][-100:]
print(log_entry)
@app.on_event("startup")
async def startup_event():
global processing_thread
if not (processing_thread and processing_thread.is_alive()):
processing_thread = threading.Thread(target=test_ai_integration_http)
processing_thread.daemon = True
processing_thread.start()
from fastapi.staticfiles import StaticFiles
# app.mount("/static", StaticFiles(directory="static"), name="static")
# Serve your main HTML file
@app.get("/")
async def root():
return ()
from fastapi.encoders import jsonable_encoder
def get_disk_usage(path: str) -> Dict[str, float]:
"""Get disk usage statistics in GB"""
statvfs = os.statvfs(path)
total = statvfs.f_frsize * statvfs.f_blocks / (1024**3)
free = statvfs.f_frsize * statvfs.f_bavail / (1024**3)
used = total - free
return {"total": total, "free": free, "used": used}
class SafeJSONEncoder(json.JSONEncoder):
def default(self, obj):
try:
if isinstance(obj, float):
if obj != obj: # Check for NaN
return None
if obj == float('inf') or obj == float('-inf'):
return None
return super().default(obj)
except:
return None
if __name__ == "__main__":
get_disk_usage()
uvicorn.run(
app,
host="0.0.0.0",
port=8000,
log_level="info",
reload=False # Set to False for production
)
|