fix: chunked audio stream

desc: faulty content range headers

+ fix: tracks not being removed from db on root dirs change
+ implement implicit jwt refreshing
+ remove enableGuest from configs
+ set jwt validity to 30 days
This commit is contained in:
mungai-njoroge
2024-05-05 23:55:25 +03:00
parent fdf3186be6
commit 36600ab782
9 changed files with 78 additions and 49 deletions
+27 -1
View File
@@ -2,9 +2,16 @@
This file is used to run the application.
"""
from datetime import datetime, timezone
import os
import logging
from flask_jwt_extended import verify_jwt_in_request
from flask_jwt_extended import (
create_access_token,
get_jwt,
get_jwt_identity,
set_access_cookies,
verify_jwt_in_request,
)
import psutil
import mimetypes
from flask import Response, request
@@ -70,6 +77,25 @@ def verify_auth():
verify_jwt_in_request()
@app.after_request
def refresh_expiring_jwt(response: Response):
"""
Refreshes the JWT token after each request.
"""
try:
exp_timestamp = get_jwt()["exp"]
now = datetime.now(timezone.utc)
target_timestamp = datetime.timestamp(now) + 60 * 60 * 24 * 7 # 7 days
if target_timestamp > exp_timestamp:
access_token = create_access_token(identity=get_jwt_identity())
set_access_cookies(response, access_token)
return response
except (RuntimeError, KeyError):
return response
@app.route("/<path:path>")
def serve_client_files(path: str):
"""