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