Skip to content

目录与模块

以下结构聚焦开发时最常进入的目录:

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>.jsontest/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。只有在多个规则确实共享且无法由现有操作符表达时,才考虑扩展引擎。

文档内容采用项目许可证约束;第三方站点与内容不由 AniBaka 提供。