12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import traceback
-
- import fastapi
- from fastapi import Cookie, File, Form, Request, UploadFile, WebSocket, WebSocketDisconnect
- from fastapi.responses import FileResponse, HTMLResponse, JSONResponse, RedirectResponse, PlainTextResponse
- from fastapi.staticfiles import StaticFiles
- from fastapi.templating import Jinja2Templates
- from fastapi.middleware.cors import CORSMiddleware
-
- import reporthook
-
- ################################
- # Core configuration
- ################################
-
- app = fastapi.FastAPI()
-
- origins = [
- 'https://prograde.gg',
- 'http://localhost',
- 'http://localhost:5000',
- 'http://localhost:8080',
- 'http://localhost:8000'
- ]
-
- app.add_middleware(
- CORSMiddleware,
- allow_origins=origins,
- allow_credentials=True,
- allow_methods=['*'],
- allow_headers=['*']
- )
-
- app.mount('/static', StaticFiles(directory='static'), name='static')
-
- tmplts = Jinja2Templates(directory='templates') # TODO Get the path correctly.
-
- ################################
- # Core configuration
- ################################
-
- @app.exception_handler(Exception)
- async def handle_exception(req: Request, exc: Exception):
- tb = traceback.format_exc()
- await reporthook.send_report(tb)
- return PlainTextResponse('error', status_code=500)
-
- @app.get('/')
- def render_main(req: Request):
- p = {
- 'num_days': 5,
- 'request': req,
- }
-
- return tmplts.TemplateResponse('main.htm', p)
|