diff --git a/src/copyvios/__init__.py b/src/copyvios/__init__.py index abd4f91..ff8281a 100644 --- a/src/copyvios/__init__.py +++ b/src/copyvios/__init__.py @@ -3,20 +3,25 @@ import logging import os from logging.handlers import TimedRotatingFileHandler -from flask import Flask, Response, request +from flask import Flask, request +from flask.sessions import SecureCookieSessionInterface, SessionMixin + + +class CopyviosSessionInterface(SecureCookieSessionInterface): + def should_set_cookie(self, app: Flask, session: SessionMixin) -> bool: + if request.endpoint == "static" and request.args.get("v"): + return False + return super().should_set_cookie(app, session) class CopyviosFlask(Flask): + session_interface = CopyviosSessionInterface() + def get_send_file_max_age(self, filename: str | None) -> int | None: if request.args.get("v"): return 365 * 24 * 60 * 60 return super().get_send_file_max_age(filename) - def send_static_file(self, filename: str) -> Response: - response = super().send_static_file(filename) - response.headers.pop("Set-Cookie", None) - return response - app = CopyviosFlask( "copyvios",