From e6414d00fc7442a1a0618acfd510d25f7db71566 Mon Sep 17 00:00:00 2001 From: deezerdl Date: Mon, 29 May 2017 10:00:16 +0000 Subject: [PATCH] added progres reporting --- youtube_dl/downloader/deezer.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/youtube_dl/downloader/deezer.py b/youtube_dl/downloader/deezer.py index 5b1a9351a..851098751 100644 --- a/youtube_dl/downloader/deezer.py +++ b/youtube_dl/downloader/deezer.py @@ -3,15 +3,18 @@ from __future__ import unicode_literals from ..blowfish import blowfish_cbc_decrypt from .common import FileDownloader from ..utils import sanitized_Request +import time -def decryptfile(fh, key, fo): +def decryptfile(fh, key, fo, progress, data_len): """ Decrypt data from file , and write to file . decrypt using blowfish with . Only every third 2048 byte block is encrypted. """ i = 0 + byte_counter = 0 + tstart = time.time() while True: data = fh.read(2048) if not data: @@ -22,6 +25,16 @@ def decryptfile(fh, key, fo): fo.write(data) i += 1 + byte_counter += len(data) + + progress._hook_progress({ + 'status': 'downloading', + 'downloaded_bytes': byte_counter, + 'total_bytes': data_len, + 'eta': progress.calc_eta(tstart, time.time(), data_len, byte_counter), + 'speed': progress.calc_speed(tstart, time.time(), byte_counter), + }) + class DeezerDownloader(FileDownloader): def real_download(self, filename, info_dict): @@ -30,4 +43,4 @@ class DeezerDownloader(FileDownloader): data = self.ydl.urlopen(request) with open(filename, "wb") as fo: - decryptfile(data, info_dict['key'], fo) + decryptfile(data, info_dict['key'], fo, self, int(data.info().get('Content-length', 0)))