added progres reporting
This commit is contained in:
parent
12ca30db87
commit
e6414d00fc
@ -3,15 +3,18 @@ from __future__ import unicode_literals
|
|||||||
from ..blowfish import blowfish_cbc_decrypt
|
from ..blowfish import blowfish_cbc_decrypt
|
||||||
from .common import FileDownloader
|
from .common import FileDownloader
|
||||||
from ..utils import sanitized_Request
|
from ..utils import sanitized_Request
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
def decryptfile(fh, key, fo):
|
def decryptfile(fh, key, fo, progress, data_len):
|
||||||
"""
|
"""
|
||||||
Decrypt data from file <fh>, and write to file <fo>.
|
Decrypt data from file <fh>, and write to file <fo>.
|
||||||
decrypt using blowfish with <key>.
|
decrypt using blowfish with <key>.
|
||||||
Only every third 2048 byte block is encrypted.
|
Only every third 2048 byte block is encrypted.
|
||||||
"""
|
"""
|
||||||
i = 0
|
i = 0
|
||||||
|
byte_counter = 0
|
||||||
|
tstart = time.time()
|
||||||
while True:
|
while True:
|
||||||
data = fh.read(2048)
|
data = fh.read(2048)
|
||||||
if not data:
|
if not data:
|
||||||
@ -22,6 +25,16 @@ def decryptfile(fh, key, fo):
|
|||||||
fo.write(data)
|
fo.write(data)
|
||||||
i += 1
|
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):
|
class DeezerDownloader(FileDownloader):
|
||||||
def real_download(self, filename, info_dict):
|
def real_download(self, filename, info_dict):
|
||||||
@ -30,4 +43,4 @@ class DeezerDownloader(FileDownloader):
|
|||||||
data = self.ydl.urlopen(request)
|
data = self.ydl.urlopen(request)
|
||||||
|
|
||||||
with open(filename, "wb") as fo:
|
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)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user