mirror of
https://gitlab.com/2-chainz/2chainz.git
synced 2025-06-16 01:46:39 +00:00
42 lines
941 B
Python
42 lines
941 B
Python
import time
|
|
from datetime import datetime
|
|
from fastapi import FastAPI
|
|
from fastapi.staticfiles import StaticFiles
|
|
import tomllib
|
|
from pathlib import Path
|
|
import random
|
|
|
|
app = FastAPI()
|
|
start_time = time.time()
|
|
|
|
|
|
def read_data() -> dict[str, str]:
|
|
raw_data = tomllib.loads(Path("data.toml").read_text())
|
|
raw_data['aliases'] = [alias['name'] for alias in raw_data['aliases'] for _ in range(alias['weight'])]
|
|
|
|
return raw_data
|
|
|
|
data = read_data()
|
|
|
|
@app.get("/api/")
|
|
async def ping():
|
|
return {
|
|
"status": "ok",
|
|
"timestamp": datetime.now().isoformat(),
|
|
"uptime_seconds": round(time.time() - start_time, 2),
|
|
}
|
|
|
|
|
|
@app.get("/api/quote")
|
|
async def quote():
|
|
return {"quote": random.choice(data['quotes'])}
|
|
|
|
|
|
@app.get("/api/alias")
|
|
async def alias():
|
|
return {"alias": random.choice(data['aliases'])}
|
|
|
|
|
|
# Mount static files
|
|
app.mount("/", StaticFiles(directory="website", html=True), name="static")
|