[cookies] Throttle progress-bar

Closes #3710
This commit is contained in:
pukkandan 2022-05-12 10:54:49 +05:30
parent 8dcce6a89c
commit 2e4585da92
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39
1 changed files with 10 additions and 4 deletions

View File

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