浏览代码

Рефакторинг

Book Pauk 6 年之前
父节点
当前提交
81244b75cd
共有 1 个文件被更改,包括 12 次插入6 次删除
  1. 12 6
      server/core/FileDownloader.js

+ 12 - 6
server/core/FileDownloader.js

@@ -10,21 +10,27 @@ class FileDownloader {
 
 
         const response = await got(url, {method: 'HEAD'});
         const response = await got(url, {method: 'HEAD'});
 
 
-        let estSize = 100000;
+        let estSize = 0;
         if (response.headers['content-length']) {
         if (response.headers['content-length']) {
             estSize = response.headers['content-length'];
             estSize = response.headers['content-length'];
         }
         }
 
 
+        let prevProg = 0;
         const request = got(url, {encoding: null}).on('downloadProgress', progress => {
         const request = got(url, {encoding: null}).on('downloadProgress', progress => {
             if (progress.transferred > maxDownloadSize) {
             if (progress.transferred > maxDownloadSize) {
                 errMes = 'file too big';
                 errMes = 'file too big';
                 request.cancel();
                 request.cancel();
             }
             }
-            const prog = Math.round(progress.transferred/estSize*100);
-            if (callback)
-                callback((prog > 100 ? 100 : prog));
-            if (prog > 100)
-                estSize *= 1.5;
+
+            let prog = 0;
+            if (estSize)
+                prog = Math.round(progress.transferred/estSize*100);
+            else if (progress.transferred)
+                prog = Math.round(progress.transferred/(progress.transferred + 100000)*100);
+
+            if (prog != prevProg && callback)
+                callback(prog);
+            prevProg = prog;
         });
         });