|
@@ -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
|