REFACTORING : reorganize update of detected APs
[wifihood] / wifiscanner / wifimap / replay.py
index ea471d7..3fced51 100644 (file)
@@ -72,22 +72,24 @@ class ReplayScanner ( gobject.GObject ) :
 
         newap = 0
         self.newaps = False
-        for mac,max_rss in self.scanlist.iteritems() :
+        for mac,rss in self.scanlist.iteritems() :
             stored = self.db.db.execute( "SELECT rss, lat, lon FROM ap WHERE mac='%s'" % mac ).fetchone()
-            if stored :
-                if not self.aps.has_key( mac ) :
-                    self.aps[ mac ] = list(stored[1:])
-                if stored[0] > max_rss :
-                    max_rss = stored[0]
-                self.db.update( mac , max_rss , self.tstamp , self.info[4:] )
+            if not self.aps.has_key( mac ) :
+                if stored :
+                    self.aps[mac] = tuple(stored[1:])
+                else :
+                    newap += 1
+                    self.db.add( mac , rss , self.tstamp , self.info[4:] )
+                    self.aps[mac] = tuple(self.info[4:6])
+                    continue
+
+            if stored[0] < rss :
                 self.oldpos[mac] = self.aps[mac][0] , self.aps[mac][1]
-            else :
-                newap += 1
-                if not self.aps.has_key( mac ) :
-                    self.aps[ mac ] = [ 0 , 0 ]
-                self.db.add( mac , max_rss , self.tstamp , self.info[4:] )
-            self.aps[mac][0] = self.info[4]
-            self.aps[mac][1] = self.info[5]
+                self.db.update( mac , rss , self.tstamp , self.info[4:] )
+                self.aps[mac] = tuple(self.info[4:6])
+            elif stored :
+                self.db.seen_update( mac , self.tstamp )
+
         if newap :
             self.newap += newap
             self.newaps = True