From 61c9e362a8b23e23f948705ef9e761cf3e1a2160 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Tue, 18 Apr 2023 11:15:56 -0400 Subject: [PATCH] Save playback position on manual scrobbles --- vrobbler/apps/scrobbles/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/vrobbler/apps/scrobbles/models.py b/vrobbler/apps/scrobbles/models.py index 8b32c12..c3df5bd 100644 --- a/vrobbler/apps/scrobbles/models.py +++ b/vrobbler/apps/scrobbles/models.py @@ -707,11 +707,17 @@ class Scrobble(TimeStampedModel): if force_finish: self.played_to_completion = True self.in_progress = False + if not self.playback_position_seconds: + self.playback_position_seconds = int( + (self.stop_timestamp - self.timestamp).total_seconds() + ) + self.save( update_fields=[ "in_progress", "played_to_completion", "stop_timestamp", + "playback_position_seconds", ] ) logger.info(f"stopping {self.id} from {self.source}") @@ -719,7 +725,6 @@ class Scrobble(TimeStampedModel): class_name = self.media_obj.__class__.__name__ if class_name in LONG_PLAY_MEDIA.values(): check_long_play_for_finish(self) - return def pause(self) -> None: if self.is_paused: