## ADDED Requirements ### Requirement: 定时热点自动采集任务 系统 SHALL 在 `services/scheduler.py` 中提供 `start_hotspot_collector` / `stop_hotspot_collector` 函数,启动独立的后台线程按固定间隔自动采集热点。 #### Scenario: 启动自动采集 - **WHEN** 调用 `start_hotspot_collector(keywords, interval_hours, mcp_url, model)` - **THEN** 系统 SHALL 启动一个 daemon 线程,在首次启动后立即执行一轮采集,随后按 `interval_hours` 间隔循环执行 #### Scenario: 单轮采集流程 - **WHEN** 采集线程执行一轮任务 - **THEN** SHALL 遍历 `keywords` 列表,对每个关键词依次调用 `search_hotspots(keyword, "最多点赞", mcp_url)` 获取搜索结果,再调用 `analyze_and_suggest(model, keyword, search_result)` 执行 LLM 分析,分析结果通过 `set_last_analysis()` 合并写入状态缓存 #### Scenario: 停止自动采集 - **WHEN** 调用 `stop_hotspot_collector()` - **THEN** 系统 SHALL 清除运行标志,等待线程优雅退出 #### Scenario: 防止重复启动 - **WHEN** 自动采集已在运行中再次调用 `start_hotspot_collector` - **THEN** SHALL 返回警告信息,不启动新线程 ### Requirement: 热点自动采集配置 系统 SHALL 支持通过 `config.json` 的 `hotspot_auto_collect` 节点配置自动采集参数。 #### Scenario: 配置节点结构 - **WHEN** 读取 `config.json` 中的 `hotspot_auto_collect` - **THEN** 该节点 SHALL 包含以下字段:`enabled`(bool,默认 false)、`keywords`(string list,默认 `["穿搭", "美妆", "好物"]`)、`interval_hours`(int,默认 4) #### Scenario: 配置缺失时使用默认值 - **WHEN** `config.json` 中不存在 `hotspot_auto_collect` 节点 - **THEN** `ConfigManager.get("hotspot_auto_collect")` SHALL 返回默认值 `{"enabled": false, "keywords": ["穿搭", "美妆", "好物"], "interval_hours": 4}`