Files
ChouJuGEO/modules/ui/state.py
T
刘国栋 8f7f082c3d feat: 重构项目结构并添加平台同步基础架构
- 重构项目目录结构,将功能模块移至 modules/ 目录
- 创建平台同步基础架构,包括发布器基类和 GitHub 发布器
- 新增 UI 状态管理模块 (modules/ui/state.py) 统一管理会话状态
- 更新依赖配置,添加平台同步所需依赖 (httpx, pyperclip)
- 整理文档结构,将所有文档分类移至 docs/ 目录
- 添加 .cursorrules 文件定义项目开发规范
- 清理根目录重复文件,保持项目结构整洁
2026-01-30 10:21:29 +08:00

54 lines
1.4 KiB
Python

import streamlit as st
def ss_init(key, default):
"""
统一的 session_state 初始化函数。
- 仅当 key 不存在时才写入默认值
- 避免在多个模块中重复实现
"""
if key not in st.session_state:
st.session_state[key] = default
def init_session_state():
"""
初始化 GEO 应用中跨 Tab 使用的核心 session_state 字段。
说明:
- 这里只负责**跨 Tab 共享**或在多处使用的 key
- 各 Tab 内部的临时/局部状态仍然由 Tab 自己按需调用 ss_init
"""
# 配置相关
# ss_init("cfg", {}) # 移除:由主程序 geo_tool.py 负责初始化,避免空字典覆盖默认配置
ss_init("cfg_applied", False)
ss_init("cfg_valid", False)
ss_init("cfg_errors", [])
# 关键词模块
ss_init("keywords", [])
ss_init("kw_last_num", 40)
ss_init("kw_generation_mode", "AI生成")
ss_init("wordbanks", None)
# 内容创作模块
ss_init("generated_contents", [])
ss_init("zip_bytes", None)
ss_init("zip_filename", "")
ss_init("content_scores", {})
ss_init("selected_content_idx", 0)
# 文章优化模块
ss_init("optimized_article", "")
ss_init("opt_changes", "")
ss_init("opt_platform", "通用优化")
# 多模型验证
ss_init("verify_combined", None)
ss_init("verify_last_queries", "")
# 其他跨模块使用的标志位
ss_init("cancel_generation", False)