Merge branch 'progress-as-hook2'
authorPhilipp Hagemeister <phihag@phihag.de>
Tue, 17 Feb 2015 22:41:48 +0000 (23:41 +0100)
committerPhilipp Hagemeister <phihag@phihag.de>
Tue, 17 Feb 2015 22:41:48 +0000 (23:41 +0100)
1  2 
youtube_dl/downloader/http.py

index 25032ad4edcd5c8be6553a4c3778ea8c3c293682,6dec528f268c9da4eb8ac534b2da8f247ec7cf4b..2e3dac8251dbaf5d8b3e1a90bc459f362d14f72e
@@@ -1,10 -1,11 +1,10 @@@
  from __future__ import unicode_literals
  
 +import errno
  import os
 +import socket
  import time
  
 -from socket import error as SocketError
 -import errno
 -
  from .common import FileDownloader
  from ..compat import (
      compat_urllib_request,
@@@ -14,7 -15,6 +14,6 @@@ from ..utils import 
      ContentTooShortError,
      encodeFilename,
      sanitize_open,
-     format_bytes,
  )
  
  
@@@ -101,7 -101,7 +100,7 @@@ class HttpFD(FileDownloader)
                              resume_len = 0
                              open_mode = 'wb'
                              break
 -            except SocketError as e:
 +            except socket.error as e:
                  if e.errno != errno.ECONNRESET:
                      # Connection reset is no problem, just retry
                      raise
                  self.to_screen('\r[download] File is larger than max-filesize (%s bytes > %s bytes). Aborting.' % (data_len, max_data_len))
                  return False
  
-         data_len_str = format_bytes(data_len)
          byte_counter = 0 + resume_len
          block_size = self.params.get('buffersize', 1024)
          start = time.time()
              # Progress message
              speed = self.calc_speed(start, now, byte_counter - resume_len)
              if data_len is None:
-                 eta = percent = None
+                 eta = None
              else:
-                 percent = self.calc_percent(byte_counter, data_len)
                  eta = self.calc_eta(start, time.time(), data_len - resume_len, byte_counter - resume_len)
-             self.report_progress(percent, data_len_str, speed, eta)
  
              self._hook_progress({
+                 'status': 'downloading',
                  'downloaded_bytes': byte_counter,
                  'total_bytes': data_len,
                  'tmpfilename': tmpfilename,
                  'filename': filename,
-                 'status': 'downloading',
                  'eta': eta,
                  'speed': speed,
+                 'elapsed': now - start,
              })
  
              if is_test and byte_counter == data_len:
              return False
          if tmpfilename != '-':
              stream.close()
-         self.report_finish(data_len_str, (time.time() - start))
+         self._hook_progress({
+             'downloaded_bytes': byte_counter,
+             'total_bytes': data_len,
+             'tmpfilename': tmpfilename,
+             'status': 'error',
+         })
          if data_len is not None and byte_counter != data_len:
              raise ContentTooShortError(byte_counter, int(data_len))
          self.try_rename(tmpfilename, filename)
              'total_bytes': byte_counter,
              'filename': filename,
              'status': 'finished',
+             'elapsed': time.time() - start,
          })
  
          return True