Little refactoring

This commit is contained in:
Iam54r1n4
2025-02-03 01:10:51 +00:00
parent 40a80f7bf3
commit 6054135dab

View File

@ -1,40 +1,60 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
import os
import secrets
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from fastapi import Request from fastapi import Request
from starlette.middleware.sessions import SessionMiddleware from starlette.middleware.sessions import SessionMiddleware
from starlette.staticfiles import StaticFiles from starlette.staticfiles import StaticFiles
# Append directory of cli_api.py to be able to import it
HYSTERIA_CORE_DIR = '/etc/hysteria/core/' # Append directory of cli_api.py to be able to import it HYSTERIA_CORE_DIR = '/etc/hysteria/core/'
sys.path.append(HYSTERIA_CORE_DIR) # Now we can do `import cli_api` sys.path.append(HYSTERIA_CORE_DIR)
import routers # noqa: This import should be after the sys.path modification, because it imports cli_api import routers # noqa: This import should be after the sys.path modification, because it imports cli_api
import cli_api # noqa import cli_api # noqa
# region Setup App # region Setup App
app = FastAPI(debug=True) app = FastAPI(debug=True)
secret_key = os.getenv("SESSION_SECRET_KEY", secrets.token_urlsafe(32))
app.mount('/assets', StaticFiles(directory='assets'), name='assets') app.mount('/assets', StaticFiles(directory='assets'), name='assets')
templates = Jinja2Templates(directory='templates') templates = Jinja2Templates(directory='templates')
# app.add_middleware(SessionMiddleware, secret_key='your-secret-key') # TODO: fix this
app.add_middleware(SessionMiddleware, secret_key=secret_key)
# endregion # endregion
# region Routers # region Routers
app.include_router(routers.api.v1.api_v1_router, prefix='/api/v1', tags=['v1']) # Add API version 1 router
# Add API version 1 router
app.include_router(routers.api.v1.api_v1_router, prefix='/api/v1', tags=['v1']) # Add API version 1 router
# Add user router
app.include_router(routers.user.router, prefix='/users', tags=['users'])
# Add basic routes # Add basic routes
@app.get('/')
@app.get('/login')
async def login(request: Request):
return templates.TemplateResponse('login.html', {'request': request})
@app.get('/logout')
async def logout(request: Request):
pass
@ app.get('/')
async def index(request: Request): async def index(request: Request):
users = cli_api.list_users() users = cli_api.list_users()
return templates.TemplateResponse('index.html', {'request': request, 'users': users}) return templates.TemplateResponse('index.html', {'request': request, 'users': users})
@app.get('/home') @ app.get('/home')
async def home(request: Request): async def home(request: Request):
return await index(request) return await index(request)
# endregion # endregion