about summary refs log tree commit diff
path: root/youtube_dl/downloader
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-03-24 16:29:03 +0700
committerSergey M․ <dstftw@gmail.com>2018-03-24 16:35:21 +0700
commitf0298f653e2199d6e4488882e40eea8e31140d7e (patch)
tree1095af04e06d4c1e7aab796c51ae16ea907ecacb /youtube_dl/downloader
parent2ea212628e0ffc0d66858817841643c4579c5d9d (diff)
downloadyoutube-dl-f0298f653e2199d6e4488882e40eea8e31140d7e.tar.gz
youtube-dl-f0298f653e2199d6e4488882e40eea8e31140d7e.tar.xz
youtube-dl-f0298f653e2199d6e4488882e40eea8e31140d7e.zip
[downloader/external] Simplify finished progress hook reporting and add elapsed time (closes #10876)
Diffstat (limited to 'youtube_dl/downloader')
-rw-r--r--youtube_dl/downloader/external.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py
index 48c255ddc..958d00aac 100644
--- a/youtube_dl/downloader/external.py
+++ b/youtube_dl/downloader/external.py
@@ -1,9 +1,10 @@
 from __future__ import unicode_literals
 
 import os.path
+import re
 import subprocess
 import sys
-import re
+import time
 
 from .common import FileDownloader
 from ..compat import (
@@ -30,6 +31,7 @@ class ExternalFD(FileDownloader):
         tmpfilename = self.temp_name(filename)
 
         try:
+            started = time.time()
             retval = self._call_downloader(tmpfilename, info_dict)
         except KeyboardInterrupt:
             if not info_dict.get('is_live'):
@@ -41,21 +43,20 @@ class ExternalFD(FileDownloader):
             self.to_screen('[%s] Interrupted by user' % self.get_basename())
 
         if retval == 0:
-            if filename == '-':
-                self._hook_progress({
-                    'filename': filename,
-                    'status': 'finished',
-                })
-            else:
+            status = {
+                'filename': filename,
+                'status': 'finished',
+                'elapsed': time.time() - started,
+            }
+            if filename != '-':
                 fsize = os.path.getsize(encodeFilename(tmpfilename))
                 self.to_screen('\r[%s] Downloaded %s bytes' % (self.get_basename(), fsize))
                 self.try_rename(tmpfilename, filename)
-                self._hook_progress({
+                status.update({
                     'downloaded_bytes': fsize,
                     'total_bytes': fsize,
-                    'filename': filename,
-                    'status': 'finished',
                 })
+            self._hook_progress(status)
             return True
         else:
             self.to_stderr('\n')