r412 - /debtorrent/trunk/DebTorrent/BT1/track.py

camrdale-guest at users.alioth.debian.org camrdale-guest at users.alioth.debian.org
Sun Mar 1 20:47:56 UTC 2009


Author: camrdale-guest
Date: Sun Mar  1 20:47:55 2009
New Revision: 412

URL: http://svn.debian.org/wsvn/debtorrent/?sc=1&rev=412
Log:
Use longs to store the tracker's statistics.

Modified:
    debtorrent/trunk/DebTorrent/BT1/track.py

Modified: debtorrent/trunk/DebTorrent/BT1/track.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/track.py?rev=412&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/track.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/track.py Sun Mar  1 20:47:55 2009
@@ -169,10 +169,10 @@
                 completed = y.get('completed')
                 if type(completed) not in (IntType,LongType) or completed < 0:
                     raise ValueError
-                uploaded = y.get('uploaded', 0)
+                uploaded = y.get('uploaded', 0L)
                 if type(uploaded) not in (IntType,LongType) or uploaded < 0:
                     raise ValueError
-                downloaded = y.get('downloaded', 0)
+                downloaded = y.get('downloaded', 0L)
                 if type(downloaded) not in (IntType,LongType) or downloaded < 0:
                     raise ValueError
         elif cname == 'allowed':
@@ -210,6 +210,8 @@
     """
     
     tempstate = configdir.getState()
+    if not tempstate:
+        tempstate = {'version': 0}
     if tempstate:
         version = tempstate.get('version', 0)
         # Upgrade from the previous version
@@ -219,8 +221,8 @@
                 if 'completed' in tempstate:
                     for hash, num in tempstate['completed'].items():
                         tempstate['stats'][hash] = {'completed': num,
-                                                    'downloaded': 0,
-                                                    'uploaded': 0}
+                                                    'downloaded': 0L,
+                                                    'uploaded': 0L}
                     del tempstate['completed']
                 tempstate['version'] = 1
                 version = 1
@@ -233,8 +235,8 @@
         if version < 2:
             try:
                 tempstate['stats']['global'] = {'completed': 0,
-                                                'downloaded': 0,
-                                                'uploaded': 0}
+                                                'downloaded': 0L,
+                                                'uploaded': 0L}
                 tempstate['version'] = 2
                 version = 2
                 logger.info('successfully upgraded to state file v2')
@@ -246,12 +248,19 @@
         # Test the state to make sure it's not been corrupted
         try:
             statefiletemplate(tempstate)
+            # Convert the stats to longs
+            for stat in tempstate['stats'].values():
+                stat['downloaded'] = long(stat['downloaded'])
+                stat['uploaded'] = long(stat['uploaded'])
             logger.info('successfully loaded the previous state file')
         except:
             logger.exception('statefile corrupt; resetting')
-            tempstate = {'version': 1}
-    else:
-        tempstate = {'version': 1}
+            tempstate = {'version': 2,
+                         'stats': {'global': {'completed': 0,
+                                              'downloaded': 0L,
+                                              'uploaded': 0L}
+                                  }
+                        }
     
     return tempstate
 
@@ -764,9 +773,9 @@
                 # Display a table row for each torrent
                 for name,hash in names:
                     # Get the stats for this torrent
-                    uploaded = self.stats.get(hash, {}).get('uploaded', 0)
+                    uploaded = self.stats.get(hash, {}).get('uploaded', 0L)
                     total_uploaded += uploaded
-                    downloaded = self.stats.get(hash, {}).get('downloaded', 0)
+                    downloaded = self.stats.get(hash, {}).get('downloaded', 0L)
                     total_downloaded += downloaded
                     saved = 0.0
                     if downloaded > 0:
@@ -1644,9 +1653,9 @@
                     self.allowed is None or not self.allowed.has_key(key) ) and (
                     self.keep_dead != 1 or (self.stats.get(key, {}).get('uploaded', 0) <= 0 and
                                             self.stats.get(key, {}).get('downloaded', 0) <= 0)):
-                self.stats['global']['downloaded'] += self.stats.get(key, {}).get('downloaded', 0)
-                self.stats['global']['uploaded'] += self.stats.get(key, {}).get('uploaded', 0)
-                self.stats['global']['completed'] += self.stats.get(key, {}).get('completed', 0)
+                self.stats['global']['downloaded'] += self.stats.get(key, {}).get('downloaded', 0L)
+                self.stats['global']['uploaded'] += self.stats.get(key, {}).get('uploaded', 0L)
+                self.stats['global']['completed'] += self.stats.get(key, {}).get('completed', 0L)
                 del self.times[key]
                 del self.downloads[key]
                 del self.seedcount[key]




More information about the Debtorrent-commits mailing list