From 040c929bdcfc32d54ca7735cb79d0901077d1f9a Mon Sep 17 00:00:00 2001 From: Bigsk Date: Sat, 7 Nov 2020 22:26:28 +0800 Subject: [PATCH] Fixed a UA bug --- 1.iso | 0 main.py | 23 +++++++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 1.iso diff --git a/1.iso b/1.iso new file mode 100644 index 0000000..e69de29 diff --git a/main.py b/main.py index b31d36e..93cc09c 100644 --- a/main.py +++ b/main.py @@ -5,15 +5,16 @@ import os,requests,json,time,sys,psutil,string,platform,glob,getpass,shutil,hash class MultiThreadDownload(threading.Thread): '''The Class for Multi-Thread Download''' '''Get from Internet and improved by Ghink Network Studio''' - def __init__(self,url,startpos,endpos,f): + def __init__(self,url,startpos,endpos,f,UA): super(MultiThreadDownload,self).__init__() - self.url = url - self.startpos = startpos - self.endpos = endpos - self.fd = f + self.url=url + self.startpos=startpos + self.endpos=endpos + self.fd=f + self.UA=UA def download(self): - headers = {"Range":"bytes=%s-%s"%(self.startpos,self.endpos)} - res = requests.get(self.url,headers=headers) + headers=self.UA.update({"Range":"bytes=%s-%s"%(self.startpos,self.endpos)}) + res=requests.get(self.url,headers=headers) self.fd.seek(self.startpos) self.fd.write(res.content) def run(self): @@ -137,15 +138,13 @@ class GMCLCore(object): else: url = DownloadFrom filename = DownloadTo - filesize = int(requests.head(url).headers['Content-Length']) - + filesize = int(requests.head(url,headers=self.__UserAgent).headers['Content-Length']) threadnum = ThreadNum threading.BoundedSemaphore(threadnum) step = filesize // threadnum mtd_list = [] start = 0 end = -1 - tempf = open(filename,'w') tempf.close() with open(filename,'rb+') as f: @@ -157,9 +156,9 @@ class GMCLCore(object): end = filesize dup = os.dup(fileno) fd = os.fdopen(dup,'rb+',-1) - t = MultiThreadDownload(url,start,end,fd) + t = MultiThreadDownload(url,start,end,fd,self.__UserAgent) t.start() mtd_list.append(t) - for i in mtd_list: + for i in mtd_list: i.join()