Correctly clear the line before writing a new status line
authorPhilipp Hagemeister <phihag@phihag.de>
Tue, 30 Apr 2013 17:42:58 +0000 (19:42 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Tue, 30 Apr 2013 17:42:58 +0000 (19:42 +0200)
youtube_dl/FileDownloader.py

index 80c2546ea9b571005088716a63dcf3291ca384be..a67d3c902e3facfca27e0b8546d3f3bc491df4a7 100644 (file)
@@ -345,12 +345,13 @@ class FileDownloader(object):
         """Report download progress."""
         if self.params.get('noprogress', False):
             return
+        clear_line = (u'\x1b[K' if sys.stderr.isatty() and os.name != 'nt' else u'')
         if self.params.get('progress_with_newline', False):
             self.to_screen(u'[download] %s of %s at %s ETA %s' %
                 (percent_str, data_len_str, speed_str, eta_str))
         else:
-            self.to_screen(u'\r[download] %s of %s at %s ETA %s' %
-                (percent_str, data_len_str, speed_str, eta_str), skip_eol=True)
+            self.to_screen(u'\r%s[download] %s of %s at %s ETA %s' %
+                (clear_line, percent_str, data_len_str, speed_str, eta_str), skip_eol=True)
         self.to_cons_title(u'youtube-dl - %s of %s at %s ETA %s' %
                 (percent_str.strip(), data_len_str.strip(), speed_str.strip(), eta_str.strip()))