reddit_hack / main.py
GitHub Actions Bot
Deploy backend from GitHub Actions
7f99b5c
Raw
History Blame Contribute Delete
1.37 kB
import uvicorn
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from config import settings
from db import init_db
from api.moderation import router as moderation_router
from api.analytics import router as analytics_router
@asynccontextmanager
async def lifespan(app: FastAPI):
# Initialize the database and create tables on startup
await init_db()
yield
app = FastAPI(
title=settings.PROJECT_NAME,
description="Backend API for Reddit Guardian AI Moderation Copilot",
version="1.0.0",
lifespan=lifespan
)
# Configure CORS
# Devvit runs on Reddit domains, but HTTP requests can originate from Reddit's servers.
# To allow playtesting and local dev, we open up CORS.
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include API Routers
app.include_router(moderation_router)
app.include_router(analytics_router)
@app.get("/") ## Health check endpoint
async def root():
return {
"status": "online",
"project": settings.PROJECT_NAME,
"message": "Guardian is watching and protecting."
}
if __name__ == "__main__":
uvicorn.run(
"main:app",
host=settings.HOST,
port=settings.PORT,
reload=True
)