X-Git-Url: https://git.mxchange.org/?p=quix0rs-apt-p2p.git;a=blobdiff_plain;f=apt_p2p%2Fstats.py;h=06e291bd154a21b4e797713b3082b4829821262f;hp=640c57f373a3170c7a2666c92542e81e58990906;hb=a9f0deccc4673d5332622ce40407ff009af6c8a3;hpb=24845555abc95ac759420d1ca8c67c5eb5512fc2 diff --git a/apt_p2p/stats.py b/apt_p2p/stats.py index 640c57f..06e291b 100644 --- a/apt_p2p/stats.py +++ b/apt_p2p/stats.py @@ -4,7 +4,7 @@ from datetime import datetime, timedelta from StringIO import StringIO -from util import byte_format +from util import uncompact, byte_format class StatsLogger: """Store the statistics for the Khashmir DHT. @@ -39,8 +39,7 @@ class StatsLogger: """ # Database self.db = db - self.lastDBUpdate = datetime.now() - self.hashes, self.files = self.db.dbStats() + self.hashes, self.files = 0, 0 # Transport self.mirrorDown = 0L @@ -61,17 +60,6 @@ class StatsLogger: } self.db.saveStats(stats) - def dbStats(self): - """Collect some statistics about the database. - - @rtype: (C{int}, C{int}) - @return: the number of keys and values in the database - """ - if datetime.now() - self.lastDBUpdate > timedelta(minutes = 1): - self.lastDBUpdate = datetime.now() - self.hashes, self.files = self.db.keyStats() - return (self.hashes, self.files) - def formatHTML(self, contactAddress): """Gather statistics for the DHT and format them for display in a browser. @@ -79,7 +67,7 @@ class StatsLogger: @rtype: C{string} @return: the stats, formatted for display in the body of an HTML page """ - self.dbStats() + self.hashes, self.files = self.db.dbStats() out = StringIO() out.write('

Downloader Statistics

\n') @@ -89,7 +77,7 @@ class StatsLogger: # General out.write("\n") out.write("\n") - out.write("\n') + out.write("\n') out.write("

General

Value
Contact" + str(contactAdress) + '
Contact" + str(uncompact(contactAddress)) + '
\n") out.write('\n') @@ -110,22 +98,22 @@ class StatsLogger: out.write("" + byte_format(self.peerUp) + '') out.write("Session Ratio") out.write("%0.2f%%" % - (float(self.mirrorDown) / float(self.mirrorDown + self.peerDown), )) + (100.0 * float(self.mirrorDown) / float(max(self.mirrorDown + self.peerDown, 1)), )) out.write("%0.2f%%" % - (float(self.peerDown) / float(self.mirrorDown + self.peerDown), )) - out.write("%0.2f%%" % - (float(self.peerUp) / float(self.peerDown), )) + (100.0 * float(self.peerDown) / float(max(self.mirrorDown + self.peerDown, 1)), )) + out.write("%0.2f%%" % + (100.0 * float(self.peerUp) / float(max(self.mirrorDown + self.peerDown, 1)), )) out.write("All-Time") out.write("" + byte_format(self.mirrorAllDown) + '') out.write("" + byte_format(self.peerAllDown) + '') out.write("" + byte_format(self.peerAllUp) + '') out.write("All-Time Ratio") out.write("%0.2f%%" % - (float(self.mirrorAllDown) / float(self.mirrorAllDown + self.peerAllDown), )) + (100.0 * float(self.mirrorAllDown) / float(max(self.mirrorAllDown + self.peerAllDown, 1)), )) out.write("%0.2f%%" % - (float(self.peerAllDown) / float(self.mirrorAllDown + self.peerAllDown), )) - out.write("%0.2f%%" % - (float(self.peerAllUp) / float(self.peerAllDown), )) + (100.0 * float(self.peerAllDown) / float(max(self.mirrorAllDown + self.peerAllDown, 1)), )) + out.write("%0.2f%%" % + (100.0 * float(self.peerAllUp) / float(max(self.mirrorAllDown + self.peerAllDown, 1)), )) out.write("\n") out.write("\n") out.write("\n")