瀏覽代碼

[locations] Fix geoloc proximity comparison

Also, make it configurable
Colin Powell 1 年之前
父節點
當前提交
ca434cb08a
共有 2 個文件被更改,包括 7 次插入1 次删除
  1. 6 1
      vrobbler/apps/locations/models.py
  2. 1 0
      vrobbler/settings.py

+ 6 - 1
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)

+ 1 - 0
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
 )