Skip to content

Commit 47aaec9

Browse files
author
jjeejj
committed
下载专栏音频文件
1 parent 399d9a9 commit 47aaec9

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

columnArticleList.js

+12
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ const superagent = require('superagent');
44
const utils = require('./utils');
55
const path = require('path');
66
const generaterPdf = require('./generaterPdf.js');
7+
const downloadAudio = require('./downloadAudio.js');
78

9+
/**
10+
* 执行方法
11+
*/
812
(async function getColumnArticleList (firstArticalId){
913
await utils.createDir('geektime_'+config.columnName);
1014
console.log('专栏文章链接开始获取');
@@ -46,6 +50,14 @@ const generaterPdf = require('./generaterPdf.js');
4650
columnArticle.article_title + '.pdf',
4751
path.resolve(__dirname, 'geektime_' + config.columnName)
4852
);
53+
// 是否下载音频
54+
if (config.isdownloadVideo) {
55+
await downloadAudio(
56+
columnArticle.audio_download_url,
57+
columnArticle.article_title + '.mp3',
58+
path.resolve(__dirname, 'geektime_' + config.columnName)
59+
);
60+
};
4961
// 判断是否还有下一篇文章
5062
let neighborRight = columnArticle.neighbors.right;
5163
if (neighborRight && neighborRight.id){

downloadAudio.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const path = require('path');
2+
const superagent = require('superagent');
3+
const fs = require('fs');
4+
/**
5+
* 下载对应的音频文件
6+
* @param {String} url 音频文件的地址
7+
* @param {String} fileName 文件名称
8+
* @param {String} fileDir 保存文件夹地址
9+
*/
10+
const downloadAudio = async (url, fileName, fileDir = __dirname) => {
11+
console.log('开始下载 音频文件: ', fileName);
12+
if (!url) throw '请传入一个音频地址';
13+
if (path.extname(fileName) !== '.mp3'){ // 判断传的文件后缀是否是 mp3
14+
fileName = fileName + '.mp3';
15+
};
16+
let filePath = path.resolve(fileDir, fileName);
17+
let writeStream = fs.createWriteStream(filePath);
18+
superagent.get(url).pipe(writeStream);
19+
console.log('结束下载 音频文件: ', fileName);
20+
};
21+
22+
// downloadAudio(
23+
// 'https://static001.geekbang.org/resource/audio/e7/b1/e7ffca8ca5b09224969b3237723a0bb1.mp3',
24+
// '305 | 学会几个系统调用:咱们公司能接哪些类型的项目?.mp3',
25+
// '/Users/jiang/Project/geektime2pdf/geektime_趣谈Linux操作系统')
26+
27+
module.exports = downloadAudio;

0 commit comments

Comments
 (0)