From 2e2d491e2e6949928162d5bb6062439c5498c972 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Sat, 25 Nov 2023 00:22:34 +0100 Subject: [PATCH] Truncate better --- vrobbler/apps/locations/models.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/vrobbler/apps/locations/models.py b/vrobbler/apps/locations/models.py index 76a4226..cc4bf80 100644 --- a/vrobbler/apps/locations/models.py +++ b/vrobbler/apps/locations/models.py @@ -49,11 +49,28 @@ class GeoLocation(ScrobblableMixin): logger.error("No lat or lon keys in data dict") return - if len(str(data_dict["lat"])) > 8: - data_dict["lat"] = float(str(data_dict.get("lat", ""))[:-3]) - if len(str(data_dict["lon"])) > 8: - data_dict["lon"] = float(str(data_dict.get("lon", ""))[:-3]) - data_dict["altitude"] = float(str(data_dict.get("alt", ""))[:-3]) + int_lat, r_lat = str(data_dict["lat", ""]).split(".") + int_lon, r_lon = str(data_dict["lat", ""]).split(".") + + try: + trunc_len = r_lat[0:4] + except IndexError: + trunc_len = r_lat + try: + trunc_lon = r_lon[0:4] + except IndexError: + trunc_lon = r_lon + + data_dict["lat"] = float(f"{{int_lat}}.{{trunc_lat}}") + data_dict["lon"] = float(f"{{int_lon}}.{{trunc_lon}}") + + int_alt, r_alt = str(data_dict.get("alt", "")).split(".") + try: + trunc_alt = r_lon[0:4] + except IndexError: + trunc_alt = r_alt + + data_dict["altitude"] = float(f"{{int_alt}}.{{trunc_alt}}") location = cls.objects.filter( lat=data_dict.get("lat"),