瀏覽代碼

[locations] Make finding proximity locations easier

Colin Powell 1 年之前
父節點
當前提交
605435b9ea
共有 2 個文件被更改,包括 6 次插入4 次删除
  1. 4 3
      vrobbler/apps/locations/models.py
  2. 2 1
      vrobbler/apps/scrobbles/models.py

+ 4 - 3
vrobbler/apps/locations/models.py

@@ -107,18 +107,19 @@ class GeoLocation(ScrobblableMixin):
 
         return has_moved
 
-    def named_in_proximity(self):
+    def named_in_proximity(self, named=True) -> models.QuerySet:
         lat_min = Decimal(self.lat) - GEOLOC_PROXIMITY
         lat_max = Decimal(self.lat) + GEOLOC_PROXIMITY
         lon_min = Decimal(self.lon) - GEOLOC_PROXIMITY
         lon_max = Decimal(self.lon) + GEOLOC_PROXIMITY
+        is_title_null = not named
         return GeoLocation.objects.filter(
-            title__isnull=False,
+            title__isnull=is_title_null,
             lat__lte=lat_max,
             lat__gte=lat_min,
             lon__lte=lon_max,
             lon__gte=lon_min,
-        ).first()
+        )
 
 
 class RawGeoLocation(TimeStampedModel):

+ 2 - 1
vrobbler/apps/scrobbles/models.py

@@ -838,7 +838,8 @@ class Scrobble(TimeStampedModel):
         )
         scrobble.stop(force_finish=True)
 
-        if existing_location := location.named_in_proximity():
+        if existing_locations := location.named_in_proximity():
+            existing_location = existing_locations.first()
             logger.info(
                 f"[scrobbling] moved to {location.id} but named location {existing_location.id} found, using it instead"
             )