[locations] Fix calculating playback time

This commit is contained in:
2024-02-12 12:36:38 -05:00
parent 02200bb1f7
commit a685c6ff9c

View File

@ -266,32 +266,25 @@ def manual_scrobble_webpage(url: str, user_id: int):
return Scrobble.create_or_update(webpage, user_id, scrobble_dict)
def gpslogger_scrobble_location(
data_dict: dict, user_id: Optional[int]
) -> Optional[Scrobble]:
# Save the data coming in
if not user_id:
user_id = 1 # TODO fix authing the end point to get user
def gpslogger_scrobble_location(data_dict: dict, user_id: int) -> Scrobble:
location = GeoLocation.find_or_create(data_dict)
# Now we run off a scrobble
playback_seconds = 1
extra_data = {
"user_id": user_id,
"timestamp": pendulum.parse(data_dict.get("time", timezone.now())),
"playback_position_seconds": playback_seconds,
"source": "GPSLogger",
}
scrobble = Scrobble.create_or_update(location, user_id, extra_data)
provider = f"data source: {LOCATION_PROVIDERS[data_dict.get('prov')]}"
if scrobble:
if scrobble.notes:
scrobble.notes = scrobble.notes + f"\n{provider}"
else:
scrobble.notes = provider
scrobble.save(update_fields=["notes"])
scrobble.notes = f"Last position provided by {provider}"
if scrobble.timestamp:
scrobble.playback_position_seconds = (
timezone.now() - scrobble.timestamp
).seconds
scrobble.save(update_fields=["notes", "playback_position_seconds"])
return scrobble