vericudebuget's picture
Update app.py
b320cb6 verified
import os, json, io
from fastapi import FastAPI, HTTPException
from fastapi.staticfiles import StaticFiles
from huggingface_hub import HfApi
# --- Configuration ---
REPO_ID = "vericudebuget/lotofdata"
FILE_NAME = "messages.json"
HF_TOKEN = os.getenv("HF_TOKEN")
api = HfApi(token=HF_TOKEN)
# --- App setup ---
app = FastAPI()
app.mount("/", StaticFiles(directory="website", html=True), name="static")
@app.post("/api/messages")
def upload_messages(payload: list):
"""Accept a list of messages and upload them to the Hub."""
if not isinstance(payload, list):
raise HTTPException(400, detail="Expected a list of messages.")
try:
# Serialize to JSON, then upload as in-memory file
data_bytes = json.dumps(payload, ensure_ascii=False, indent=2).encode("utf-8")
api.upload_file(
path_or_fileobj = io.BytesIO(data_bytes),
path_in_repo = FILE_NAME,
repo_id = REPO_ID,
repo_type = "dataset",
commit_message = "Upload new messages from Space"
)
return {"ok": True, "count": len(payload)}
except Exception as e:
raise HTTPException(500, detail=f"Failed to upload: {e}")