r306 - in branches/rewrite: . src
Otavio Salvador
partial-mirror-devel@lists.alioth.debian.org
Fri, 12 Nov 2004 11:51:05 -0700
Author: otavio
Date: Fri Nov 12 11:51:05 2004
New Revision: 306
Modified:
branches/rewrite/ (props changed)
branches/rewrite/src/DisplayStatus.py
Log:
r252@nurf: otavio | 2004-11-12T18:41:29.261476Z
Refactory.
Modified: branches/rewrite/src/DisplayStatus.py
==============================================================================
--- branches/rewrite/src/DisplayStatus.py (original)
+++ branches/rewrite/src/DisplayStatus.py Fri Nov 12 11:51:05 2004
@@ -78,22 +78,8 @@
class TextDisplayStatus(BaseDisplayStatus):
- def screenwidth(self):
- return struct.unpack("hhhh", fcntl.ioctl(1, termios.TIOCGWINSZ, " "))[1]
-
- def start(self, url, size):
- BaseDisplayStatus.start(self, url, size)
- sw = self.screenwidth()
- sys.stdout.write("\r" + " " * sw + "\rGetting %d: %s\n" % (self._items[url]['id'], url))
- sys.stdout.flush()
-
- def update(self, url, current):
- BaseDisplayStatus.update(self, url, current)
- sw = self.screenwidth()
- if current == self._items[url]['size']:
- sys.stdout.write("\r" + " " * sw + "\rDone: %s\n" % url)
- self._items[url]['finished'] = True
- sys.stdout.write("\r" + " " * sw + "\r")
+ def __print_status(self):
+ self.__clear_line()
for url in self._items.keys():
if self._items[url]['finished'] or self._items[url]['errored']:
continue
@@ -104,11 +90,31 @@
self._items[url]['current']*100/(self._items[url]['size'])))
except ZeroDivisionError:
pass
+ sys.stdout.flush()
+ def __clear_line(self):
+ sw = struct.unpack("hhhh", fcntl.ioctl(1, termios.TIOCGWINSZ, " "))[1]
+ sys.stdout.write("\r" + " " * sw + "\r")
+
+ def start(self, url, size):
+ BaseDisplayStatus.start(self, url, size)
+ self.__clear_line()
+ sys.stdout.write("\rGetting %d: %s\n" % (self._items[url]['id'], url))
sys.stdout.flush()
+
+ def update(self, url, current):
+ BaseDisplayStatus.update(self, url, current)
+ self.__clear_line()
+ if current == self._items[url]['size'] and \
+ not self._items[url]['finished']:
+ sys.stdout.write("\rDone: %s\n" % url)
+ self._items[url]['finished'] = True
+ self.__print_status()
def errored(self, url, message):
- BaseDisplayStatus.errored(self, url, message)
- sw = self.screenwidth()
- sys.stdout.write("\r" + " " * sw + "\rFailed: %s %s\n" % (url, message))
- sys.stdout.flush()
+ if not self._items.has_key(url) or not self._items[url]['errored']:
+ BaseDisplayStatus.errored(self, url, message)
+ self.__clear_line()
+ sys.stdout.write("\rFailed: %s %s\n" % (url, message))
+ sys.stdout.flush()
+