From ca434cb08a09121e31a708f4084286f96220a340 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Sat, 10 Feb 2024 18:13:39 -0500 Subject: [PATCH] [locations] Fix geoloc proximity comparison Also, make it configurable --- vrobbler/apps/locations/models.py | 7 ++++++- vrobbler/settings.py | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/vrobbler/apps/locations/models.py b/vrobbler/apps/locations/models.py index 14154b9..1024536 100644 --- a/vrobbler/apps/locations/models.py +++ b/vrobbler/apps/locations/models.py @@ -15,6 +15,7 @@ BNULL = {"blank": True, "null": True} User = get_user_model() GEOLOC_ACCURACY = int(getattr(settings, "GEOLOC_ACCURACY", 4)) +GEOLOC_PROXIMITY = Decimal(getattr(settings, "GEOLOC_ACCURACY", "0.0001")) class GeoLocation(ScrobblableMixin): @@ -96,7 +97,11 @@ class GeoLocation(ScrobblableMixin): all_moves = [] for point in past_points: loc_diff = self.loc_diff((point.lat, point.lon)) - if loc_diff and loc_diff[0] < 0.001 and loc_diff[1] > 0.001: + if ( + loc_diff + and loc_diff[0] < GEOLOC_PROXIMITY + and loc_diff[1] < GEOLOC_PROXIMITY + ): all_moves.append(True) else: all_moves.append(False) diff --git a/vrobbler/settings.py b/vrobbler/settings.py index b1d7b8c..e8ae45b 100644 --- a/vrobbler/settings.py +++ b/vrobbler/settings.py @@ -67,6 +67,7 @@ IGDB_CLIENT_ID = os.getenv("VROBBLER_IGDB_CLIENT_ID") IGDB_CLIENT_SECRET = os.getenv("VROBBLER_IGDB_CLIENT_SECRET") COMICVINE_API_KEY = os.getenv("VROBBLER_COMICVINE_API_KEY") GEOLOC_ACCURACY = os.getenv("VROBBLER_GEOLOC_ACCURACY", 3) +GEOLOC_PROXIMITY = os.getnv("VROBBLER_GEOLOC_PROXIMITY", "0.0001") POINTS_FOR_MOVEMENT_HISTORY = os.getenv( "VROBBLER_POINTS_FOR_MOVEMENT_HISTORY", 3 )