utils.py 1022 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from fastapi import APIRouter, UploadFile, File, BackgroundTasks
  2. from fastapi import Depends, HTTPException, status
  3. from starlette.responses import StreamingResponse, FileResponse
  4. from pydantic import BaseModel
  5. import markdown
  6. import requests
  7. import os
  8. import aiohttp
  9. import json
  10. from utils.utils import get_admin_user
  11. from utils.misc import calculate_sha256, get_gravatar_url
  12. from config import OLLAMA_BASE_URLS, DATA_DIR, UPLOAD_DIR
  13. from constants import ERROR_MESSAGES
  14. router = APIRouter()
  15. @router.get("/gravatar")
  16. async def get_gravatar(
  17. email: str,
  18. ):
  19. return get_gravatar_url(email)
  20. class MarkdownForm(BaseModel):
  21. md: str
  22. @router.post("/markdown")
  23. async def get_html_from_markdown(
  24. form_data: MarkdownForm,
  25. ):
  26. return {"html": markdown.markdown(form_data.md)}
  27. @router.get("/db/download")
  28. async def download_db(user=Depends(get_admin_user)):
  29. return FileResponse(
  30. f"{DATA_DIR}/webui.db",
  31. media_type="application/octet-stream",
  32. filename="webui.db",
  33. )