目录与模块
以下结构聚焦开发时最常进入的目录:
text
Anicli/
├─ lib/
│ ├─ api/ # 后端 API 客户端
│ ├─ models/ # 应用数据模型
│ ├─ pages/ # 页面
│ ├─ services/ # 业务、缓存、网络与播放编排
│ │ ├─ source/ # 规则仓库与编解码
│ │ └─ torrent/ # BT 协议与边下边播
│ ├─ source/
│ │ ├─ engine/ # 管线解释器、校验器、配方、操作符
│ │ ├─ model/ # SourceRule / PipelineStep
│ │ ├─ runtime/ # 请求调度与拦截器
│ │ ├─ store/ # 内置规则加载与配置迁移
│ │ └─ pipeline_source_adapter.dart
│ ├─ storage/ # 本地与 WebDAV 存储提供者
│ └─ widgets/ # 通用、播放器和平台控件
├─ rule/ # anx-rule/2 规则与订阅索引
├─ test/
│ ├─ source/ # 引擎、规则集合与 live probe
│ └─ services/ # 服务契约测试
├─ tool/ # 规则迁移等维护工具
├─ third_party/ # 项目维护的本地依赖变体
└─ .github/workflows/ # 多平台 CI / Release改动路由
| 需求 | 优先查看 |
|---|---|
| 某个站点搜索/详情/播放失效 | rule/<key>.json、test/source/live_new_rules_test.dart |
| 需要新通用规则能力 | lib/source/engine/ 与对应引擎测试 |
| 规则安装、订阅或更新异常 | lib/services/source/rule_repository_service.dart |
| 自定义源导入/编辑异常 | lib/pages/source/、SourceAdapterService |
| 播放线路或解析结果状态异常 | PlayerService、播放器页面与会话协调器 |
| 首页或详情数据异常 | 对应 service,再检查多个平台页面调用方 |
| Windows / TV 独有 UI 问题 | lib/widgets/platform/windows/ 或 tv/ |
依赖方向
推荐保持依赖单向:
text
pages/widgets → services → source adapters → engine contracts
↓
network / webview / player不要让解释器依赖具体页面,也不要把某个站点的临时代码塞进通用 UI。只有在多个规则确实共享且无法由现有操作符表达时,才考虑扩展引擎。
