Repository navigation
Expand file tree
/
Copy pathapp.py
More file actions
57 lines (47 loc) · 1.91 KB
/
Copy pathapp.py
File metadata and controls
57 lines (47 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import streamlit as st
from backend.db import init_db
from backend.services.image_service import cleanup_old_files, ensure_storage_dirs
from frontend.components.header import render_header
from frontend.components.sidebar import render_sidebar_controls
from frontend.components.theme import inject_styles
from frontend.config import DOMAIN, FILE_RETENTION_DAYS, GITEE_URL, PROJECT_NAME, PROJECT_SUBTITLE, STATE_DEFAULTS
from frontend.pages.about_page import render_about_page
from frontend.pages.export_stats_page import render_export_and_stats_page
from frontend.pages.history_page import render_history_page
from frontend.pages.processing_page import render_processing_page
st.set_page_config(
page_title=PROJECT_NAME,
page_icon="🎯",
layout="wide",
initial_sidebar_state="expanded",
)
def init_runtime() -> None:
init_db()
ensure_storage_dirs()
for key, value in STATE_DEFAULTS.items():
st.session_state.setdefault(key, value)
if not st.session_state.get("cleanup_done"):
cleanup_old_files(retention_days=FILE_RETENTION_DAYS)
st.session_state["cleanup_done"] = True
def main() -> None:
init_runtime()
inject_styles()
render_header(PROJECT_NAME, PROJECT_SUBTITLE, GITEE_URL)
render_sidebar_controls()
tab_key = "main_tabs"
if st.session_state.get("jump_to_processing"):
st.session_state["jump_to_processing"] = False
counter = st.session_state.get("tab_reset_counter", 0) + 1
st.session_state["tab_reset_counter"] = counter
tab_key = f"main_tabs_{counter}"
tabs = st.tabs(["处理中心", "历史记录", "导出与统计", "关于项目"], key=tab_key)
with tabs[0]:
render_processing_page()
with tabs[1]:
render_history_page()
with tabs[2]:
render_export_and_stats_page()
with tabs[3]:
render_about_page(PROJECT_NAME, DOMAIN, GITEE_URL)
if __name__ == "__main__":
main()