mirror of
https://github.com/linyqh/NarratoAI.git
synced 2025-12-11 10:32:49 +00:00
46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
import streamlit as st
|
|
import os
|
|
import shutil
|
|
from loguru import logger
|
|
|
|
from app.utils.utils import storage_dir
|
|
|
|
|
|
def clear_directory(dir_path, tr):
|
|
"""清理指定目录"""
|
|
if os.path.exists(dir_path):
|
|
try:
|
|
for item in os.listdir(dir_path):
|
|
item_path = os.path.join(dir_path, item)
|
|
try:
|
|
if os.path.isfile(item_path):
|
|
os.unlink(item_path)
|
|
elif os.path.isdir(item_path):
|
|
shutil.rmtree(item_path)
|
|
except Exception as e:
|
|
logger.error(f"Failed to delete {item_path}: {e}")
|
|
st.success(tr("Directory cleared"))
|
|
logger.info(f"Cleared directory: {dir_path}")
|
|
except Exception as e:
|
|
st.error(f"{tr('Failed to clear directory')}: {str(e)}")
|
|
logger.error(f"Failed to clear directory {dir_path}: {e}")
|
|
else:
|
|
st.warning(tr("Directory does not exist"))
|
|
|
|
def render_system_panel(tr):
|
|
"""渲染系统设置面板"""
|
|
with st.expander(tr("System settings"), expanded=False):
|
|
col1, col2, col3 = st.columns(3)
|
|
|
|
with col1:
|
|
if st.button(tr("Clear frames"), use_container_width=True):
|
|
clear_directory(os.path.join(storage_dir(), "temp/keyframes"), tr)
|
|
|
|
with col2:
|
|
if st.button(tr("Clear clip videos"), use_container_width=True):
|
|
clear_directory(os.path.join(storage_dir(), "temp/clip_video"), tr)
|
|
|
|
with col3:
|
|
if st.button(tr("Clear tasks"), use_container_width=True):
|
|
clear_directory(os.path.join(storage_dir(), "tasks"), tr)
|