@kadaliao/geektime-downloader 1.0.3 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/README.md +43 -6
- package/download.js +1134 -39
- package/package.json +5 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# 更新日志
|
|
2
|
+
|
|
3
|
+
## [1.1.0] - 2025-12-29
|
|
4
|
+
|
|
5
|
+
### 新增功能
|
|
6
|
+
- 支持 EPUB 格式输出
|
|
7
|
+
- 新增 `--format` 选项,支持 pdf/epub/both 三种模式
|
|
8
|
+
- EPUB 格式特性:
|
|
9
|
+
- 标准 EPUB 3 格式
|
|
10
|
+
- 完整的目录导航
|
|
11
|
+
- 响应式排版,适合各种阅读器
|
|
12
|
+
- 自动处理图片和代码块样式
|
|
13
|
+
- 文件体积通常小于 PDF
|
|
14
|
+
|
|
15
|
+
### 技术改进
|
|
16
|
+
- 添加 `epub-gen-memory` 依赖用于 EPUB 生成
|
|
17
|
+
- 实现文章 HTML 内容提取功能
|
|
18
|
+
- 实现并发内容提取机制
|
|
19
|
+
- 优化 EPUB 样式,提升阅读体验
|
|
20
|
+
|
|
21
|
+
### Bug 修复
|
|
22
|
+
- 修复 epub-gen-memory 导入问题
|
|
23
|
+
- 修复 EPUB 生成 API 调用错误
|
|
24
|
+
- 优化 Cookie 过期检测,改用基于 API 响应的智能判断
|
|
25
|
+
- 增加页面加载超时时间(30s → 60s)
|
|
26
|
+
|
|
27
|
+
### 文档更新
|
|
28
|
+
- 更新 README.md,添加 EPUB 使用说明
|
|
29
|
+
- 更新命令行帮助信息
|
|
30
|
+
- 添加多个使用示例
|
|
31
|
+
- 新增 CHANGELOG.md
|
|
32
|
+
|
|
33
|
+
## [1.0.4] - 之前版本
|
|
34
|
+
|
|
35
|
+
### 功能
|
|
36
|
+
- 批量下载极客时间专栏文章为 PDF
|
|
37
|
+
- 支持 PDF 合并
|
|
38
|
+
- 支持并发下载
|
|
39
|
+
- 完整的文章内容提取
|
|
40
|
+
- 自动添加 PDF 书签
|
package/README.md
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# 极客时间专栏下载器
|
|
2
2
|
|
|
3
|
-
一键批量下载极客时间专栏文章为 PDF 格式。支持通过 `npx`
|
|
3
|
+
一键批量下载极客时间专栏文章为 PDF 或 EPUB 格式。支持通过 `npx` 直接运行,无需安装。
|
|
4
4
|
|
|
5
5
|
## ✨ 特性
|
|
6
6
|
|
|
7
7
|
- 🚀 **零安装**:支持 `npx` 直接使用
|
|
8
8
|
- 📦 **批量下载**:自动获取整个专栏的所有文章
|
|
9
|
-
- 📄
|
|
10
|
-
-
|
|
9
|
+
- 📄 **完整内容**:自动处理滚动容器,确保包含完整内容
|
|
10
|
+
- 📚 **多种格式**:支持 PDF、EPUB 或同时生成两种格式
|
|
11
|
+
- 🔗 **智能合并**:自动将所有章节合并为一个文件,以专栏名称命名(可选)
|
|
11
12
|
- ⚙️ **灵活配置**:命令行参数或配置文件,任选其一
|
|
12
13
|
- 🎨 **友好界面**:彩色进度提示,实时显示下载状态
|
|
13
14
|
|
|
@@ -79,9 +80,11 @@ geektime-dl [选项]
|
|
|
79
80
|
-u, --url <url> 专栏文章URL(任意一篇)
|
|
80
81
|
-c, --cookie <cookie> Cookie字符串(用于认证)
|
|
81
82
|
-o, --output <dir> 输出目录 (默认: "./downloads")
|
|
83
|
+
-f, --format <format> 输出格式: pdf, epub, both (默认: "pdf")
|
|
82
84
|
--headless <boolean> 无头模式 (默认: true)
|
|
83
85
|
--concurrency <number> 并发下载数量 (默认: 5)
|
|
84
86
|
--delay <ms> 每篇文章间延迟(ms) (默认: 2000)
|
|
87
|
+
--timeout <ms> 页面加载超时时间(ms) (默认: 60000)
|
|
85
88
|
--dry-run 预览模式,只显示文章列表
|
|
86
89
|
--limit <number> 限制下载数量(测试用)
|
|
87
90
|
--no-merge 禁用PDF合并(默认会合并所有文章为一个PDF)
|
|
@@ -108,7 +111,7 @@ npx @kadaliao/geektime-downloader \
|
|
|
108
111
|
--limit 2
|
|
109
112
|
```
|
|
110
113
|
|
|
111
|
-
|
|
114
|
+
**下载整个专栏(PDF 格式)**
|
|
112
115
|
|
|
113
116
|
```bash
|
|
114
117
|
npx @kadaliao/geektime-downloader \
|
|
@@ -116,6 +119,24 @@ npx @kadaliao/geektime-downloader \
|
|
|
116
119
|
-c "your_cookie"
|
|
117
120
|
```
|
|
118
121
|
|
|
122
|
+
**下载为 EPUB 格式**
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npx @kadaliao/geektime-downloader \
|
|
126
|
+
-u "https://time.geekbang.org/column/article/200822" \
|
|
127
|
+
-c "your_cookie" \
|
|
128
|
+
--format epub
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**同时生成 PDF 和 EPUB**
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
npx @kadaliao/geektime-downloader \
|
|
135
|
+
-u "https://time.geekbang.org/column/article/200822" \
|
|
136
|
+
-c "your_cookie" \
|
|
137
|
+
--format both
|
|
138
|
+
```
|
|
139
|
+
|
|
119
140
|
**自定义输出目录**
|
|
120
141
|
|
|
121
142
|
```bash
|
|
@@ -138,7 +159,9 @@ npx @kadaliao/geektime-downloader \
|
|
|
138
159
|
|
|
139
160
|
下载完成后,会在输出目录生成以下文件:
|
|
140
161
|
|
|
141
|
-
###
|
|
162
|
+
### PDF 格式(--format pdf 或 both)
|
|
163
|
+
|
|
164
|
+
**单独章节 PDF(始终生成)**
|
|
142
165
|
|
|
143
166
|
```
|
|
144
167
|
001_开篇词___想吃透架构?你得看看真实、接地气的架构案例.pdf
|
|
@@ -150,7 +173,7 @@ npx @kadaliao/geektime-downloader \
|
|
|
150
173
|
- 自动清理非法字符
|
|
151
174
|
- 限制文件名长度
|
|
152
175
|
|
|
153
|
-
|
|
176
|
+
**合并后的 PDF(默认生成)**
|
|
154
177
|
|
|
155
178
|
```
|
|
156
179
|
专栏名称.pdf
|
|
@@ -159,8 +182,21 @@ npx @kadaliao/geektime-downloader \
|
|
|
159
182
|
- 默认会将所有章节合并为一个完整的 PDF 文件
|
|
160
183
|
- 文件名为专栏的标题(自动从 API 获取)
|
|
161
184
|
- 包含所有成功下载的章节,按顺序排列
|
|
185
|
+
- 自动添加书签导航
|
|
162
186
|
- 如不需要合并版本,使用 `--no-merge` 选项
|
|
163
187
|
|
|
188
|
+
### EPUB 格式(--format epub 或 both)
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
专栏名称.epub
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
- 标准 EPUB 3 格式
|
|
195
|
+
- 完整的目录导航
|
|
196
|
+
- 响应式排版,适合各种阅读器
|
|
197
|
+
- 自动处理图片和代码块样式
|
|
198
|
+
- 文件体积通常小于 PDF
|
|
199
|
+
|
|
164
200
|
## ⚙️ 配置方式
|
|
165
201
|
|
|
166
202
|
### 优先级
|
|
@@ -274,6 +310,7 @@ geektime-downloader/
|
|
|
274
310
|
- **Chalk**: 彩色输出
|
|
275
311
|
- **Ora**: 进度提示
|
|
276
312
|
- **pdf-lib**: PDF 文档操作和合并
|
|
313
|
+
- **epub-gen-memory**: EPUB 电子书生成
|
|
277
314
|
|
|
278
315
|
## 📄 License
|
|
279
316
|
|