41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from fastapi import FastAPI, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.staticfiles import StaticFiles
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from app.config import settings
|
|
from app.schemas import IMPublishRequest, RewriteRequest, WechatPublishRequest
|
|
from app.services.ai_rewriter import AIRewriter
|
|
from app.services.im import IMPublisher
|
|
from app.services.wechat import WechatPublisher
|
|
|
|
app = FastAPI(title=settings.app_name)
|
|
app.mount("/static", StaticFiles(directory="app/static"), name="static")
|
|
templates = Jinja2Templates(directory="app/templates")
|
|
|
|
rewriter = AIRewriter()
|
|
wechat = WechatPublisher()
|
|
im = IMPublisher()
|
|
|
|
|
|
@app.get("/", response_class=HTMLResponse)
|
|
async def index(request: Request):
|
|
return templates.TemplateResponse("index.html", {"request": request, "app_name": settings.app_name})
|
|
|
|
|
|
@app.post("/api/rewrite")
|
|
async def rewrite(req: RewriteRequest):
|
|
return rewriter.rewrite(req)
|
|
|
|
|
|
@app.post("/api/publish/wechat")
|
|
async def publish_wechat(req: WechatPublishRequest):
|
|
return await wechat.publish_draft(req)
|
|
|
|
|
|
@app.post("/api/publish/im")
|
|
async def publish_im(req: IMPublishRequest):
|
|
return await im.publish(req)
|