RSSBox 当前的代码主要分成这几层:
core/models
保存数据结构和最基本的模型行为。
feed.py:RSS 源配置、状态和统计信息entry.py:文章内容filter.py:过滤器配置和过滤结果缓存agent.py:各类翻译/摘要 Agent 的配置模型tag.py:标签与聚合源配置
core/services
保存真正的业务处理逻辑。
core/services/feed
和 Feed 主流程相关的处理都在这里:
pipeline.py:单个 Feed 的更新流程refresh.py:更新后的缓存刷新与标签聚合刷新filters.py:Feed 与 Tag 的过滤规则rendering.py:RSS/Atom 输出内容生成response.py:RSS/JSON 返回格式包装
core/services/admin
后台动作相关的处理:
actions.py:强制更新、标签重组batch.py:批量修改
core/services/agent
不同 Agent 的具体执行逻辑:
openai.pydeepl.pylibretranslate.pytest_agent.py
core/services/opml.py
OPML 导入与导出。
core/views.py
只负责接收请求、读取缓存、调用服务并返回响应。
core/actions.py
只负责 Django admin action 入口与页面跳转,不再保存复杂业务逻辑。
core/management/commands
命令入口层。
当前重点命令是 feed_updater.py,负责按频率调度更新流程。
core/cache.py
缓存入口层。
负责读写缓存键,并调用服务层生成输出内容。
维护原则
后续改动优先遵守这几点:
- 页面和命令只做入口,不直接写大段业务逻辑。
- 模型保留配置和最小行为,复杂流程放进
services。 - 同一类规则只放一个位置,避免“改一处漏两处”。
- 新功能优先先补测试,再进入服务层实现。