[tor-commits] [bridgedb/master] 5482 - Add new fields to BridgeHistory table

aagbsn at torproject.org aagbsn at torproject.org
Wed Apr 17 00:26:44 UTC 2013


commit b0edf1226753b7a6f78e5b921fc4fd22892b882f
Author: aagbsn <aagbsn at extc.org>
Date:   Mon Nov 12 09:44:47 2012 -0800

    5482 - Add new fields to BridgeHistory table
---
 lib/bridgedb/Storage.py |   31 ++++++++++++++++++++-----------
 1 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/lib/bridgedb/Storage.py b/lib/bridgedb/Storage.py
index 8a07671..b0dada6 100644
--- a/lib/bridgedb/Storage.py
+++ b/lib/bridgedb/Storage.py
@@ -168,11 +168,12 @@ SCHEMA_2TO3_SCRIPT = """
      port INT,
      weightedUptime LONG,
      weightedTime LONG,
-     weightedRunLength DOUBLE,
+     weightedRunLength LONG,
      totalRunWeights DOUBLE,
      lastSeenWithDifferentAddressAndPort LONG,
      lastSeenWithThisAddressAndPort LONG,
-     lastDiscountedHistoryValues LONG
+     lastDiscountedHistoryValues LONG,
+     lastUpdatedWeightedTime LONG
  );
 
  CREATE INDEX BridgeHistoryIndex on BridgeHistory ( fingerprint );
@@ -384,14 +385,15 @@ class Database:
 
         cur.execute("DELETE FROM WarnedEmails WHERE when_warned < ?", (t,))
 
-    def updateIntoBridgeHistory(self, bhe):
+    def updateIntoBridgeHistory(self, bh):
         cur = self._cur
-        cur.execute("INSERT OR REPLACE INTO BridgeHistory values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
-                (bhe.fingerprint, str(bhe.ip), bhe.port,
-                bhe.weightedUptime, bhe.weightedTime, bhe.weightedRunLength,
-                bhe.totalRunWeights, bhe.lastSeenWithDifferentAddressAndPort,
-                bhe.lastSeenWithThisAddressAndPort, bhe.lastDiscountedHistoryValues))
-        return bhe
+        cur.execute("INSERT OR REPLACE INTO BridgeHistory values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+                (bh.fingerprint, str(bh.ip), bh.port,
+                bh.weightedUptime, bh.weightedTime, bh.weightedRunLength,
+                bh.totalRunWeights, bh.lastSeenWithDifferentAddressAndPort,
+                bh.lastSeenWithThisAddressAndPort, bh.lastDiscountedHistoryValues,
+                bh.lastUpdatedWeightedTime))
+        return bh
 
     def delBridgeHistory(self, fp):
         cur = self._cur
@@ -403,15 +405,22 @@ class Database:
         h = cur.fetchone()
         if h is None: 
             return
-        return BridgeHistory(h[0],IPAddress(h[1]),h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9])
+        return BridgeHistory(h[0],IPAddress(h[1]),h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10])
 
     def getAllBridgeHistory(self):
         cur = self._cur
         v = cur.execute("SELECT * FROM BridgeHistory")
         if v is None: return
+        fp = {}
         for h in v:
-            yield BridgeHistory(h[0],IPAddress(h[1]),h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9])
+            yield BridgeHistory(h[0],IPAddress(h[1]),h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10])
 
+    def getBridgesLastUpdatedBefore(self, statusPublicationMillis):
+        cur = self._cur
+        v = cur.execute("SELECT * FROM BridgeHistory WHERE lastUpdatedWeightedTime < ?", (statusPublicationMillis,))
+        if v is None: return
+        for h in v:
+            yield BridgeHistory(h[0],IPAddress(h[1]),h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10])
 def openDatabase(sqlite_file):
     conn = sqlite3.Connection(sqlite_file)
     cur = conn.cursor()





More information about the tor-commits mailing list