- restore CTRL+C interrupt when downloading a package
git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1090 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
+55
-35
@@ -3941,7 +3941,7 @@ class FtpInterface:
|
||||
import ftplib
|
||||
self.ftplib = ftplib
|
||||
|
||||
self.currentText = ""
|
||||
self.oldprogress = 0.0
|
||||
|
||||
# import FTP modules
|
||||
socket.setdefaulttimeout(60)
|
||||
@@ -4118,7 +4118,7 @@ class FtpInterface:
|
||||
# create percentage
|
||||
myUploadPercentage = round((round(self.mykByteCount,1)/self.myFileSize)*100,1)
|
||||
myUploadSize = round(self.mykByteCount,1)
|
||||
if (myUploadPercentage < 100.1) and (myUploadSize <= self.myFileSize):
|
||||
if (myUploadPercentage > self.oldprogress+0.5) and (myUploadPercentage < 100.1) and (myUploadSize <= self.myFileSize):
|
||||
myUploadPercentage = str(myUploadPercentage)+"%"
|
||||
|
||||
# create text
|
||||
@@ -4128,6 +4128,8 @@ class FtpInterface:
|
||||
# XXX too slow, reimplement self.updateProgress and do whatever you want
|
||||
#self.Entropy.updateProgress(currentText, importance = 0, type = "info", back = True)
|
||||
|
||||
self.oldprogress = myUploadPercentage
|
||||
|
||||
def uploadFile(self,file,ascii = False):
|
||||
|
||||
def uploadFileAndUpdateProgress(buf):
|
||||
@@ -4255,20 +4257,8 @@ class urlFetcher:
|
||||
self.url = self.encodeUrl(self.url)
|
||||
self.pathToSave = pathToSave
|
||||
self.checksum = checksum
|
||||
self.resumed = False
|
||||
self.showSpeed = showSpeed
|
||||
self.bufferSize = 8192
|
||||
self.status = None
|
||||
self.remotefile = None
|
||||
self.downloadedsize = 0
|
||||
self.average = 0
|
||||
self.remotesize = 0
|
||||
# transfer status data
|
||||
self.startingposition = 0
|
||||
self.datatransfer = 0
|
||||
self.time_remaining = "(infinite)"
|
||||
self.elapsed = 0.0
|
||||
self.transferpollingtime = float(1)/4
|
||||
self.initVars()
|
||||
import entropyTools
|
||||
self.entropyTools = entropyTools
|
||||
|
||||
@@ -4293,7 +4283,25 @@ class urlFetcher:
|
||||
url = os.path.join(os.path.dirname(url),urllib.quote(os.path.basename(url)))
|
||||
return url
|
||||
|
||||
def initVars(self):
|
||||
self.resumed = False
|
||||
self.bufferSize = 8192
|
||||
self.status = None
|
||||
self.remotefile = None
|
||||
self.downloadedsize = 0
|
||||
self.average = 0
|
||||
self.remotesize = 0
|
||||
self.oldaverage = 0.0
|
||||
# transfer status data
|
||||
self.startingposition = 0
|
||||
self.datatransfer = 0
|
||||
self.time_remaining = "(infinite)"
|
||||
self.elapsed = 0.0
|
||||
self.updatestep = 0.2
|
||||
self.transferpollingtime = float(1)/4
|
||||
|
||||
def download(self):
|
||||
self.initVars()
|
||||
if self.showSpeed:
|
||||
self.speedUpdater = self.entropyTools.TimeScheduled(
|
||||
self.updateSpeedInfo,
|
||||
@@ -4308,6 +4316,9 @@ class urlFetcher:
|
||||
# get file size if available
|
||||
try:
|
||||
self.remotefile = urllib2.urlopen(self.url)
|
||||
except KeyboardInterrupt:
|
||||
self.close()
|
||||
raise
|
||||
except:
|
||||
self.close()
|
||||
self.status = "-3"
|
||||
@@ -4316,6 +4327,9 @@ class urlFetcher:
|
||||
try:
|
||||
self.remotesize = int(self.remotefile.headers.get("content-length"))
|
||||
self.remotefile.close()
|
||||
except KeyboardInterrupt:
|
||||
self.close()
|
||||
raise
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -4325,6 +4339,9 @@ class urlFetcher:
|
||||
if ((self.startingposition > 0) and (self.remotesize > 0)) and (self.startingposition < self.remotesize):
|
||||
try:
|
||||
request = urllib2.Request(self.url, headers = { "Range" : "bytes=" + str(self.startingposition) + "-" + str(self.remotesize) })
|
||||
except KeyboardInterrupt:
|
||||
self.close()
|
||||
raise
|
||||
except:
|
||||
pass
|
||||
elif (self.startingposition == self.remotesize):
|
||||
@@ -4347,6 +4364,9 @@ class urlFetcher:
|
||||
while rsx != '':
|
||||
try:
|
||||
rsx = self.remotefile.read(self.bufferSize)
|
||||
except KeyboardInterrupt:
|
||||
self.close()
|
||||
raise
|
||||
except:
|
||||
# python 2.4 timeouts go here
|
||||
self.close()
|
||||
@@ -4385,26 +4405,26 @@ class urlFetcher:
|
||||
barsize = 10
|
||||
bartext = "["
|
||||
curbarsize = 1
|
||||
#print average
|
||||
averagesize = (self.average*barsize)/100
|
||||
#print averagesize
|
||||
for y in range(averagesize):
|
||||
curbarsize += 1
|
||||
bartext += "="
|
||||
bartext += ">"
|
||||
diffbarsize = barsize-curbarsize
|
||||
for y in range(diffbarsize):
|
||||
bartext += " "
|
||||
if (self.showSpeed):
|
||||
bartext += "] => "+str(self.entropyTools.bytesIntoHuman(self.datatransfer))+"/sec ~ ETA: "+str(self.time_remaining)
|
||||
else:
|
||||
bartext += "]"
|
||||
average = str(self.average)
|
||||
if len(average) < 2:
|
||||
average = " "+average
|
||||
currentText += " <-> "+average+"% "+bartext
|
||||
# print !
|
||||
print_info(currentText,back = True)
|
||||
if self.average > self.oldaverage+self.updatestep:
|
||||
averagesize = (self.average*barsize)/100
|
||||
for y in range(averagesize):
|
||||
curbarsize += 1
|
||||
bartext += "="
|
||||
bartext += ">"
|
||||
diffbarsize = barsize-curbarsize
|
||||
for y in range(diffbarsize):
|
||||
bartext += " "
|
||||
if (self.showSpeed):
|
||||
bartext += "] => "+str(self.entropyTools.bytesIntoHuman(self.datatransfer))+"/sec ~ ETA: "+str(self.time_remaining)
|
||||
else:
|
||||
bartext += "]"
|
||||
average = str(self.average)
|
||||
if len(average) < 2:
|
||||
average = " "+average
|
||||
currentText += " <-> "+average+"% "+bartext
|
||||
# print !
|
||||
print_info(currentText,back = True)
|
||||
self.oldaverage = self.average
|
||||
|
||||
|
||||
def close(self):
|
||||
|
||||
Reference in New Issue
Block a user