add video streaming endpoints

adjust config for bypassing nginx
add communication to ergo
add cachebusting + fixing icons
This commit is contained in:
CEF Server 2024-07-13 00:31:43 +00:00
parent 15e1018476
commit 6a69c5a34d
6 changed files with 160 additions and 10 deletions

View file

@ -4,7 +4,7 @@ import time
from . import router
from fastapi import UploadFile, Request, Depends
from ..util import minioClient
from ..util import minioClient, ergo
from ..auth import JWTBearer
import config
@ -45,10 +45,11 @@ async def pfpUpload(file: UploadFile, request: Request):
mime = mimetypes.guess_type(file.filename)
minioClient.put_object("pfp", username, file.file, file.size, content_type=mime[0])
return {"url": f"https://{config.MINIO_ADDR}/pfp/{username}?{time.time():.0f}"}
await ergo.broadcastAs(username, "CACHEBUST")
return {"url": f"https://{config.MINIO_EXTERNAL_ADDR}/pfp/{username}?{time.time():.0f}"}
@router.post("/pfp/uploadIcon", dependencies=[Depends(JWTBearer())])
async def pfpUpload(file: UploadFile, request: Request):
async def IconUpload(file: UploadFile, request: Request):
if file.size > config.MAX_PFP_SIZE:
return {"error": "file too big"}
whoami = request.state.jwt
@ -62,5 +63,6 @@ async def pfpUpload(file: UploadFile, request: Request):
file.file.seek(0)
mime = mimetypes.guess_type(file.filename)
minioClient.put_object("pfp", username+"/icon", file.file, file.size, content_type=mime[0])
return {"url": f"https://{config.MINIO_ADDR}/pfp/{username}/icon?{time.time():.0f}"}
minioClient.put_object("pfp", username+".icon", file.file, file.size, content_type=mime[0])
await ergo.broadcastAs(username, "CACHEBUST")
return {"url": f"https://{config.MINIO_EXTERNAL_ADDR}/pfp/{username}.icon?{time.time():.0f}"}