Skip to content

Commit f35abe6

Browse files
CopilotSigureMo
andcommitted
docs: Update CONTRIBUTING.md to reflect recent module structure optimizations
Co-authored-by: SigureMo <38436475+SigureMo@users.noreply.github.com>
1 parent 192053d commit f35abe6

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

CONTRIBUTING.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ uv run yutto -v
6767
│ ├── __init__.py
6868
│ ├── __main__.py # 命令行入口,含所有命令选项
6969
│ ├── __version__.py
70-
│ ├── _typing.py # yutto 的主要类型声明(非全部,部分类型是定义在自己模块之内的)
70+
│ ├── types.py # yutto 的主要类型声明(非全部,部分类型是定义在自己模块之内的)
7171
│ ├── api # bilibili API 的基本函数封装,输入输出转换为 yutto 的主要类型
7272
│ │ ├── __init__.py
7373
│ │ ├── bangumi.py # 番剧相关
@@ -77,7 +77,12 @@ uv run yutto -v
7777
│ │ ├── space.py # 个人空间相关(收藏夹、合集、列表)
7878
│ │ ├── ugc_video.py # 投稿视频相关
7979
│ │ └── user_info.py # 用户信息相关
80-
│ ├── bilibili_typing # bilibili 自己的一些数据类型绑定
80+
│ ├── cli # 命令行界面相关模块
81+
│ │ ├── __init__.py
82+
│ │ ├── cli.py # 命令行解析
83+
│ │ └── settings.py # 设置相关
84+
│ ├── download_manager.py # 下载管理器
85+
│ ├── media # bilibili 自己的一些数据类型绑定
8186
│ │ ├── __init__.py
8287
│ │ ├── codec.py # bilibili 的 codec
8388
│ │ └── quality.py # bilibili 的 qn
@@ -98,15 +103,16 @@ uv run yutto -v
98103
│ │ ├── user_all_favourites.py # 全部收藏夹
99104
│ │ ├── user_all_ugc_videos.py # 个人空间全部
100105
│ │ └── user_watch_later.py # 稍后再看
101-
│ ├── processor # 一些在提取/下载过程中用到的基本处理方法(该部分很可能进一步重构)
106+
│ ├── downloader # 下载器相关模块
102107
│ │ ├── __init__.py
103108
│ │ ├── downloader.py # 下载器
104-
│ │ ├── parser.py # 文件解析器(解析任务列表、alias 文件)
105-
│ │ ├── path_resolver.py # 路径处理器(需处理路径变量)
106109
│ │ ├── progressbar.py # 进度条(本部分可替换成为其他行为以支持更丰富的进度显示方式)
107110
│ │ └── selector.py # 选集、内容过滤器(本部分可修改成支持交互的)
111+
│ ├── input_parser.py # 文件解析器(解析任务列表、alias 文件)
112+
│ ├── mcp_server.py # MCP 服务器
113+
│ ├── path_templates.py # 路径处理器(需处理路径变量)
108114
│ ├── py.typed
109-
│ ├── utils # yutto 无关或弱相关模块,不应依赖 yutto 强相关模块(api、extractor、processor),含部分类型资源的基本封装(弹幕、字幕、描述文件)
115+
│ ├── utils # yutto 无关或弱相关模块,不应依赖 yutto 强相关模块(api、extractor、downloader),含部分类型资源的基本封装(弹幕、字幕、描述文件)
110116
│ │ ├── __init__.py
111117
│ │ ├── asynclib.py # 封装部分异步相关方法
112118
│ │ ├── console # 命令行打印相关
@@ -121,12 +127,13 @@ uv run yutto -v
121127
│ │ ├── ffmpeg.py # FFmpeg 驱动单例模块
122128
│ │ ├── file_buffer.py # 文件缓冲器(yutto 下载原理的核心)
123129
│ │ ├── filter.py # 数据过滤器(根据时间过滤选择的剧集)
124-
│ │ ├── funcutils # yutto 需要用的一些实用基本函数(很多是直接参考 StackOverflow 的)
130+
│ │ ├── functional # yutto 需要用的一些实用基本函数(很多是直接参考 StackOverflow 的)
125131
│ │ │ ├── __init__.py # 一些实用函数
126-
│ │ │ ├── aobject.py # 一个简单的抽象类
127-
│ │ │ ├── as_sync.py # 异步转同步
132+
│ │ │ ├── async_object.py # 一个简单的抽象类
133+
│ │ │ ├── async_to_sync.py # 异步转同步
128134
│ │ │ ├── data_access.py # 数据访问
129-
│ │ │ ├── filter_none_value.py # 过滤 None 值
135+
│ │ │ ├── filter_none_values.py # 过滤 None 值
136+
│ │ │ ├── functional.py # 函数式编程工具
130137
│ │ │ ├── singleton.py # 单例模式
131138
│ │ │ └── xmerge.py # 合并多个迭代器
132139
│ │ ├── metadata.py # 「资源文件」描述文件基本封装
@@ -147,7 +154,7 @@ uv run yutto -v
147154
│ │ ├── test_ugc_video.py
148155
│ │ └── test_user_info.py
149156
│ ├── test_e2e.py # 端到端测试
150-
│ ├── test_processor # processor 测试模块,对应 yutto/processor
157+
│ ├── test_processor # processor 测试模块,对应 yutto/downloader
151158
│ │ ├── __init__.py
152159
│ │ ├── test_downloader.py
153160
│ │ ├── test_path_resolver.py
@@ -164,7 +171,7 @@ uv run yutto -v
164171
切入代码的最好方式自然是从入口开始啦~ yutto 的命令行入口是 [`src/yutto/__main__.py`](./src/yutto/__main__.py),这里列出了 yutto 整个的工作流程:
165172

166173
1. 解析参数并利用 [yutto/validator.py](./src/yutto/validator.py) 验证参数的正确性,虽然 argparse 已经做了基本的验证,但 validator 会进一步的验证。另外目前 validator 还会顺带做全局状态的设置的工作,这部分以后可能修改。
167-
2. 利用 [yutto/processor/parser.py](./src/yutto/processor/parser.py) 解析 alias 和任务列表
174+
2. 利用 [yutto/input_parser.py](./src/yutto/input_parser.py) 解析 alias 和任务列表
168175
3. 遍历任务列表下载:
169176
1. 初始化提取器 [yutto/extractor/](./src/yutto/extractor/)
170177
2. 利用所有提取器处理 id 为可识别的 url
@@ -179,7 +186,7 @@ uv run yutto -v
179186
3. 选集(如果支持的话)
180187
4. 根据列表构造协程任务(任务包含了解析信息和利用低阶提取器提取)
181188
5. 构造解析任务
182-
5. 依次执行解析任务,并将结果依次传入 [`src/yutto/utils/downloader.py`](src/yutto/utils/../processor/downloader.py) 进行下载
189+
5. 依次执行解析任务,并将结果依次传入 [`src/yutto/downloader/downloader.py`](src/yutto/downloader/downloader.py) 进行下载
183190
1. 选择清晰度
184191
2. 显示详细信息
185192
3. 字幕、弹幕、描述文件等额外资源下载

0 commit comments

Comments
 (0)