comic-book-dl
Version:
69 lines (68 loc) • 2.51 kB
JavaScript
import { logger } from './utils/index.js';
import { run } from './core.js';
import { scanFolder } from './lib/download.js';
export function echoErrorMsg(bookName, chaptersList, errorList, isShowDetails = false) {
const errChaptersMsg = [];
errorList.forEach((item) => {
const errChapter = errChaptersMsg.find(msg => {
return msg.chapterName === item.chapter.name;
});
if (errChapter && item.imgUrl) {
errChapter.imgList.push(item.imgUrl);
}
else {
errChaptersMsg.push({
chapterName: item.chapter.name,
imgList: item.imgUrl ? [item.imgUrl] : []
});
}
});
logger.error(`《${bookName}》本次执行总数${chaptersList.length}话,✕ 失败${errChaptersMsg.length}话`);
for (const errInfo of errChaptersMsg) {
logger.error(` └── ✕ ${errInfo.chapterName}`);
if (isShowDetails) {
errInfo.imgList.forEach(imgUrl => {
logger.error(` └── ${imgUrl}`);
});
}
}
}
export async function main(config) {
const bookInfoList = await scanFolder(config.bookPath);
const existedBookInfo = bookInfoList.find(bookInfo => {
return bookInfo.rawUrl === config.targetUrl;
});
if (existedBookInfo)
config.targetUrl = existedBookInfo.url;
const { ignoreConsole } = config;
await run(config, {
parseErr() {
if (ignoreConsole)
return;
logger.error('× 请输入正确的url... o(╥﹏╥)o');
},
start(bookName) {
if (ignoreConsole)
return;
logger.info(`开始下载 《${bookName}》`);
},
downloadInterrupted() {
if (ignoreConsole)
return;
logger.info('根据上次数据继续断点下载');
},
error(...args) {
if (ignoreConsole)
return;
echoErrorMsg(...args, true);
logger.error('o(╥﹏╥)o 由于网络波动或链接失效以上下载失败,可重新执行命令重试(PS:不会影响已下载成功的数据)');
},
success(bookName, bookDistPath) {
if (ignoreConsole)
return;
logger.info(`√ 已完成: ${bookDistPath}`);
logger.info('(つ•̀ω•́)つ 欢迎star: https://github.com/gxr404/comic-book-dl');
}
});
process.exit(0);
}