zhoujie b635108b89 refactor: split monolithic main.py into services/ + ui/ modules (improve-maintainability)
- 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"
2026-02-24 22:50:56 +08:00

1.2 KiB
Raw Blame History

ADDED Requirements

Requirement: 排期队列操作函数迁移至独立模块

系统 SHALL 将内容排期队列相关函数从 main.py 提取至 services/queue_ops.py,包括:generate_to_queue_queue_publish_callbackqueue_refresh_tablequeue_refresh_calendarqueue_preview_itemqueue_approve_itemqueue_reject_itemqueue_delete_itemqueue_retry_itemqueue_publish_nowqueue_start_processorqueue_stop_processorqueue_get_statusqueue_batch_approvequeue_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_queuequeue_publisher
  • THEN 这些单例 SHALL 通过函数参数传入,不在 queue_ops.py 模块顶层初始化