134: # Format: {session_id: {'files': [list of filenames], 'created_at': datetime, 'username': str or None}} 135: sessions = {} 142: UPLOAD_FOLDER = 'uploads' 143: OUTPUT_FOLDER = 'output' 257: os.makedirs(UPLOAD_FOLDER, exist_ok=True) 258: os.makedirs(OUTPUT_FOLDER, exist_ok=True) 328: session_id = request.cookies.get('session_id') 330: if not session_id or session_id not in sessions: 332: session_id = str(uuid.uuid4()) 333: sessions[session_id] = { 338: print(Fore.CYAN + f"[SESSION] Created new session: {session_id}" + Fore.RESET) 340: # Cleanup old sessions 341: cleanup_old_sessions() 343: return session_id 345: def cleanup_old_sessions(): 350: expired_sessions = [] 352: for session_id, session_data in sessions.items(): 354: expired_sessions.append(session_id) 356: for session_id in expired_sessions: 357: print(Fore.YELLOW + f"[SESSION] Expired session removed: {session_id}" + Fore.RESET) 358: del sessions[session_id] 360: def add_file_to_session(session_id: str, filename: str): 364: if session_id in sessions: 365: if filename not in sessions[session_id]['files']: 366: sessions[session_id]['files'].append(filename) 367: print(Fore.GREEN + f"[SESSION] Added file '{filename}' to session {session_id}" + Fore.RESET) 369: def can_access_file(session_id: str, filename: str) -> bool: 373: if session_id in sessions: 374: return filename in sessions[session_id]['files'] 661: session_id = request.cookies.get('session_id') 662: if session_id and session_id in sessions: 663: user_info = sessions[session_id].get('user_info') 837: session_id = get_or_create_session(request) 838: sessions[session_id]['username'] = user_info.get('username', username) 839: sessions[session_id]['user_info'] = user_info 841: sessions[session_id]['unit_id'] = str(user_info.get('unit_id', '')) 842: sessions[session_id]['unit_name'] = user_info.get('unit_name', '') 843: sessions[session_id]['fullname'] = user_info.get('full_name', username)