From 4ca5b1061ff37698ddc06c5fd0ba3172f15db0a7 Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Thu, 18 Apr 2013 01:31:18 +0200 Subject: [PATCH] using Content-Range; workaround of #160 --- src/you_get/common.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/you_get/common.py b/src/you_get/common.py index e963cf90..fc91186b 100644 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -207,9 +207,17 @@ def url_save(url, filepath, bar, refer = None, is_part = False, faker = False): headers['Referer'] = refer response = request.urlopen(request.Request(url, headers = headers), None) + try: + range_start = int(response.headers['content-range'][6:].split('/')[0].split('-')[0]) + end_length = end = int(response.headers['content-range'][6:].split('/')[1]) + range_length = end_length - range_start + except: + range_length = int(response.headers['content-length']) - if file_size != received + int(response.headers['content-length']): + if file_size != received + range_length: received = 0 + if bar: + bar.received = 0 open_mode = 'wb' with open(temp_filepath, open_mode) as output: