SmartLead / src /services /session_utils.py
Subhajit Chakraborty
update files(7)
45021e5
import uuid
import streamlit as st
import os
import time
import sys
import shutil
MAX_DIR_AGE_SECONDS = 1800
def get_session_id():
if 'session_id' not in st.session_state:
st.session_state.session_id = str(uuid.uuid4())
return st.session_state.session_id
def cleanup_stale_directories(base_dir: str):
"""Deletes directories under base_dir older than MAX_DIR_AGE_SECONDS."""
now = time.time()
for item_name in os.listdir(base_dir):
item_path = os.path.join(base_dir, item_name)
if os.path.isdir(item_path):
try:
mtime = os.path.getmtime(item_path)
if (now - mtime) > MAX_DIR_AGE_SECONDS:
shutil.rmtree(item_path)
print(f"Cleaned up stale directory: {item_path}", file=sys.stderr)
except Exception as e:
print(f"Error cleaning directory {item_path}: {e}", file=sys.stderr)
pass
def get_session_temp_dir(main_data_dir):
cleanup_stale_directories(main_data_dir)
session_id = get_session_id()
temp_dir = os.path.join(main_data_dir, session_id)
os.makedirs(temp_dir, exist_ok=True)
return temp_dir