Browse Source

Add minimum distance for updates

Hans Nielsen 13 years ago
parent
commit
9ee7621169
1 changed files with 9 additions and 4 deletions
  1. 9 4
      locationbot.py

+ 9 - 4
locationbot.py

@@ -33,7 +33,7 @@ except ImportError:
 
 class LocationBot(ircbot.SingleServerIRCBot):
 	def __init__(self, bot = None):
-		self.__config = SafeConfigParser()
+		self.__config = SafeConfigParser({'min_update_distance': "60"})
 
 		self.__config.read('locationbot.ini')
 
@@ -65,6 +65,8 @@ class LocationBot(ircbot.SingleServerIRCBot):
 			self.__dsn = self.__config.get(nick, 'dsn')
 			self.__latitude_client_id = self.__config.get(nick, 'latitude_client_id')
 			self.__latitude_consumer = oauth.Consumer(key = self.__latitude_client_id, secret = self.__config.get(nick, 'latitude_client_secret'))
+			self.min_update_distance = self.__config.getint(nick, 'min_update_distance')
+
 		except NoOptionError, error:
 			sys.exit(error)
 
@@ -342,16 +344,19 @@ class LocationBot(ircbot.SingleServerIRCBot):
 			distance = calc_distance(old_coordinates[0], old_coordinates[1],
 									 new_coordinates[0], new_coordinates[1])
 
+			if distance < self.min_update_distance:
+				return
+
 			if old_accuracy is not None and new_accuracy is not None:
 				avg_radius = (old_accuracy + new_accuracy) / 2
 
 				if distance > avg_radius:
 					return make_update_noise()
 
-			min_radius = min(old_accuracy, new_accuracy)
+				min_radius = min(old_accuracy, new_accuracy)
 
-			if distance > min_radius and new_accuracy < old_accuracy:
-				return make_update_noise()
+				if distance > min_radius and new_accuracy < old_accuracy:
+					return make_update_noise()
 
 	def __login(self, connection, nickmask, nick, arguments = ''):
 		login = nick