Tsuk1ko / pxder

🖼 Download illusts from pixiv.net P站插画批量下载器
https://moe.best/projects/pxder.html
GNU General Public License v3.0
742 stars 78 forks source link

大批量下载时会卡住 #59

Closed EIGHTfs closed 2 years ago

EIGHTfs commented 2 years ago
setTimeout(_=>{
 reject('Promise time out');
}, timeout);

tools.js添加这段代码可以解决 超时时间要设置大一点,我测试1分钟比较合适 例如 async function download(dirpath, filename, url, axiosOption,errorTimeout) { console.time(filename) Fse.ensureDirSync(dirpath); axiosOption.responseType = 'stream';

const response = await Axios.create(axiosOption).get(global.cf ? url.replace('i.pximg.net', 'i-cf.pximg.net') : url.replace('i-cf.pximg.net', 'i.pximg.net'));
const data = response.data;

return new Promise((reslove, reject) => {
    data.pipe(Fse.createWriteStream(Path.join(dirpath, filename)));
    data.on('end', () => {
        console.timeEnd(filename)
        reslove(response);
    });
    data.on('error', reject);
    setTimeout(()=>{
        //console.warn(`Promise time out:${errorTimeout}`)
reject('Promise time out');
}, errorTimeout);
});

}