@@ -49,6 +49,8 @@ def is_public_request(req: Request) -> bool:
4949 ("GET" , "/api/preset" ),
5050 ("GET" , "/api/scratch-count$" ),
5151 ("GET" , "/api/scratch/[A-Za-z0-9]+/compile$" ),
52+ ("GET" , "/api/scratch/[A-Za-z0-9]+/export$" ),
53+ ("GET" , "/api/scratch/[A-Za-z0-9]+/family$" ),
5254 ("GET" , "/api/scratch/[A-Za-z0-9]+$" ),
5355 ("GET" , "/api/scratch$" ),
5456 ("GET" , "/api/search$" ),
@@ -87,11 +89,6 @@ def middleware(request: Request) -> Response:
8789 request .profile = Profile ()
8890 return get_response (request )
8991
90- # Avoid creating persistent for public endpoints
91- if is_public_request (request ):
92- request .profile = Profile ()
93- return get_response (request )
94-
9592 profile = None
9693
9794 # Try user-linked profile
@@ -109,6 +106,11 @@ def middleware(request: Request) -> Response:
109106 if profile and profile .user and request .user .is_anonymous :
110107 request .user = profile .user
111108
109+ # Avoid creating persistent for public endpoints
110+ if not profile and is_public_request (request ):
111+ request .profile = Profile ()
112+ return get_response (request )
113+
112114 # Create new profile if none found
113115 if not profile :
114116 profile = Profile (
0 commit comments