- main.py: 4360 → 146 lines (96.6% reduction), entry layer only - services/: rate_limiter, autostart, persona, connection, profile, hotspot, content, engagement, scheduler, queue_ops (10 business modules) - ui/app.py: all Gradio UI code extracted into build_app(cfg, analytics) - Fix: with gr.Blocks() indented inside build_app function - Fix: cfg.all property (not get_all method) - Fix: STATUS_LABELS, get_persona_keywords, fetch_proactive_notes imports - Fix: queue_ops module-level set_publish_callback moved into configure() - Fix: pub_queue.format_*() wrapped as queue_format_table/calendar helpers - All 14 files syntax-verified, build_app() runtime-verified - 58/58 tasks complete"
1.2 KiB
1.2 KiB
ADDED Requirements
Requirement: 排期队列操作函数迁移至独立模块
系统 SHALL 将内容排期队列相关函数从 main.py 提取至 services/queue_ops.py,包括:generate_to_queue、_queue_publish_callback、queue_refresh_table、queue_refresh_calendar、queue_preview_item、queue_approve_item、queue_reject_item、queue_delete_item、queue_retry_item、queue_publish_now、queue_start_processor、queue_stop_processor、queue_get_status、queue_batch_approve、queue_generate_and_refresh。
Scenario: 模块导入成功
- WHEN
main.py执行from services.queue_ops import queue_generate_and_refresh, queue_refresh_table等导入 - THEN 所有函数可正常调用
Scenario: publish callback 在 main.py 完成注册
- WHEN 应用启动时
main.py调用pub_queue.set_publish_callback(_queue_publish_callback)(_queue_publish_callback已迁移至queue_ops.py) - THEN 队列发布回调 SHALL 正常注册并在队列处理时触发
Scenario: 队列操作读写 pub_queue 单例
- WHEN
queue_ops.py中的函数需要访问pub_queue或queue_publisher - THEN 这些单例 SHALL 通过函数参数传入,不在
queue_ops.py模块顶层初始化