[cookies] Throttle progress-bar

Closes #3710
pull/3719/head
pukkandan 3 years ago
parent 8dcce6a89c
commit 2e4585da92
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39

@ -7,6 +7,7 @@ import struct
import subprocess import subprocess
import sys import sys
import tempfile import tempfile
import time
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from enum import Enum, auto from enum import Enum, auto
from hashlib import pbkdf2_hmac from hashlib import pbkdf2_hmac
@ -49,6 +50,14 @@ class YDLLogger:
if self._ydl: if self._ydl:
self._ydl.report_error(message) self._ydl.report_error(message)
class ProgressBar(MultilinePrinter):
_DELAY, _timer = 0.1, 0
def print(self, message):
if time.time() - self._timer > self._DELAY:
self.print_at_line(f'[Cookies] {message}', 0)
self._timer = time.time()
def progress_bar(self): def progress_bar(self):
"""Return a context manager with a print method. (Optional)""" """Return a context manager with a print method. (Optional)"""
# Do not print to files/pipes, loggers, or when --no-progress is used # Do not print to files/pipes, loggers, or when --no-progress is used
@ -60,10 +69,7 @@ class YDLLogger:
return return
except BaseException: except BaseException:
return return
return self.ProgressBar(file, preserve_output=False)
printer = MultilinePrinter(file, preserve_output=False)
printer.print = lambda message: printer.print_at_line(f'[Cookies] {message}', 0)
return printer
def _create_progress_bar(logger): def _create_progress_bar(logger):

Loading…
Cancel
Save