init
This commit is contained in:
47
app.py
Normal file
47
app.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from fastapi import FastAPI, File, UploadFile, Form, Request
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from starlette.templating import Jinja2Templates
|
||||
|
||||
import shutil
|
||||
|
||||
import models
|
||||
|
||||
description = """
|
||||
Oki.cx is a API for uploading file to a Server to be shared via HTTP.
|
||||
|
||||
## Response Types
|
||||
|
||||
- HTML Response
|
||||
- JSON Response
|
||||
"""
|
||||
|
||||
app = FastAPI(
|
||||
title="Oki.cx - Fileshare",
|
||||
description=description,
|
||||
version="0.1",
|
||||
terms_of_service="http://oki.cx/fileshare/tos",
|
||||
contact={
|
||||
"name": "oki.cx",
|
||||
"email": "cody@oki.cx",
|
||||
},
|
||||
license_info={
|
||||
"name": "MIT License",
|
||||
"url": "https://gitlab.oki.cx/mrpvtdagger/oki.cx-fileshare/-/raw/main/LICENSE",
|
||||
},
|
||||
)
|
||||
|
||||
templates = Jinja2Templates(directory="templates")
|
||||
|
||||
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||
|
||||
@app.get("/", include_in_schema=False)
|
||||
def home(request: Request):
|
||||
return templates.TemplateResponse("base.html",{"request": request, "is_hidden": "is-hidden"})
|
||||
|
||||
@app.post("/upload/{response_type}")
|
||||
def file(request: Request, response_type: str, file: UploadFile = File(...)):
|
||||
uploaded_file = models.UploadFile(file, file.filename, file.content_type)
|
||||
if response_type.lower == "json":
|
||||
return uploaded_file
|
||||
else:
|
||||
return templates.TemplateResponse("html_response.html",{"request": request, "uploaded_file": uploaded_file, "filename": file.filename})
|
||||
Reference in New Issue
Block a user